* 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)
- Compaction now triggers earlier: 2k tokens or 8 exchanges 🎯
- Added extra compaction fallbacks when context gauge resets unexpectedly 🔁
- Read-only tabs now force “return plan in Markdown” instructions 🧾
- Auto Run without worktree automatically runs in read-only/plan mode 🛡️
- ThinkingStatusPill now accepts prefiltered thinkingSessions for speed ⚡
- InputArea precomputes thinking sessions and memoizes command filtering 🚀
- MainPanel memoizes active tab lookup to cut per-keystroke work 🧠
- TerminalOutput memoizes active logs and reduces scroll update frequency 🖥️
- Batched session updates track context high-water mark with explicit reset 🌊
- Wizard adds one-click debug log download right in the conversation UI 🧰
- Leaderboard registration now submits cumulative stats safely for multi-device sync 🏆
- AutoRun prompt now requires a concrete “what I did” synopsis first 🧭
- Fresh app icons for macOS and Windows builds, looking sharper than ever 🖼️
- New opt-in global Leaderboard tracking via <a href="https://runmaestro.ai">RunMaestro.ai</a> 🚀
- Themes documentation revamped into Dark, Light, and Vibe categories 🎨
- Theme lineup refreshed with Catppuccin Mocha, Gruvbox Dark, and Ayu Light 🌈
- Brand-new Vibe themes added: Maestro’s Choice, Dre Synth, InQuest ✨
- New docs screenshots added to better showcase Maestro’s experience 📸
- Sessions now support bookmark toggling via Cmd+Shift+B and UI actions 🔖
- Added global Leaderboard showcasing Auto Run records and community rankings 🏆
- Leaderboard includes conductor badge, social links, and detailed stat sync 🌐
- Documented Tab Switcher fuzzy search with quick numbered tab jumps 🔎
- Tab Switcher now shows token count, cost, and context usage insights 📊
- Added screenshot-rich Shortcuts Settings guidance for remapping keys 🛠️
- Enhanced Shortcuts Help modal docs with search and mastery checkmarks ✅
- Introduced new default shortcut: Toggle Bookmark (Cmd+Shift+B) 🔖
- Wired Toggle Bookmark into main keyboard handler for active sessions ⚡
- Refreshed documentation screenshots, including new shortcuts modal image 🖼️
- Generate playbooks mid-session with the new Inline Wizard flow 🧙
- Add confidence gauge and organized wizard subfolders for generated docs 📈
- Launch **Maestro Symphony** to donate tokens and ship OSS PRs 🎵
- Browse/filter/search Symphony projects and issues directly in-app 🔎
- Auto-clone repos, run Auto Run docs, and open draft PRs automatically 🚀
- Track Symphony contributions with active/history/stats dashboards 📊
- Make leaderboard submissions multi-device safe using delta-based aggregation 🔁
- Stop image flicker with synchronous cache-backed Markdown image loading 🖼️
- Debounce Auto Run preview scroll persistence to cut noisy re-renders ⏱️
- Rename/delete in File Explorer updates tree instantly—no full refresh ⚡
- Gist publish modal now shows previously published URL and details 📌
- Copy gist URL in-app with instant “Copied!” feedback button 🧷
- Open published gists directly in your browser from the modal 🌐
- Re-publish flow added, with back navigation and replacement warning 🔁
- File preview now highlights the Gist icon when a gist exists 🎯
- Published gists are remembered per file path and restored on startup 💾
- Gist metadata now tracked (visibility and publish timestamp) for each file ⏱️
- App persists gist mappings to settings automatically after publishing 🗄️
- Community Discord links updated everywhere to <a href="https://runmaestro.ai/discord">runmaestro.ai/discord</a> 🔗
- Test suite expanded to cover existing-gist UI, copying, and republish flows 🧪
- Add "Agent Native Commands" section to slash-commands.md explaining
which Claude Code commands work in Maestro's batch/print mode
- Document supported commands: /compact, /context, /cost, /init,
/pr-comments, /release-notes, /review, /security-review
- Document unsupported interactive commands: /mcp, /help, /clear,
/config, /model, /permissions, /memory, /rewind, /vim, /doctor, etc.
- Update provider-nuances.md to link to the new section
- Add tip for using CLI directly for interactive commands
Closes#146
- 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 ⚡
- Documented multi-pass context compaction with chunking, consolidation, progress indicators 📚
- Compaction now triggers via context percent *or* ~10k-token log estimation 🔍
- Added consolidation passes to keep compacted summaries under ~40k tokens 🧠
- Introduced comprehensive ContextSummarizationService test suite for compaction flows 🧪
- Remote SSH session git info now fetches in background, speeding app startup 🚀
- UI now flags SSH connection failures with clear session tooltip badges 🛑
- Wizard confidence gauge renamed and now displays a dimmed label for clarity 🎛️
- Wizard conversation empty state upgraded with onboarding, benefits, and exit hint 🧙♂️
- Wizard input auto-focuses when activated for faster first interaction ⚡
- Wizard document generation saves into sanitized project subfolders and auto-creates playbooks 🗂️
- Added SSH-aware worktree directory scanning for remote Git setups! 🛰️
- Git repo checks now support SSH remote IDs across the app! 🔐
- Usage stats now track local vs SSH remote query execution! 📍
- Introduced stats DB v2 migration adding `is_remote` column + index! 🗃️
- Aggregated stats API now returns `byLocation` breakdown for dashboards! 🧭
- New donut chart visualizes Local vs SSH Remote session distribution! 🍩
- Execution Queue pills intelligently size to show full tab names! 🏷️
- Queue pills now include hover titles for full tab text! 🧾
- Worktree sessions now inherit SSH configuration from parent sessions! 🧬
- Release notes frontmatter now includes a shiny new `scroll` icon! 📜
- Explore markdown relationships with the new interactive Document Graph view 🕸️
- Jump into Document Graph from explorer, quick actions, and file preview ⌨️
- Navigate graphs keyboard-first with depth control, search, and node positioning 🧭
- Optionally surface external-link domains as nodes for instant reference 🔗
- Group Chat now mixes local and SSH-remote agents for cross-machine teamwork 🛰️
- SSH Remote Execution docs revamped with clearer setup, mapping, and status cues 🛠️
- Remote sessions now fully support File Explorer, Auto Run, worktrees, and terminal 🧰
- File explorer context menu adds “Document Graph” for markdown files only 📁
- Edit Agent modal lets you copy session ID from a slick custom header 🪪
- Freshened app branding with updated icons across platforms 🎨
- Switched docs sidebar icon to sparkling wand for fresher branding ✨
- Synopsis prompt now explicitly anchors to last synopsis time window 🧾
- Added per-session SSH remote config to session update pipeline 🔐
- New Instance now always persists explicit SSH enabled/disabled choice 🧭
- Edit Agent modal loads SSH settings from session, not agent defaults 🧰
- Session save now forces local execution when SSH disabled explicitly 📴
- Main header badge now shows SSH remote name instead of GIT/LOCAL 🖥️
- Session list badges clearly label REMOTE and append “(SSH)” to tooltype 🏷️
- Usage heatmap redesigned into hour-by-day grid with AM/PM scaling 🕒
- Source distribution chart simplified by removing floating tooltip overlay 🧩
Added comprehensive "Sleep Prevention" section to docs/configuration.md with:
- Feature overview and how to enable
- Activation triggers (busy sessions, Auto Run, Group Chat)
- Platform support table (macOS, Windows, Linux)
- Linux desktop environment compatibility notes
- Updated Settings Overview table to include power management
- Import SSH remotes straight from `~/.ssh/config` via new dropdown picker 🚀
- Run remotes using SSH Host patterns, not raw IPs anymore 🧭
- Username and private key become optional when SSH config is enabled 🔑
- SSH commands now omit `-i` unless you explicitly override keys 🎛️
- Default port 22 no longer forced; only send `-p` when overriding 🔌
- New SSH config parser supports HostName, User, Port, IdentityFile, ProxyJump 🧩
- Wildcard-only hosts (`Host *`, `dev-*`) are ignored for cleaner imports 🧹
- UI shows “Using SSH Config” indicator with one-click clear toggle 🏷️
- Added IPC + preload API to fetch SSH config hosts safely 🛡️
- Expanded test coverage for SSH-config mode command-building and parsing ✅