Releases: RunMaestro/Maestro
Release list
v0.18.4-RC | Maestro Web Desktop
Major 0.18.x Additions
🌐 Maestro Web Desktop is the full desktop UI running in your browser. Every Electron IPC handler is mirrored 1:1 over a WebSocket bridge, so the renderer runs unchanged on a tablet or phone with a responsive, touch-friendly layout: tri-state collapsible sidebar, drawer overlays, an adaptive header and input toolbar, touch-aware file picker, and iOS Safari fixes. Major upgrade to the remote capability.
🎯 Goal-Driven Auto Run lets you point Auto Run at a single free-text objective instead of a checklist. Each iteration spawns a fresh agent that makes one increment of progress, reports how far along it is, and exits, looping until the goal is reached or you stop the run. Pick Spec-Driven vs Goal-Driven with a toggle at the top of the Run dialog. Reach for it on open-ended work where you can't list the steps up front. Progress renders live across desktop, web/mobile, and History, and you can drive it headless with maestro-cli goal-run <agent> "<goal>" for cron jobs and CI.
💬 Cross-agent @mentions let your agents talk to each other: @-mention another agent by name to pull it into the conversation, ask it a question, and have its answer routed back to you, so your fleet collaborates instead of working in isolation.
🪟 Multiple windows let you pull agents into their own OS windows and spread your fleet across monitors, so you can keep several agents in view at once instead of flipping tabs in a single window.
🔲 Tab tiling splits the main window into side-by-side panes, so you can watch and drive two agents at once, or an agent alongside its terminal or files, without losing your place.
Other Changes in 0.18.4
- 🎬 Director's Notes Rich Mode: Director's Notes can render as a structured dashboard of stat widgets plus an AI narrative with LaTeX math support, with a one-click toggle back to Plain Mode.
- 🔁 Agent Resilience auto-retry: when an agent fails on a recoverable error like a 529 overload or a usage limit, Maestro automatically resends the prompt and shows an inline outage card with a live countdown, instead of silently dropping the turn.
- 🤖 Two new agents: Qwen Coder (
qwen3-coder) and Oh My Pi (omp) join the supported agent lineup. - ✏️ Editable message queue: edit a queued prompt's text and attached images before it sends, so you can fix a typo or swap a screenshot without clearing the queue.
- ⭐ Starred transcripts survive provider cleanup: Maestro keeps its own copy of every starred session's transcript, so a starred conversation still displays and resumes natively even after Claude Code rotates or deletes the original file.
- ⌨️ Snappier typing and lists: the prompt/terminal composer no longer re-renders the whole app on every keystroke, and the agent list only re-renders the rows that change, killing keyboard lag and scroll jank in large fleets.
- 🖼️ Freeze-free image persistence: pasted screenshots now live in a content-addressed store instead of being inlined into the sessions file, so a large image history no longer stalls the app.
- 🛡️ Security patches: resolved 15 of 20 outstanding Dependabot advisories across the dependency tree.
Full Changelog: v0.18.3-RC...v0.18.4-RC
v0.17.3 | Maestro Cue
Major 0.17.x Additions
🔐 Claude Token Source control keeps Claude running on your Max/Pro subscription quota by driving Claude's interactive session instead of the headless API path. A three-way Interactive / API / Dynamic selector is available everywhere agents run (new and existing agents, Cue runs, Group Chat, and background tasks). Dynamic mode uses your subscription quota automatically and only falls back to API billing when that quota is exhausted.
🪄 Maestro Cue is a new trigger-based cross-agent orchestration capability that lets heartbeats, GitHub issues/PRs, file system monitors, and other data sources bring your agents to life and pass work between one another.
💻 Full-featured xterm.js terminal tabs sit alongside your AI and file preview tabs, with support for opening and renaming multiple terminals.
🧑
🛠️ A vastly expanded maestro-cli now drives the whole running desktop app, and your agents know how to use it. You can just talk to an agent in plain language to create and run Auto Run playbooks, change settings, set up Maestro Cue pipelines, and manage groups, agents, tabs, and themes, instead of clicking through menus yourself.
0.17.3 Highlights
⌨️ Typing in the AI and terminal composer no longer lags, and the transcript no longer reflows on every keystroke, so the app stays smooth under heavy load.
🔁 Maestro now automatically retries a prompt when an agent hits a recoverable error such as an overloaded API, a rate limit, or exhausted quota, showing an inline outage card with a live countdown instead of dropping the run.
🎨 Agent replies now render rich markdown, including GitHub-style [!NOTE]/[!WARNING] callouts, LaTeX math, and sanitized inline SVG diagrams, so answers can be formatted and illustrated instead of landing as plain text.
🖼️ Pasted screenshots now live in a content-addressed store outside the main sessions file, so a workspace full of images no longer bloats that file or freezes the UI.
⭐ Maestro now keeps its own copy of every starred conversation's transcript, so a starred session survives even after the provider rotates or deletes its file and still resumes natively on restore.
Full Changelog: v0.17.2...v0.17.3
v0.18.3-RC | Maestro Web Desktop
Major 0.18.x Additions
🌐 Maestro Web Desktop is the full desktop UI running in your browser. Every Electron IPC handler is mirrored 1:1 over a WebSocket bridge, so the renderer runs unchanged on a tablet or phone with a responsive, touch-friendly layout: tri-state collapsible sidebar, drawer overlays, an adaptive header and input toolbar, touch-aware file picker, and iOS Safari fixes. Major upgrade to the remote capability.
🎯 Goal-Driven Auto Run lets you point Auto Run at a single free-text objective instead of a checklist. Each iteration spawns a fresh agent that makes one increment of progress, reports how far along it is, and exits, looping until the goal is reached or you stop the run. Pick Spec-Driven vs Goal-Driven with a toggle at the top of the Run dialog. Reach for it on open-ended work where you can't list the steps up front. Progress renders live across desktop, web/mobile, and History, and you can drive it headless with maestro-cli goal-run <agent> "<goal>" for cron jobs and CI.
Other Changes in 0.18.3
- 🔄 Auto-Resume on Limit: when a Claude agent hits a usage limit, Maestro pauses the run and automatically resumes the conversation once the limit resets - surviving an app restart, with a time-based give-up backstop and SSH support.
- 📊
.mmdand.mermaidfiles now render as sanitized, theme-aware diagrams by default, withCmd+Eto drop into source editing. - 🔍 File preview search gains a three-way toggle - text, regex, or jump-to-line - applied consistently across every preview tier.
- ✍️ Auto Run's Thought Stream now renders as formatted markdown instead of plain monospace.
- 💬 Group chat participants can run playbooks and Auto Run docs themselves via
maestro-cli, a more reliable path than the moderator-only!autoruntrigger, plus a newmaestro-cli run-docto execute raw Auto Run.mddocuments headlessly without a saved playbook. - 🔑 Tab naming now inherits the same provider auth as the chat, so it no longer fails with "Not logged in" when the agent itself is signed in.
- 🧩 Fixed a maestro-p plan-mode hang where
ExitPlanModeleft the turn waiting until timeout and discarded the plan it had already captured. - 🔒 Bumped dompurify, markdown-it, and js-yaml to clear three moderate security advisories on the markdown/YAML rendering surface.
🅰️ Web Desktop now loads JetBrains Mono so the browser bundle matches the desktop font instead of falling back to Courier New.- 🌐 Web Desktop now shows a branded loading splash, a spinner while your agents stream in, and a readable on-screen error with a same-network hint when the bundle can't load, instead of a blank page.
- 🖼️ Images and screenshots from agents running on an SSH remote now render inline in the AI terminal instead of failing to load.
- 🔁 Cue pipelines with
max_concurrentabove 1 no longer let the same trigger fire on top of itself and double its side effects, like a posting pipeline replying twice.
Full Changelog: v0.18.2-RC...v0.18.3-RC
What's Changed
- fix(maestro-p): finalize interactive plan-mode turns on ExitPlanMode by @pedramamini in #1118
- Auto-Resume-Paused-Session: 32 tasks across 2026-06-18-Auto-Resume-On-Limit/AUTO-RESUME-01, 2026-06-18-Auto-Resume-On-Limit/AUTO-RESUME-02 +2 more by @pedramamini in #1108
- Refactor GeneralTab settings sections by @reachrazamair in #1123
- refactor(DisplayTab): DisplayTab refactored into focused Settings sections by @reachrazamair in #1126
- refactor(encore): decomposed encore settings tab into dedicated modules by @reachrazamair in #1135
Full Changelog: v0.18.2-RC...v0.18.3-RC
v0.17.2 | Maestro Cue
Major 0.17.x Additions
🔐 Claude Token Source control keeps Claude running on your Max/Pro subscription quota by driving Claude's interactive session instead of the headless API path. A three-way Interactive / API / Dynamic selector is available everywhere agents run (new and existing agents, Cue runs, Group Chat, and background tasks). Dynamic mode uses your subscription quota automatically and only falls back to API billing when that quota is exhausted.
🪄 Maestro Cue is a new trigger-based cross-agent orchestration capability that lets heartbeats, GitHub issues/PRs, file system monitors, and other data sources bring your agents to life and pass work between one another.
💻 Full-featured xterm.js terminal tabs sit alongside your AI and file preview tabs, with support for opening and renaming multiple terminals.
🧑
🛠️ A vastly expanded maestro-cli now drives the whole running desktop app, and your agents know how to use it. That means you can just talk to an agent in plain language to create and run Auto Run playbooks, change settings, set up Maestro Cue pipelines, manage groups, agents, tabs, and themes, and much more, instead of clicking through menus yourself.
0.17.2 Modifications
🔑 New Claude Code agents now default to the API token source, and every existing agent has been reverted to it. The Max-plan TUI path stays available but is opt-in per agent.
🪄 The New Agent Wizard now exposes the same Interactive / API / Dynamic Claude Token Source selector as the Edit Agent modal, so wizard-created agents inherit your pick instead of silently falling through to API billing.
🧠 Plan-mode turns under the Interactive token source no longer stall and get killed at the timeout. Maestro now finalizes the turn and keeps the captured plan when the model exits plan mode. (#1117)
💬 Group Chat participants can now run their own Auto Run playbooks and documents headlessly through maestro-cli, with a new run-doc command, --agent lookup by name, and a --max-wait that matches the moderator's window so long-running turns aren't cut short.
🪄 Saving a Cue pipeline after only moving nodes around no longer re-runs the pipeline. Layout-only saves are now detected and skipped.
🔁 A Cue pipeline set to max_concurrent greater than 1 no longer overlaps a run with itself, so a slow heartbeat tick can't stack duplicate runs of the same pipeline.
📊 .mmd and .mermaid files render as themeable, sanitized diagrams in the file preview by default, with Cmd+E to drop into source editing.
🔍 File preview search gains a three-way Text / Regex / Line toggle, with friendly errors on bad patterns and jump-to-line support across every preview tier.
🖼️ Images from SSH-remote agents now render inline in the AI terminal, and a stray cache-key prefix that was corrupting remote file reads is fixed.
🔐 Tab auto-naming now inherits the same provider auth as the chat, so it no longer fails with "Not logged in" when the chat itself is signed in.
🍎 "Restart to Update" on macOS no longer hangs or trips the crash reporter while quitting to apply the update.
🛡️ Bumped dompurify, markdown-it, and js-yaml to clear three moderate security advisories in the markdown, YAML, and AI-output rendering path.
Full Changelog: v0.17.1...v0.17.2
What's Changed
- fix(maestro-p): finalize interactive plan-mode turns on ExitPlanMode by @pedramamini in #1118
Full Changelog: v0.17.1...v0.17.2
v0.18.2-RC | Maestro Web Desktop
Major 0.18.x Additions
🌐 Maestro Web Desktop is the full desktop UI running in your browser. Every Electron IPC handler is mirrored 1:1 over a WebSocket bridge, so the renderer runs unchanged on a tablet or phone with a responsive, touch-friendly layout: tri-state collapsible sidebar, drawer overlays, an adaptive header and input toolbar, touch-aware file picker, and iOS Safari fixes. Major upgrade to the remote capability.
🎯 Goal-Driven Auto Run lets you point Auto Run at a single free-text objective instead of a checklist. Each iteration spawns a fresh agent that makes one increment of progress, reports how far along it is, and exits, looping until the goal is reached or you stop the run. Pick Spec-Driven vs Goal-Driven with a toggle at the top of the Run dialog. Reach for it on open-ended work where you can't list the steps up front. Progress renders live across desktop, web/mobile, and History, and you can drive it headless with maestro-cli goal-run <agent> "<goal>" for cron jobs and CI.
Other Changes in 0.18.2
- 📥 Download remote SSH files straight to your local disk from the file explorer.
- 🖱️ Drag files onto an expanded folder's file list to move them there.
- 🖼️ Click queued message images to expand them, with a carousel for browsing multiple attachments.
- 🎯 Auto Run now carries your agent's New Session Message onto every Spec task and Goal iteration spawn, so standing instructions always reach the agent.
- 🔌 Fixed remote SSH file downloads and previews on macOS.
- 🟡 Web and mobile now mirror an agent's busy state accurately even when the input log is deduped.
Full Changelog: v0.18.0-RC...v0.18.2-RC
v0.18.1-RC | Maestro Web Desktop
Major 0.18.x Additions
🌐 Maestro Web Desktop is the full desktop UI running in your browser. Every Electron IPC handler is mirrored 1:1 over a WebSocket bridge, so the renderer runs unchanged on a tablet or phone with a responsive, touch-friendly layout: tri-state collapsible sidebar, drawer overlays, an adaptive header and input toolbar, touch-aware file picker, and iOS Safari fixes. Major upgrade to the remote capability.
🎯 Goal-Driven Auto Run lets you point Auto Run at a single free-text objective instead of a checklist. Each iteration spawns a fresh agent that makes one increment of progress, reports how far along it is, and exits, looping until the goal is reached or you stop the run. Pick Spec-Driven vs Goal-Driven with a toggle at the top of the Run dialog. Reach for it on open-ended work where you can't list the steps up front. Progress renders live across desktop, web/mobile, and History, and you can drive it headless with maestro-cli goal-run <agent> "<goal>" for cron jobs and CI.
Other Changes in 0.18.1
- 📥 Download remote SSH files straight to your local disk from the file explorer.
- 🖱️ Drag files onto an expanded folder's file list to move them there.
- 🖼️ Click queued message images to expand them, with a carousel for browsing multiple attachments.
- 🎯 Auto Run now carries your agent's New Session Message onto every Spec task and Goal iteration spawn, so standing instructions always reach the agent.
- 🔌 Fixed remote SSH file downloads and previews on macOS.
- 🟡 Web and mobile now mirror an agent's busy state accurately even when the input log is deduped.
- 🚀 Improved agent launch reliability for desktop interactive sessions.
Full Changelog: v0.17.0...v0.18.1-RC
v0.18.0-RC | Maestro Web Desktop
Major 0.18.x Additions
🌐 Maestro Web Desktop is the full desktop UI running in your browser. Every Electron IPC handler is mirrored 1:1 over a WebSocket bridge, so the renderer runs unchanged on a tablet or phone with a responsive, touch-friendly layout: tri-state collapsible sidebar, drawer overlays, an adaptive header and input toolbar, touch-aware file picker, and iOS Safari fixes. Major upgrade to the remote capability.
🎯 Goal-Driven Auto Run lets you point Auto Run at a single free-text objective instead of a checklist. Each iteration spawns a fresh agent that makes one increment of progress, reports how far along it is, and exits, looping until the goal is reached or you stop the run. Pick Spec-Driven vs Goal-Driven with a toggle at the top of the Run dialog. Reach for it on open-ended work where you can't list the steps up front. Progress renders live across desktop, web/mobile, and History, and you can drive it headless with maestro-cli goal-run <agent> "<goal>" for cron jobs and CI.
Other Changes in 0.18.0
- The Thought Stream is now a floating, searchable, app-wide panel that captures an Auto Run agent's live reasoning in timestamped blocks newest-on-top, and keeps capturing while minimized 🧠
- Queued messages with image attachments get click-to-expand thumbnails that open in the full-screen lightbox carousel 🖼️
- Press Cmd+E while viewing an image to jump straight into the image annotator ✏️
- The Usage Dashboard now fills large monitors instead of capping at roughly half the screen 🖥️
- Right-click any file on an SSH remote in the File Explorer to download it straight to your local disk 📥
Full Changelog: v0.17.0...v0.18.0-RC
v0.17.1 | Maestro Cue
Major 0.17.x Additions
🔐 Claude Token Source control keeps Claude running on your Max/Pro subscription quota by driving Claude's interactive session instead of the headless API path. A three-way Interactive / API / Dynamic selector is available everywhere agents run (new and existing agents, Cue runs, Group Chat, and background tasks). Dynamic mode uses your subscription quota automatically and only falls back to API billing when that quota is exhausted.
🪄 Maestro Cue is a new trigger-based cross-agent orchestration capability that lets heartbeats, GitHub issues/PRs, file system monitors, and other data sources bring your agents to life and pass work between one another.
💻 Full-featured xterm.js terminal tabs sit alongside your AI and file preview tabs, with support for opening and renaming multiple terminals.
🧑
🛠️ A vastly expanded maestro-cli now drives the whole running desktop app, and your agents know how to use it. That means you can just talk to an agent in plain language to create and run Auto Run playbooks, change settings, set up Maestro Cue pipelines, manage groups, agents, tabs, and themes, and much more, instead of clicking through menus yourself.
0.17.1 Modifications
🩹 Claude Token Source mode is far more resilient: it survives a dead stdout (EPIPE), reads large pasted images without crashing (EAGAIN), parses /usage panels that paint without newlines, and re-anchors limit detection to Claude's real banner. It also detects many more quota and credit-exhaustion messages, stops false-positiving on token/context/rate "limit" lines, and exits fast on a quota hit so Dynamic mode no longer stalls with "no response".
🔁 Desktop turns now honor your Interactive / Dynamic token-mode selection. Previously the per-agent setting was missed on desktop and silently fell through to API billing.
🔓 maestro-p now clears Claude's one-time "Bypass Permissions" acceptance screen automatically instead of quitting on it the first time an agent launches.
🖥️ SSH and startup terminal tabs no longer vanish when their PTY exits.
🧑
🪄 Maestro Cue pipeline layouts now stay put across Arrange and Save.
🖼️ Images render correctly when viewing files over SSH, and large pasted images no longer crash the driver.
🎨 Open any image in the annotation editor straight from a file-preview tab with Cmd+E, and Mermaid code fences now render as toggleable diagrams in chat.
🛠️ maestro-cli can now configure an agent's SSH execution settings, and the process monitor shows the real remote command for SSH spawns.
⌨️ Command-K Context, Buffer, and Content actions are now tab-aware, and the thinking pill follows the active tab during forced-parallel runs.
🎚️ The window title bar is now themeable with a new bgTitleBar token.
Full Changelog: v0.17.0...v0.17.1
v0.17.0 | Maestro Cue
Major 0.17.x Additions
⚠️ Please update before June 15. Anthropic is reclassifying Claude's headless
🔐 Claude Token Source control keeps Claude running on your Max/Pro subscription quota by driving Claude's interactive session instead of the headless API path. A three-way Interactive / API / Dynamic selector is available everywhere agents run (new and existing agents, Cue runs, Group Chat, and background tasks). Dynamic mode uses your subscription quota automatically and only falls back to API billing when that quota is exhausted.
🪄 Maestro Cue is a new trigger-based cross-agent orchestration capability that lets heartbeats, GitHub issues/PRs, file system monitors, and other data sources bring your agents to life and pass work between one another.
💻 Full-featured xterm.js terminal tabs sit alongside your AI and file preview tabs, with support for opening and renaming multiple terminals.
🧑
🛠️ A vastly expanded maestro-cli now drives the whole running desktop app, and your agents know how to use it. That means you can just talk to an agent in plain language to create and run Auto Run playbooks, change settings, set up Maestro Cue pipelines, manage groups, agents, tabs, and themes, and much more, instead of clicking through menus yourself.
Also in 0.17.0
🌍 Browser tabs open web pages directly inside Maestro as first-class tabs with a full address bar, navigation controls, in-page find, and session persistence across restarts.
🔗 SSH Shared History synchronizes Maestro instances working on the same project, with each host writing per-hostname history files so participants see each other's work.
🌐 The web/mobile interface gained real PTY terminals, swipeable panels, notification dropdowns, and dozens of desktop-equivalent features for a full touch-friendly experience on tablets and phones.
📊 A new Usage Dashboard tracks Claude and Codex token consumption over time with p50 to p99 duration percentiles, and read-only maestro-cli stats brings the same metrics to your terminal.
✏️ All core system prompts (Auto Run, commit messages, Group Chat moderation, Spec-Kit/OpenSpec, and more) are now fully editable.
🎨 New Image Annotation tool for marking up screenshots with freehand strokes, pan/zoom, and configurable pen styling.
📝 File preview was rebuilt on CodeMirror 6 with shared Shiki syntax highlighting across every code surface.
🧠 A Claude per-project memory viewer lets you see and manage what your agent remembers across sessions.
🎚️ Model and reasoning-effort quick-change pills let you switch model and effort from the input area without opening settings.
🧮 Auto Run now auto-picks fresh context per Document or per Task based on your agent's context window, letting wider-window models like Opus 4.8 and GPT-5.5 absorb more tasks per fresh context before splitting them up.
🔎 A new JSONL viewer opens .jsonl/.ndjson files in a sortable, schema-aware table with per-row tree expansion and a built-in jq-style filter syntax (select(), map(), group_by(), pipes, and 40+ more) with live evaluation.
🔱 Fork a brand-new session off any point in an AI message's history without disturbing the original thread.
🔍 Type-to-filter Settings search, with full keyboard navigation, instantly surfaces any setting across every tab.
⭐ A Starred Sessions list in the Left Bar keeps special sessions pinned up top, with Cmd+[ and Cmd+] to cycle straight through them from the keyboard.
Full Changelog: v0.15.2...v0.17.0
v0.16.20-RC | Maestro Cue
Major 0.16.x Additions
🪄 Maestro Cue is a new trigger-based cross-agent orchestration capability that lets heartbeats, GitHub issues/PRs, file system monitors, and other data sources bring your agents to life and pass work between one another.
💻 Full-featured xterm.js terminal tabs sit alongside your AI and file preview tabs, with support for opening and renaming multiple terminals.
🧑
🌐 The web/mobile interface gained real PTY terminals, swipeable panels, notification dropdowns, and dozens of desktop-equivalent features for a full touch-friendly experience on tablets and phones.
🔗 SSH Shared History synchronizes Maestro instances working on the same project, with each host writing per-hostname JSONL files to .maestro/history/ on the remote so participants see each other's work.
🌍 Browser tabs open web pages directly inside Maestro as first-class tabs with a full address bar, navigation controls, session persistence across restarts, and bulk close support.
Changes in v0.16.20-RC
🛠️ maestro-cli gained a batch of desktop-driving commands to create/rename/remove groups, rename and focus agents, manage tabs, switch themes, toggle Encore Features, and control Auto Run, all steering the running app over the WebSocket bridge.
🌿 A new maestro-cli create-worktree command branches a fresh agent off an existing one into its own git worktree, with an optional starting prompt and no playbook required.
📄 Toggling a file between preview and edit re-anchors on the source line at the top of the viewport instead of drifting (now including rich rendered-markdown previews), and file tabs that share a filename get minimal folder-prefixed labels.
📊 The Usage Dashboard activity heatmap moved from Overview onto its own Activity tab, and the Anthropic Usage tab now appears reliably in packaged builds.
🔼 The Left Bar highlight no longer jumps to the bookmark row when you cycle or arrow onto a bookmarked agent's normal row.
🏷️ A new Display setting shows the full group name on bookmarked agents (e.g. [2] CASE/CONTENT-SYSTEM) instead of the abbreviated badge, truncated with the full value on hover.
🪟 Modals now scale their width with the Cmd+= font-size setting by default, so at larger fonts footer buttons no longer clip and prose no longer crams into tall narrow columns, clamped to 95vw so wide modals stop overflowing narrow windows.
🔃 The inline queued-items list uses the same press-to-grab drag-to-reorder as the Execution Queue modal, and reordering a single tab's filtered view rearranges only that tab's items while the other tabs keep their slots.
💬 Wizard tabs swap the wand for a chat icon and hide the AI tab-kind icon while in wizard mode (it reappears after conversion) to reduce clutter.
⏰ A new time.once Cue event fires a one-shot scheduled action at an exact moment and then deletes itself, paired with a notify toast action and a maestro-cli cue schedule command for one-off reminders like "in 20 minutes do X" or "tomorrow at 9am email me a summary".
🔐 Unconfigured SSH agents now default to the interactive maestro-p TUI (Max-plan intent) instead of burning per-token API credit, and a "Re-check" button in agent config re-probes a remote host for maestro-p without waiting out the 5-minute cache. The remote probe now runs maestro-p --version to confirm it will actually launch, rather than only checking that the file is on PATH.
🐛 Fixes & Polish
⚡ The file preview's mermaid, syntax-highlighter, and markdown stack now loads lazily, so cold starts and landing on an AI tab are noticeably faster.
🖼️ Large or cold-cached images no longer freeze the app while the git handler reads them, and oversized remote file writes stream over stdin instead of hitting the OS argument-length limit.
🧯 The Compaction Failed toast now surfaces the real underlying cause (Failed to compact context: <reason>) instead of pointing you at a phantom details tab.
🧬 Agents running in interactive token mode again record their History entries and auto-named tabs: maestro-p no longer leaks Claude session-identity variables into the TUI it drives, which had caused the child run to produce no transcript and time out with an empty synopsis.
⌨️ The Cmd+E preview/edit toggle is reliable again, landing focus in the editor after paint instead of dropping it.
💬 The group chat History panel's DELEGATION, SYNTHESIS, and ERROR filter chips now actually match entries (the moderator's synthesis and forwarded turns are classified correctly), and the chips share one neutral tint differentiated by icon and label rather than implying a per-type color legend.
🖥️ Terminal tabs recover from WebGL context loss instead of going blank, with repeated re-inits capped to avoid loss/reinit loops.
Full Changelog: v0.16.19-RC...v0.16.20-RC