Explains what the Conductor Profile is, how to configure it, what to
include, and how agents use it. Previously only had brief parenthetical
mentions without dedicated documentation.
Introduces an "About Me" field in Settings → General that allows users
to describe their background, preferences, and communication style.
This profile is exposed as {{CONDUCTOR_PROFILE}} template variable and
included in AI chat, group chat, and wizard prompts so agents can
tailor their responses to the user.
Add new Custom Configuration section documenting custom CLI arguments and
environment variables with screenshot. Rename navigation group to "Providers
& CLI" and reorder to list provider-notes first.
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