Moved additional visual/output settings from General to Display:
- Interface font family and size
- Terminal width (columns)
- System log level and max buffer
Updated tests and docs to reflect new Display tab location.
Split General settings panel by creating new Display tab containing:
- Max output lines per response
- Document graph settings (external links, max nodes)
- Context window warnings (thresholds)
Updated docs to reflect new panel location.
When a new session starts and the first message is sent, Maestro now
automatically generates a descriptive tab name based on the user's
request. This runs in parallel with the main prompt processing and
uses the same AI agent (honoring SSH remote configurations).
Implementation:
- Add tab naming prompt at src/prompts/tab-naming.md
- Add IPC handler (tabNaming:generateTabName) that spawns ephemeral
session to generate names with 30s timeout
- Integrate with onSessionId callback to trigger naming for new tabs
- Only update name if tab is still in UUID format (user hasn't renamed)
- Add automaticTabNamingEnabled setting (default: true)
- Add Settings UI checkbox under General section
Tab names are 2-5 words, Title Case, and capture the specific intent
rather than generic descriptions. Examples:
- "Help me implement JWT auth" → "JWT Auth Implementation"
- "Fix the checkout bug" → "Checkout Bug Fix"
Tests: 22 new tests covering IPC handler, settings, and edge cases
Docs: Updated general-usage.md, features.md, and configuration.md
- Rename "Speakable Notifications" to "Custom Notifications" in features
- Update Notifications tab description to remove TTS-specific language
- Revise Custom Notification section with broader command examples
- Remove default TTS bias from configuration guidance
- Added “View Git Log” action right inside GitStatusWidget tooltip 🧭
- Wired MainPanel to open Git Log directly from the widget 🪟
- Expanded GitStatusWidget API with optional `onViewLog` callback 🧩
- Improved test coverage for Git log tooltip interactions and rendering 🧪
- Cleaned repo by removing auto-generated CLAUDE.md memory context files 🧹
- Enhanced release notes frontmatter with a new newspaper icon 🗞️
Replace 'multi-document batch runs' and 'batch processing' terminology
with 'Auto Run' (individual documents) and 'Playbook' (collections of
Auto Run documents) across user-facing documentation.
Preserves 'batch mode' references where they describe Claude Code's
actual non-interactive operation mode.
Rename "Audio Feedback" → "Custom Notification" and "TTS Command" →
"Command Chain" to better reflect the flexible nature of this feature.
Users can chain commands together with pipes to mix and match
notification tools (TTS, logging, desktop notifications, etc.).
Closes#168
- Draft PR creation is now deferred until the first commit lands ⏳
- PR info now syncs from contribution metadata into state automatically 🔄
- Creating a draft PR now updates both metadata.json and state.json reliably 🗃️
- Symphony adds new `completed` contribution status across types and UI ✅
- Active contribution duration now displays real timeSpent-based timing accurately ⌛
- Symphony issue cards now link directly to claimed PRs externally 🔗
- Playbook Exchange adds richer keyboard navigation and cross-platform shortcuts ⌨️
- Playbook imports now include optional assets/ folder and remote-session guidance 📦
- Troubleshooting upgrades: richer logs, process tree monitor, and error recovery 🛠️
- Added portable .exe option for Windows and architecture details for macOS/Linux
- Changed "OpenAI Codex" to "Codex" to match agent-detector.ts naming convention
- Added planned agents (Aider, Gemini CLI, Qwen3 Coder) with repository links
- Added "Building from Source" section with Node.js 22+ requirement
- Used em-dashes for consistency with other documentation files
Changed "OpenAI Codex" to "Codex (OpenAI)" in the main documentation
index page to match the actual agent name in agent-detector.ts line 76.
This is consistent with corrections already made to getting-started.md
and features.md.
Verified that the agent support list is accurate:
- Claude Code, Codex, OpenCode: fully integrated (verified capabilities)
- Aider, Gemini CLI, Qwen3 Coder: defined as placeholders for future
- Correct "Managing Worktrees" section UI descriptions:
- Branch icon is GitBranch, not a green checkmark
- Collapse/expand is via worktree count band, not a chevron on parent
- Describe drawer styling with accent background
- Improve "Creating a Worktree Sub-Agent" section:
- Document both access methods (header hover and context menu)
- Rename "Watch for Changes" to "Watch for new worktrees"
- Add note about quick creation via context menu
- Add missing "Duplicate..." action to Worktree Actions table
- Fixed Agent Status Indicators: Yellow is used for both "thinking" AND
"waiting for user input" states, not just thinking
- Fixed File Editing section: incorrectly claimed auto-save. Files do NOT
auto-save; users must press Cmd+S/Ctrl+S. Confirmation dialog appears
when closing with unsaved changes
- Fixed Collapsed Mode shortcut: was Cmd+B/Ctrl+B, actual shortcut is
Opt+Cmd+Left/Alt+Ctrl+Left per shortcuts.ts
- Added missing Prompt Composer keyboard shortcut Cmd+Shift+P/Ctrl+Shift+P
- Fixed theme count from 12 to 17 (6 dark, 6 light, 4 vibe, 1 custom)
- Listed all theme names for each category
- Clarified provider support: Claude Code, Codex (OpenAI), OpenCode are
fully-integrated; Aider, Gemini CLI, Qwen3 Coder are planned
- Verified all other features and shortcuts match source code
## CHANGES
- Re-organized "Opening the Document Graph" section to put "From File Preview"
first as the primary entry point (Cmd+Shift+G)
- Fixed misleading description of graph icon in Files tab - it only appears
after a graph has been opened at least once, and is a branch icon not
"circular arrows"
- Added "From File Context Menu" option for right-clicking markdown files
- Removed "Tab - Cycle through connected nodes" from keyboard shortcuts -
this feature was documented but NOT implemented in the code
- Fixed Enter key behavior documentation: "Recenter view" for document nodes,
"Open URL" for external link nodes
- Updated Depth Control section to document full range (0-5) including
Depth 0 = "All" option which was undocumented
- Added missing Cmd/Ctrl+F keyboard shortcut for focusing search field
- Fixed minor typo: "positions are saved" removed (not fully accurate)
- Add "Requires Session" column to Tab Menu table with availability conditions
- Add missing tab menu actions: Export as HTML, Publish as GitHub Gist, Move to First/Last Position
- Fix Tab Export section to reference "Export as HTML" instead of "Context: Copy to Clipboard"
- Change "Right-click" to "Hover over" in three sections (hover overlay, not right-click menu)
- Correct Command Palette labels to match actual QuickActionsModal implementation
- Document alternative sharing options (Copy to Clipboard, Publish as GitHub Gist)
- Changed "Appearance: Font size, UI density" to "Themes" (there is no
Appearance tab - themes have their own tab, fonts are in General)
- Changed "SSH Remotes" to "SSH Hosts" to match actual tab name
- Updated General tab description to include all settings (font family,
terminal width, log buffer, shell config, stats, document graph, etc.)
Verified accurate: storage paths, cross-device sync, sleep prevention,
notifications, and pre-release channel sections.
- Added short flags -g (list agents) and -a (list playbooks) that were
missing from documentation but exist in implementation
- Documented the clean playbooks command with --dry-run option (was
completely undocumented)
- Clarified that list agents --json outputs a JSON array, not JSONL
(different from other list commands)
- Updated JSON event examples to include missing fields: collapsed in
group events, document in document_complete events
- Added loop_complete event type in JSON output examples
- Added success, usageStats, and totalCost fields to JSON examples
- Changed "Auto-Save" section to "Saving Documents" since documents do NOT
auto-save after inactivity - manual save via Cmd+S or Save button is required
- Corrected claim that documents "auto-save immediately when switching" -
switching actually discards unsaved changes
- Added note warning users to save before switching documents
- Added keyboard shortcut Cmd+Shift+E / Ctrl+Shift+E for toggling Expanded Editor
(was only documenting the click method)
All other content verified as accurate against source code:
- Cmd+Shift+1 opens Auto Run tab (shortcuts.ts:21)
- Reset on Completion format: {TASK}-{timestamp}-loop-{N}.md (autorun.ts:864)
- Session isolation, environment variables, wizard features all accurate
Add Symphony registry documentation and contribution runner service:
- docs/SYMPHONY_REGISTRY.md: Registry documentation explaining how maintainers register repos
- docs/SYMPHONY_ISSUES.md: Guide for creating Symphony issues with Auto Run documents
- src/main/services/symphony-runner.ts: Service orchestrating contributions with draft PR claiming
- symphony-registry.json: Sample registry with Maestro as the first registered project
The runner service handles the full contribution flow: clone, branch, push, draft PR creation, Auto Run setup, finalization, and cancellation.
* docs: add git hash display and configurable dev server port
## CHANGES
- Add `VITE_PORT` env variable to configure dev server port
- Display git commit hash in About modal next to version
- Add `__GIT_HASH__` build-time constant to both Vite configs
- Document running multiple Maestro instances with git worktrees
- Update CONTRIBUTING.md with parallel development instructions
* feat: add configurable ports for dev servers
- Allow VITE_PORT to configure main dev server port
- Update main window to load from configurable port
- Enable VITE_WEB_PORT for web interface dev server
- Add note in CONTRIBUTING.md about port configuration
- Log port usage in development mode
* docs: update CONTRIBUTING.md section and fix React DevTools script initialization
## CHANGES
- Rename "Linting" section to "Linting & Pre-commit Hooks" in table of contents
- Move script variable declaration outside conditional block
- Fix React DevTools script initialization order in index.html
* chore: update `.vscode/settings.json` with new markdownlint config
* fix: disable biome linting. Project uses ESLint
* chore: Update baseline-browser-mapping (>2 months old, warning message on "npm run build:web")
* chore: add .vscode/ to gitignore
* chore: fix gitignore to ignore .cscode/* files properly
* fix
* chore: stop tracking .vscode/ files, respect gitignore
Co-Authored-By: Claude Sonnet 4.5 (1M context) <noreply@anthropic.com>
---------
Co-authored-by: Claude Sonnet 4.5 (1M context) <noreply@anthropic.com>
- Playbook Exchange now highlights local playbooks with blue “Local” badge 🟦
- Added new screenshot documenting the Local badge UI state 🖼️
- Marketplace manifest results now include per-playbook `source` metadata 🧾
- Manifest handling now merges official and local sources consistently 🔀
- Network failures now return empty merged manifest instead of error 📡
- HTTP fetch failures now degrade gracefully to empty manifest result 🧯
- Marketplace tests updated for dual-read cache + local manifest flow 🧪
- InputArea now expects pre-filtered `thinkingSessions` for better performance ⚡
- ThinkingStatusPill mock now matches real conditional rendering behavior 🎭
- Added `onManifestChanged` stub to Maestro test setup for new hook 🪝
- Add comprehensive documentation for local manifest feature
- Create example local-manifest.json with custom playbook structure
- Implement local manifest reading and merging with official manifests
- Add file watcher for hot reload on local manifest changes
- Support local filesystem paths (absolute and tilde-prefixed)
- Add "Local" badge to distinguish custom playbooks in UI
- Expose manifest change event through preload API
- Add source field to playbook type for origin tracking
- Launched Symphony Stats dashboard with summary cards and achievement milestones 🏆
- Embedded new Symphony screenshots to showcase History and Stats tabs 🖼️
- Added “Available Issues” card linking Maestro-ready GitHub issue list 🔗
- Introduced “Confirm and Erase” agent deletion flow that trashes working directory 🗑️
- Added new Delete Agent confirmation modal with strong accessibility and focus behavior ♿
- Implemented secure `shell:trashItem` IPC handler with validation and existence checks 🛡️
- Exposed `maestro.shell.trashItem()` in preload and renderer typings for use 🧩
- Wizard document prompts now respect configurable Auto Run folder paths 📁
- Prompt templates now forbid extra summary/recap files—only Phase docs allowed 🚫
- 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 🏷️
- Corrected Per-Agent Configuration to Per-Session Configuration
(SSH is session-level only, not per-agent with global defaults)
- Fixed dropdown options from incorrect "Use Global Default"/"Force
Local" to actual "Local Execution"/[Remote Name] options
- Removed incorrect "Resolution Order" section (5-level priority
algorithm doesn't exist in source code)
- Clarified global default is a visual indicator, not automatic
- Removed incorrect PTY limitation claim (PTY IS available via
RequestTTY: 'force' and -tt flags)
- Updated Limitations section with accurate shell initialization info
- Changed hyphens to em-dashes for consistency
- Updated theme count from 12 to 18 in description
- Added 4 missing light themes: Solarized, One Light, Gruvbox Light, Catppuccin Latte
- Fixed "GitHub Light" to "GitHub" to match actual theme name
- Fixed Settings path from "Appearance → Theme" to "Themes tab"
- Added Custom Theme section documenting the theme builder
- Fix "Global Access" → "Live Sessions" (only live sessions accessible)
- Rename "Static Port Configuration" → "Custom Port Configuration" to match UI
- Correct port range from 1024-65535 to 1-65535
- Fix "Use Custom Port" → "Custom Port" toggle label
- Add UUID clarification for security token
- Expand Mobile Web Interface with Core Features, Gestures, Input subsections
- Add Connection Handling section (auto-reconnect, offline mode, status)
- Add notes, tips, and related links section
- Use em-dashes for consistency with other documentation
Changes:
- Fixed Claude Code model selection: was incorrectly documented as supported
via --model flag, but source shows supportsModelSelection: false (configured
via Anthropic account)
- Changed "OpenAI Codex" to "Codex (OpenAI)" throughout for consistency
- Fixed Codex slash commands: changed from ⚠️ to ❌ since they don't work in
exec mode which Maestro uses
- Updated Codex slash commands link to official OpenAI docs
- Fixed OpenCode slash commands: changed from "Not investigated" to "Not
supported" per source code
- Enhanced OpenCode note to mention OPENCODE_CONFIG_CONTENT env var for YOLO
- Added "Context operations" row for all providers (merge/export/transfer)
- Added "Thinking display" row for all providers documenting streaming output
- Updated description frontmatter for consistent naming
- Added "OpenSpec CLI Commands" section with table of essential commands
(list, list --specs, show, validate, archive, spec list --long)
- Fixed Stage 1 workflow to document full process including project.md
review and openspec list commands
- Fixed validation command format to include required change-id parameter
- Added --yes and --skip-specs flags documentation for archive command
- Expanded /openspec.implement description with phase grouping details
- Updated "Viewing & Managing Commands" section to accurately describe UI
- Fixed Spec-Kit directory location from "Project root" to "specs/"
- Changed tips to use "verb-led IDs" terminology per AGENTS.md conventions
- Standardized to em-dashes for consistency with other docs
- Added mention that MCP server is hosted by Mintlify
- Added proactive search behavior explanation
- Added Cursor and VS Code configuration instructions
- Clarified transport type as HTTP/HTTPS (Streamable HTTP)
- Added note about page indexing limitations
- Verified all existing information is accurate
Major fixes:
- Toggle Sidebar was Cmd+B, actual shortcut is Opt+Cmd+Left (renamed to Toggle Left Panel)
- Toggle Right Panel was Cmd+\, actual shortcut is Opt+Cmd+Right
- Document Graph Tab cycling didn't exist in code, removed it
- Document Graph Enter key behavior was wrong: re-centers for docs, opens URL for external
- Keyboard Mastery levels were completely wrong (Novice/Apprentice/etc vs Beginner/Student/etc)
- Keyboard Mastery location was "status bar" but it's actually in Shortcuts Help panel
Added missing shortcuts:
- New Agent Wizard, New Group Chat, Navigate Back/Forward
- Toggle Input/Output Focus, Focus Left Panel, System Log Viewer, Process Monitor
- Toggle Bookmark, Maestro Symphony, Toggle Auto Run Expanded, View Git Diff
- Toggle Tab Star, Toggle Tab Unread, Filter Unread Tabs, Open Prompt Composer
- Go to Tab 1-9 and Go to Last Tab
- File Preview Go Back/Forward
- Context-sensitive filter shortcuts (Cmd+F in different contexts)