Group Chat was spawning agents locally even when sessions were configured
for SSH remote execution. This fix:
- Creates reusable SSH spawn wrapper utility (ssh-spawn-wrapper.ts)
- Updates SessionInfo, SessionOverrides, and ModeratorConfig interfaces
to include sshRemoteConfig
- Applies SSH wrapping to addParticipant(), moderator spawn, and
participant spawn in routeModeratorResponse()
- Wires up SSH store in index.ts for group chat router
- Documents SSH/provider awareness pattern in CLAUDE.md
This ensures Group Chat respects SSH remote configuration just like
regular session spawns.
Closes issue #172
- Split monolithic CLAUDE.md into focused, indexed sub-docs for faster onboarding 📚
- Added deep Agent support guide: capabilities, flags, parsers, storage, and adding agents 🤖
- Documented full `window.maestro` IPC surface with clearer namespaces and History API 📡
- Captured core implementation patterns: processes, security, settings, modals, SSH, Auto Run 🧭
- Published performance playbook for React, IPC batching, caching, and debouncing 🚀
- Formalized Session interface docs, including multi-tab, queues, stats, and error fields 🧩
- Session-level custom agent path now overrides detected binary during spawn 🛠️
- New rendering settings: disable GPU acceleration (early startup) and disable confetti 🖥️
- Confetti effects now respect user preference across celebration overlays and wizard completion 🎊
- File explorer now distinguishes “loading” vs “no files found” empty states 🗂️
- Added multi-document Auto Run progress fields across IPC and WebSocket state 📚
- Web clients now receive aggregated task totals and completions across documents 📈
- Active tab UI docs expanded with screenshot and richer contribution details 🖼️
- Canonical `activeTab` lookup is now memoized to kill repeated O(n) finds ⚡
- Staged images, logs, and prompt tab toggles now reuse memoized `activeTab` 🧠
- Tab-completion suggestions now debounce input only while menu is open ⌨️
- @mention suggestions now debounce filter only while menu is open 🔎
- Disabling worktrees now removes all sub-agents and reports counts 🧹
- Added performance guidance: debounce, throttle, batching, virtualization, parallel IPC 🚀
- Bumped version to 0.14.5 for this release tag 🏷️
- Added performance best-practices guide for React and main process tuning 📘
- Introduced `buildFileTreeIndices` for fast, reusable markdown file lookups ⚡
- Updated `remarkFileLinks` to accept prebuilt indices with backward compatibility 🧩
- Memoized file-tree indices in AutoRun, FilePreview, and MarkdownRenderer for speed 🚀
- Expanded test suite to cover indices building and indexed link resolution 🧪
- Made temp-file cleanup asynchronous to keep the main thread snappy 🧹
- Cached shell path resolution to avoid repeated synchronous filesystem checks 🗄️
- Precompiled leading-emoji regex to speed up session name sorting 🔤
- Consolidated SessionList filtering/grouping/sorting into one efficient memo pass 🧠
- Memoized TabBar tabs, computed labels, and style objects to cut rerenders 🎛️
- Wizard now saves generated docs under `Auto Run Docs/Initiation/` for clarity 📁
- Onboarding copy refresh: “Auto Run Playbook” terminology replaces “document” consistently 📝
- Claude parser now extracts and streams extended “thinking” blocks reliably 🧠
- Added full test coverage for thinking, redaction, and tool-use parsing paths ✅
- Wizard modal gains a real focus trap for rock-solid keyboard navigation ⌨️
- Wizard buttons now show accessible focus rings matching theme colors 🎯
- Phase Review: Escape closes document dropdown before modal closes 🛡️
- Phase Review: cycle multiple generated documents with ⌘/Ctrl+Shift+[ ] shortcuts 🔁
- Directory step: Enter on Browse triggers browse, not accidental “Continue” 🗂️
- Auto Run prompts upgraded with token-efficient task grouping rules and examples ⚡
- Added `/wizard` inline wizard docs for in-tab Auto Run creation flow 📘
- Inline Wizard now supports streaming “Thinking” with a handy toggle 🧠
- Wizard conversation typing animation upgraded to smooth RAF typewriter ⚡
- Document generation now writes files live via `Write` tool 🚀
- Real-time doc streaming added by watching Auto Run subfolder changes 👀
- Generation UX improved with centered loader, progress text, and cancel button 🛑
- Wizard tabs rename instantly to “Wizard”, then “Wizard: {Project}” 🏷️
- Process Monitor now groups wizard processes with WIZARD/GENERATING badges 🧙
- Context transfer now auto-sends on tab activate for instant injection 🔄
- New session lifecycle stats IPC APIs wired into `maestro.stats` 📊
Found expired OAuth token, attempting refresh...
Token refresh successful
## CHANGES
- Document Graph now toggles external links instantly using cached scan data ⚡
- Document Graph parsing shows live internal/external link counts while loading 📊
- MindMap layout upgraded: smarter center-node matching and cleaner link routing 🧭
- MindMap visuals refreshed with themed headers, spacing tweaks, and text wrapping 🎨
- Document Graph default max nodes reduced to 50 for faster loads 🚀
- Sentry crash reporting stabilized with Classic IPC mode in main process 🛡️
- Renderer Sentry re-enabled with global error capture and privacy filtering 🔍
- ErrorBoundary now reports exceptions to Sentry with component stack context 🧱
- SSH sessions now track remoteCwd across `cd`, and commands run in correct dir 🌐
- Wizard adds downloadable debug logs plus deep generation instrumentation 🧰
- Usage heatmap simplifies month+ views to single-row “per-day” mode for clarity 🗓️
- Usage Dashboard and Document Graph surfaces now clearly labeled Beta 🧪
Part of the Document Graph → Mind Map refactoring effort. The layout mode
setting is being removed in preparation for the new deterministic mind map
layout that won't need a force/hierarchical toggle.
Changes:
- Remove documentGraphLayoutMode from UseSettingsReturn interface
- Remove state, setter, and loading logic in useSettings.ts
- Remove props passed to DocumentGraphView in App.tsx
- Remove "Default Layout Mode" toggle from SettingsModal.tsx
- Update CLAUDE.md to remove layoutMode from settings documentation
Document the sleep prevention feature in CLAUDE.md:
- Add power management to "Key Files for Common Tasks" table
- Add Power Management subsection to IPC API Surface
- Add preventSleepEnabled to Related Settings
- Added `dev:prod-data` to develop against real production sessions safely 🧪
- Dev mode now defaults to an isolated `maestro-dev` data directory 🗂️
- App can explicitly opt into production userData via `USE_PROD_DATA=1` 🔀
- Contributor docs now clearly map dev commands to their data directories 📚
- Reduced dev/production database lock conflicts when running side-by-side 🔒
- Tab hover overlay redesigned to look like a clean “open folder” panel 🗃️
- Removed tab title tooltip to streamline the tab interaction feel ✂️
- Toast logging now captures whether audio/TTS notifications were enabled 🎙️
- Toast logs include the exact audio command used for notifications 🧾
- TTS playback now reuses captured audio state for consistent behavior 🔊
- Publish any open file as a GitHub Gist, instantly sharable 🔗
- Smart Share button appears only when GH CLI is ready 🧠
- Quick Actions adds “Publish Document as GitHub Gist” command ⚡
- New high-priority Gist confirmation modal with secret-first default 🔒
- Auto-copies gist URL and shows toast with “Open Gist” action 📋
- Main process IPC now creates gists via `gh gist create` 🛠️
- Command runner now supports stdin input using spawn-based execution 🚰
- Development runs in separate userData directory to avoid lock conflicts 🧪
- Extensive test coverage added for GistPublishModal behavior and a11y 🧰
- New Mintlify docs folder plus contributor guide for docs workflow 📚
- Add OpenSpec to docs.json navigation after speckit-commands
- Add OpenSpec Commands section to slash-commands.md
- Update features.md to mention bundled Spec-Kit and OpenSpec
- Add Spec-Kit and OpenSpec rows to CLAUDE.md Key Files table
- Update CONTRIBUTING.md with bundled AI command set guide
- Update refresh prompts section to include both spec-kit and openspec
- Fix ESLint warning (prefer-const) in openspec-manager.ts
Tasks 3-9 of Phase 3 complete. Task 2 (screenshot) requires manual UI capture.
Task 10 (manual testing) remains for human verification.
• Replaced context menu with a tab hover overlay menu for AI conversation tabs
• Added tab management and context operations to the overlay menu
• Implemented hover delay and fixed positioning for the overlay
• Removed ContextMenu component and related tests
• Updated TabBar and Tab components to handle new overlay menu actions
- Add new section '9. Context Menus' documenting the reusable ContextMenu component
- Include usage patterns, interface definition, and practical examples
- Document key features: keyboard navigation, ARIA support, viewport positioning
- Add entry in 'Key Files for Common Tasks' table for adding context menus
- Provide tab context menu example with all disable conditions
- Fix incorrect note in Phase 3 doc (context menu was not previously documented)
- Add ESLint 9 configuration (eslint.config.mjs) with TypeScript and React hooks plugins
- Add npm run lint:eslint command for code quality checks
- Expand npm run lint to check all three TypeScript configs (renderer, main, cli)
- Update tsconfig.cli.json to include src/prompts and src/types directories
Fix 29 ESLint errors:
- Remove unused updateCliActivity import in batch-processor.ts
- Convert {false && <jsx>} patterns to comments in AutoRun components
- Wrap case block with const declarations in braces (AgentSelectionScreen)
- Fix unused expression pattern in PreparingPlanScreen
- Fix conditional hook calls in FilePreview, OfflineQueueBanner, RecentCommandChips, TerminalOutput
- Add windows-diagnostics.json to PackageContents interface
Update CLAUDE.md and CONTRIBUTING.md with new linting commands and documentation.
Claude ID: 029e8abe-5734-4967-9fb4-c85078c1973d
Maestro ID: 87ffa06e-0ecd-4eb8-b327-dad1ec24f7a9
- Quick Win 3: Reduce elapsed time timer from 1s to 3s in RightPanel
- Reduces timer callbacks by 66% during Auto Run
- Quick Win 4: Memoize batch state selectors in App.tsx
- currentSessionBatchState and activeBatchRunState wrapped in useMemo
- Prevents unnecessary re-calculation on unrelated re-renders
- Update RightPanel test to expect 3s intervals
- Document npm run lint command in CLAUDE.md and CONTRIBUTING.md
Claude ID: 9ba72f64-27a0-4682-a8f2-93febcf94609
Maestro ID: b9bc0d08-5be2-4fdf-93cd-5618a8d53b35
- CLAUDE.md: Added agent capabilities section, updated architecture diagram
with parsers/ and storage/ directories, added agentSessions and agentError
APIs, updated key files table, added error fields to Session interface
- AGENT_SUPPORT.md: Added multi-provider architecture status section showing
all 7 completed components, updated supported agents reference with
implementation status and detailed checklist for planned agents
- CONTRIBUTING.md: Updated supported agents reference table with status
column and link to detailed guide
- Add documentation for AI context integration in HistoryHelpModal
- Add "Per-Session Storage" section explaining 5,000 entry limit
- Add "AI Context Integration" section explaining history file usage
- Document History API in CLAUDE.md with getFilePath() and listSessions()
- Add cross-session view toggle (Layers button) to HistoryPanel
- Update test mocks for new Layers and FileJson icons
- Build passes and all 10,010 tests pass
Extend the remarkFileLinks plugin support to FilePreview.tsx, enabling
wiki-style [[links]] and path references in markdown documents to become
clickable and open in the file preview panel. This allows seamless
navigation between documents in the file viewer.
Changes:
- Add fileTree, cwd, and onFileClick props to FilePreview component
- Integrate remarkFileLinks remark plugin for markdown file rendering
- Update MainPanel to pass file linking props to FilePreview
- Document file linking feature in CLAUDE.md Key Files table
Claude ID: ba360ad6-3ae8-4a87-a73d-ab97e466ce07
Maestro ID: b9bc0d08-5be2-4fdf-93cd-5618a8d53b35
- Added git worktree support for parallel Auto Run operations 🌳
- Enable background processing while continuing interactive work freely 🚀
- No more read-only mode when using worktree feature 🔓
- Visual git branch icon indicates active worktree operation 🌿
- Auto-create pull requests when batch processing completes ✨
- Worktree path computed from base directory plus branch name 📁
- Yellow border and input locks only without worktree enabled 🟡
- Continue editing main repo while Auto Run processes tasks 💪
- Improved documentation explaining worktree setup and benefits 📚
- Enhanced UI indicators for parallel operation status tracking 🎯
Move all built-in prompts from inline code to separate .md files in src/prompts/
for easier editing without code changes. Prompts use {{TEMPLATE_VARIABLES}} that
are substituted at runtime using the central substituteTemplateVariables function.
Changes:
- Add src/prompts/ directory with 7 prompt files (wizard, AutoRun, etc.)
- Add index.ts for central exports using Vite ?raw imports
- Add esbuild plugin in build-cli.mjs to support ?raw imports for CLI
- Update wizardPrompts.ts and phaseGenerator.ts to use central substitution
- Update CLAUDE.md documentation with new prompt location references
- Add TypeScript declaration for *.md?raw imports in global.d.ts
Claude ID: 38553613-f82f-4ce1-973e-fa80d42af3da
Maestro ID: b9bc0d08-5be2-4fdf-93cd-5618a8d53b35
Found expired OAuth token, attempting refresh...
Token refresh successful
I'd be happy to help you create a clean update summary for a GitHub project! However, I don't see any input provided after "INPUT:" in your message.
Could you please share the changelog, commit history, or release notes that you'd like me to summarize? Once you provide that information, I'll create an exciting CHANGES section with 10-word bullets and relevant emojis as requested.
- Add tour:action event listeners in App.tsx for right panel control
(setRightTab, openRightPanel, closeRightPanel)
- Add tour:action event listeners in SessionList.tsx for hamburger menu
(openHamburgerMenu, closeHamburgerMenu)
- Add data-tour attributes to panel content areas (files-panel, history-panel)
- Update tour step selectors to target full panels instead of tab buttons
- Rename "New Project Wizard" to "New Agent Wizard" throughout UI
- Update wizard subtext to "Get started with AI"
- Update CLAUDE.md documentation to reflect naming changes
Claude ID: 545ca79b-d919-4e72-8030-8c9b70ca8c5c
Maestro ID: b9bc0d08-5be2-4fdf-93cd-5618a8d53b35
- Add lastActivityAt timestamps to tab switcher for better session sorting
- Filter "All Named" sessions to current project only (projectRoot-scoped)
- Add relative time formatting (e.g., "5m ago", "2h ago") in tab switcher
- Change slash command behavior: Tab/Enter now fills text instead of executing
- Allow slash commands to be queued when agent is busy (like regular messages)
- Add projectRoot field to Session for stable Claude session storage path
- Fix markdown list indentation and positioning
- Add GitHub Actions workflow for auto-assigning issues/PRs to pedramamini
- Update CLAUDE.md with projectRoot field documentation
Claude ID: 747fc9d0-a5a2-441d-bc0a-8cd3d579a004
Maestro ID: b9bc0d08-5be2-4fdf-93cd-5618a8d53b35
- Add accentForeground color to all 16 themes for proper text contrast
when rendering text on accent-colored backgrounds
- Update UI components to use accentForeground instead of hardcoded
white/dark colors for buttons and highlighted elements
- Refresh Maestro's Choice and Dre Synth theme palettes
- Add Save button to Batch Runner modal for persisting custom prompts
- Fix sidebar resize not saving width correctly during drag
- Queue custom AI commands when agent is busy (like regular messages)
- Update search placeholder in Scratchpad to show correct shortcuts
- Update docs to reflect 13 theme colors (was 12)
Claude ID: ac8e7811-8742-4991-b9ce-9c03629b8288
Maestro ID: 5a166b38-b7e9-47f0-a8ff-0113c65f2682
- Add claude:getGlobalStats IPC handler that calculates stats across all
Claude projects (~/.claude/projects/) with streaming progress updates
- Add onGlobalStatsUpdate listener for real-time stats progress in UI
- Refactor AboutModal to fetch global stats on mount instead of receiving
persisted stats prop, with loading state and animated cost counter
- Fix busy indicator to only show when busySource matches current inputMode
- Add isSystemCommand property to CustomAICommand for special handling
- Add /synopsis as built-in system command (handled by slashCommands.ts)
- Remove duplicate Built-in System Commands section from AICommandsPanel
- Update CLAUDE.md and ARCHITECTURE.md to document new global stats API
Claude ID: ac8e7811-8742-4991-b9ce-9c03629b8288
Maestro ID: 5a166b38-b7e9-47f0-a8ff-0113c65f2682
- Add template variable system with substitution for session, project,
date/time, and git context (e.g., {{SESSION_NAME}}, {{GIT_BRANCH}})
- Display collapsible template variables documentation in AI Commands panel
- Update default /commit command to include {{CLAUDE_SESSION_ID}} for traceability
- Add tag icon indicator for sessions with custom (user-defined) names
- Improve Git Log Viewer date formatting (time for today, full date for older)
- Improve Git Log search UX with better focus handling
- Change Agent Sessions Browser default search mode to 'all'
- Update README with custom AI commands documentation
- Add template variable file reference to CLAUDE.md
Session: 35b88ae2-fc1a-44de-a1a1-4b0f0f5a14f9
Messages sent while the AI is busy are now queued and automatically
processed when the current task completes. Features include:
- Queue display in terminal output with "QUEUED" separator
- Ability to remove individual queued messages via UI
- Blocks slash commands and session clearing while queue has items
- Sequential processing of queued messages on agent exit
Updated README.md and CLAUDE.md to document the new feature.
- Add real-time token usage and cost tracking from Claude Code responses
- New UsageStats type with tokens, cost, and context window
- Context window tooltip shows detailed token breakdown
- Cost displayed in main panel header and session list
- Improve input area UX with $ prefix for terminal mode
- Add Cmd+L shortcut to insert markdown checkbox in Scratchpad
- Add terminalOnly flag for slash commands (/jump is terminal-only)
- Disable LLM Settings panel behind feature flag (documented in BACKBURNER.md)
- Fix AgentSessionsBrowser to use layer stack for Escape handling
- Update README with cost tracking feature and keyboard shortcut
- Update CLAUDE.md with process:usage event and usageStats session field
- Add Option/Alt+Up/Down for page up/down scrolling (viewport height)
- Switch to instant scrolling via Virtuoso for better responsiveness
- Update docs with new keyboard shortcuts