Changelog

Updates

Unreleased

Current beta

Added

  • Document configuration: introduces a visual frontmatter editor to modify YAML metadata without manual coding.
  • Plugin updates: introduces update detection, one-click updates, and an "Update All" capability for installed plugins and tool servers.

Changed

  • Performance: reduces memory usage and application startup time via paged transcripts and process sweeps.
  • Plugin discovery: rebuilds the browsing experience for skills, plugins, and tools with visual cards, ranked search, category chips, and trust summary badges.
  • Theme: refines visual aesthetics including aurora and starfield effects, improves contrast on transparent elements, and splits gloss lightness into distinct light and dark mode settings.
  • Library documents: optimizes context limits by linking documents as short teasers rather than embedding full text in every turn.
  • Plugin management: upgrades installed plugin lists to use striped, fixed-header tables and standardizes plugin icons.
  • Detail cards: unifies the visual language and layout of information cards across the application.
  • Tool servers: displays built-in tool servers in the main servers table and adds bulk update actions.
  • Windows install (one-time): each release channel now runs under its own executable name. Because Windows stores some browser-backed interface data next to that executable, this upgrade clears your open tabs and a few interface preferences once, per channel. Your settings, sessions, and credentials are stored separately and are not affected.

Fixed

  • Markdown links: preserves local file links to remain clickable instead of being silently removed.
  • File parsing: resolves cross-platform parsing issues for file paths, ensuring reliable handling of Windows drive letters and special characters.
  • Background processes: prevents background processes from leaking after closing the application and properly cleans up unexpectedly closed sessions.
  • Updates: resolves an issue where application updates could fail during network interruptions by adding automatic retries.
  • Settings: prevents application settings from being lost or dropped across restarts.
  • Typography: fixes clipped text edges and incorrect font weights on page headers.
  • Windows channels: installing or updating one channel no longer closes the others. Every channel shipped the same executable name, so the installer's "close the running app" step matched all of them — silently during a background update — and could leave the new install incomplete.

Security

  • Network paths: mitigates a potential credential leak on Windows by rejecting remote network paths for file operations.
  • File operations: hardens image saving to prevent arbitrary file read vulnerabilities.

Added

  • Server settings: displays a health warning on tool groups when a server is disconnected.

Changed

  • Permissions: removes redundant consent dialogs for individual widgets in favor of connection-level visibility rules.
  • Developer tools: displays images directly in the wire log instead of showing unreadable text strings.

Fixed

  • Widgets: preserves the state of form submissions even if the application is restarted or the view changes.
  • Icons: ensures custom icon choices are correctly saved and rendered instead of reverting to defaults.
  • Search: resolves an issue that caused the application to crash when navigating certain search results.
  • Widget forms: displays an accurate "Form shown" status on tool bubbles rather than incorrectly showing a failure state.
  • Diagnostic overlays: prevents spurious error messages from appearing by correctly handling background requests.

Added

  • Toolchains: introduces a dedicated settings pane to inspect managed toolchains, displaying installation timestamps, update checks, and recent failure reasons.

Changed

  • Plugin installation: presents a consistent list of components before and after consent.
  • Skill tree: groups a plugin's skills into a unified folder sorted alongside directories.
  • Command inputs: allows safely pasting full shell commands, automatically extracting the executable and properly quoting arguments.
  • Environment previews: explicitly states the origin of the spawned toolchain binary.

Fixed

  • Marketplaces: improves stability when browsing catalogs by better handling network rate limits and caching.

Added

  • Agent prompts: supports multi-select options and toggle switches when agents ask for your input.

Fixed

  • Developer tools: prevents the Inspector from freezing when viewing extremely large data payloads.
  • Performance: speeds up the sidebar loading time for agent sessions and usage metrics.
  • Connection tags: ensures accurate tags are displayed when reconnecting to an agent, preventing stale information from appearing.

Security

  • Activity logs: automatically redacts registered sensitive credentials from your local history logs.

Fixed

  • Windows app loading: resolves an issue where the app could freeze during startup.
  • Sign-in: preserves your login session if the initial connection fails.
  • Connection status: displays accurate network states while loading and preserves exact error messages if setup stops unexpectedly.

Added

  • Marketplaces: introduces a new tab to browse and manage all external catalogs and built-in servers in one place.
  • Tool permissions: adds a nutrition label to the session setup and context shelf, making it easy to see exactly which tools an agent can access.
  • Skill previews: introduces an interactive dialog for viewing skills, allowing you to read multiple documents, follow links, and navigate back through your history.

Fixed

  • File reading: automatically skips unnecessary permission prompts by preventing text reads of binary files outside the sandbox.
  • Token usage: ensures accurate usage counts are displayed for agents that report their metrics in non-standard formats.
  • Windows app loading: fixes an issue that could prevent the app from loading or navigating correctly on Windows.
  • Session recovery: reconnects to active agent sessions smoothly without launching duplicate background processes, and ensures available slash commands are preserved.
  • Integration credentials: saves configuration changes reliably without overwriting previously stored OAuth data.
  • Phone reconnects on its own: the iOS app now recovers automatically when its private link gets stuck after the phone sat idle, instead of needing to be force-quit and reopened. The "Try again" button on the connection card also performs a full link reset immediately.
  • Quieter error log: the harmless "ResizeObserver loop" browser notice no longer floods the app's error log several times a second, and the tab bar's fit-to-width measuring no longer triggers it.

Added

  • Browse conversations offline: the iOS app shows your cached conversations even when the desktop can't be reached.
  • Quieter desktop discovery: the iOS app stops repeatedly probing tailnet devices that can't be desktops, pauses scanning while its own link is down, and backs off devices that keep not answering.
  • Tailscale version in Settings: both the desktop's Private link card and the iPhone's Connection screen now show the running Tailscale version, and the phone's Advanced screen keeps a copyable connection log for troubleshooting.
  • One-step tailnet provisioning: saving a Tailscale credential now restarts the private link automatically, so automatic networking applies immediately with no manual off/on toggle.
  • Far From Home readiness checklist: the Private link card now shows each provisioning step (MagicDNS, HTTPS, policy, service, tagged key) with a check and a plain-language reason when one fails, plus live rows for whether the node is tagged and the stable address is serving.
  • Desktop network identity encrypted at rest: the private link's on-disk Tailscale identity is now sealed with a key kept in the OS keychain (existing installs migrate automatically and safely), a new readiness row shows it, and the device reports it to the tailnet so access policy can require encrypted desktops.
  • One paste finishes Far From Home setup: paste a 1-day Tailscale API key once: the app mints its own narrowly-scoped credential, tags this machine in place (no sign-out or reconnect needed), and then revokes the pasted key in Tailscale for you. Nothing long-lived to clean up, and the Settings guidance now recommends the 1-day expiry.
  • Network details on the Private link card: a new collapsible section shows this desktop's Tailscale IPv4/IPv6, short and full domain (each with its own copy button), a ready-to-use `https://` URL, and the three connection paths a phone can arrive by: Direct (the dialable endpoints), Peer relay, and DERP — with a plain-language note that https works with the full domain because that's the name the certificate is issued for.
  • Mermaid diagrams in chat: fenced `mermaid` code blocks in agent messages now render as live diagrams instead of plain code.
  • Widget permissions: introduces explicit consent prompts and a new settings interface to manage camera and microphone access.

Changed

  • App name: updates the application name to Agent Muse across all interfaces.

Added

  • Connection warnings: displays clear "Unreachable" and "Needs re-authorization" alerts when integrations disconnect or lose access.

Changed

  • Selection styling: updates the active selection highlight to use a consistent, unified glow across the app.

Fixed

  • Tool counts: displays accurate tool totals by properly deduplicating shared tools when multiple tags are selected.

Added

  • Mobile skills: introduces a right-edge slide-over panel on iOS for managing skills with full drag-and-drop support.

Changed

  • Mobile forms: updates iOS input forms to fully support all field types and bring them to parity with the desktop app.
  • Mobile interactions: makes response text globally selectable and displays dictation errors directly inline.
  • Session presence: unifies active session indicators across desktop and mobile, displaying a single corner dot on session icons.

Fixed

  • Connection status: updates the mobile connection screen padlock to accurately reflect live network socket states.
  • Network connectivity: resolves wake-from-sleep connectivity issues to ensure reliable reconnections for paired devices.

Security

  • Link security: prevents the execution of malicious web links by restricting interactive URLs strictly to secure web protocols.

Added

  • Environment variables: introduces a unified system to view, edit, and securely lock environment variables across all system scopes.
  • Launch arguments: allows appending custom startup arguments to any integration and clearly displays the base requirements.
  • System paths: allows syncing command-line paths from the local shell so custom tools are available to agents.

Changed

  • Interactive prompts: waits indefinitely for your reply by default instead of silently cancelling unanswered questions after a timeout.
  • Interface styling: applies new diffused glass effects, widens dialog boxes, and refines scrollbars, dropdowns, and sidebar contrast.

Fixed

  • Configuration settings: fixes issues where unlocking secure values or saving empty variables could inadvertently delete them entirely.
  • Device pairing: prevents the application from incorrectly showing a new pairing prompt when internal storage is temporarily busy.
  • Registry integrations: ensures that installed integrations correctly receive all required startup parameters, automatically healing broken installations.

Security

  • Secret storage: securely scrubs credentials from the system keychain when an integration is deleted, resolving a potential credentials leak.

Added

  • Zero-install networking: ships a built-in secure networking node for macOS, eliminating the need to install a separate system client.
  • Tailscale sign-in: displays an interactive login button in Settings instead of stalling, and securely provisions the desktop using pasted single-use API keys.
  • Remote access settings: adds a "Far From Home" tab to view private link status, manage paired mobile devices, and track presence directly from the desktop.
  • Stable download links: introduces persistent download links for each release channel that always point to the latest version.
  • Window controls: replaces custom macOS window buttons with native traffic lights and makes the entire top edge draggable.
  • Terminal styling: renders ANSI color sequences correctly in chat terminal outputs for both light and dark modes.
  • Display settings: adds animated pattern backgrounds, wallpapers, and customizable glass aesthetics like diffusion and lightness.
  • Desktop identity: allows editing the desktop's display name directly in Settings, instantly syncing to connected mobile devices.
  • Mobile background sync: allows the iOS app to silently check for pending approvals without opening the application.
  • Interactive prompts: adds experimental support for inline user prompts and subagent spawns directly within the chat transcript.
  • Session status bubbles: displays non-intrusive timeline indicators when a chat session starts, resumes, or is canceled.
  • Network toggle: allows starting and stopping the remote access connection dynamically from Settings without relaunching the app.

Changed

  • App updates: significantly improves in-app update download speeds, keeps the UI responsive, and adds an "Update All" button for registry extensions.
  • Design system: updates the interface to a new material design system with an Amethyst crystal theme, tonal gloss, and moonrise wallpaper by default.
  • Chat UI: unifies tool cards with harmonic tinted glass, removes duplicate terminal commands from the output, and applies specific color accents to different types of tools.
  • App icon: updates the application icon with refined colors and new day/night figures for macOS and iOS.
  • Windows UI: uses opaque window surfaces for improved compatibility and moves window controls to the standard top-right position.
  • Session configuration: simplifies the interface by replacing legacy mode and model selectors with a unified settings picker.
  • Prompt cancellation: clicking the stop button now surgically interrupts the current request instead of ending the entire session.
  • Sign out: signing out now cleanly disconnects the network, forgets paired devices, and resets the connection history.
  • Mobile typography: updates the iOS app with a New York serif font toggle for message replies and a warmer visual style.

Fixed

  • Device pairing: recovers pending phone pairing prompts automatically if the app reloads or restarts.
  • Mobile connection: makes the iOS app connection more reliable with self-healing networks, accurate background status reporting, and a one-tap restart button for crashed sessions.
  • Window positioning: prevents the application window from restoring off-screen after changing monitors.
  • Video playback errors: translates unhelpful video error messages to standard codes during the startup intro.

Removed

  • Fluted glass: removes the fluted glass interface style across the application.
0.6.02026-06-29

0.6.0

Added

  • Glass UI system: refactors the frontend UI to use a new glass design system with advanced wallpaper modes and dynamic text contrast adjustments.
  • Pasted text handling: processes large pasted-text blocks as distinct embedded resources and renders them as collapsed chips.
  • Chat cards: builds specialized tool cards for rendering ask user, fetch, search, and subagent tools.
  • Image viewing components: adds lightbox, view, and grid components to display images.
  • Message tracking: adds wire message count tracking to the session repository.

Changed

  • Dependencies: pins `rmcp` and `rmcp-macros` to version 1.7.0.

Fixed

  • Shutdown warnings: suppresses expected agent stderr death-rattles during shutdown.
0.5.32026-06-23

0.5.3

Added

  • Subagents: introduces standalone subagents as a first-class entity with complete UI and backend wiring.
  • MCP task cards: implements universal inline cards bound to tool bubbles for tracking background tasks like subagent spawns.
  • Multi-select elicitations: adds multi-select checkbox support to the `ask_user` tool schema and frontend forms.
  • Built-in Muse gateway: surfaces a built-in Muse card in the Gateway Status UI to display native tools and protocol methods.
  • Skills audit pills: adds security audit pills and external repository links to the Skills UI.
  • In-place skill updates: adds an update button to fetch and install managed skill updates directly from the UI.

Changed

  • Elicitation proxying: routes `ask_user` prompts to the parent chat across all subagent modes to decouple autonomy from elicitations.

Fixed

  • ACP extension crashes: returns `method_not_found` instead of `null` for unknown extension methods to prevent crashes.
  • macOS binary crashes: implements code-signature repair to resolve AMFI SIGKILL vulnerabilities by cleanly re-extracting native binaries.
  • Launch symlink crashes: bypasses `npx` to launch installed entries directly via node, preventing `EEXIST` symlink loop crashes on version bumps.
  • Tab restoration: fixes a bug that dropped active ACP sessions and missing scope fields on reload.
  • Font clipping: adjusts line-height to fix cursive font clipping on Muses cards and sidebar tabs.
0.5.22026-06-20

0.5.2

Added

  • Skills repository: adds an in-app interface to browse, install, and audit skills from skills.sh and GitHub.

Changed

  • Tab restoration: hardens tab hydration on reboot and adds boot logging to prevent a single failed session from blocking initialization.

Fixed

  • Duplicate tabs: deduplicates tabs by session ID to fix an issue where opening the same live session created duplicate tabs.
  • Wire transcripts: guarantees `session/load` handshake frames are captured to bypass lossy broadcast drops and improve reliability.
0.5.12026-06-16

0.5.1

Added

  • MCP Inspector tab: adds a dedicated tab with a UI for exploring resources, templates, and completions.
  • Gateway Facts card: details built-in tools and advertised protocol methods, exposing a synthesized `tool://` catalog.
  • MCP Apps host: enables inline rendering of `mcp-ui` widgets in strictly sandboxed iframes with theme-aware styling.
  • Subagent transcript dialog: adds a dialog to view running or completed child transcripts.
  • Elicitation support: integrates the `ask_user` tool, allowing backend servers to pause tool calls and prompt for interactive input from the user.
  • Widget data persistence: adds widget data to the audit log to enable hydration on session restore.

Changed

  • OAuth flow: refactors authorization to use an introspection-first UI.
  • Agent protocol capabilities: de-advertises `resources`, `templates`, and `completions` from agents, exposing them exclusively to the harness.
  • Subagent autonomy: transitions `spawn_subagent` to `subagent` and introduces `subagent_settings` for supervised vs. auto policies.
  • Database schemas: advances database schemas and migrates MCP governance to use immutable backend slugs instead of display names.

Fixed

  • OAuth connectivity: fixes a missing User-Agent header causing 403 errors, registers exact redirect URIs, and unifies secret keying to correctly persist client secrets for token refresh.

Removed

  • Legacy session tables: drops legacy session tables in the application database.
0.5.02026-06-10

0.5.0

Added

  • Subagent architecture: adds `spawn_subagent` task-mode support, keepalive heartbeats, and progressive disclosure for config options. (PR 169)
  • Subagent muses: enhances Muses with `useAsSubagent` toggle and default configs. (PR 169)
  • Composer and session recovery: adds Settings UI for re-assigning orphaned sessions to new composers, locating missing local composer binaries, and batch recovery for relocated session project folders. (PR 169)
  • Telemetry and diagnostics: introduces `logs.db` with an interactive Log Viewer to capture frontend crashes, unhandled rejections, and raw MCP stderr. (PR 169)

Changed

  • In-process MCP servers: wraps in-process MCP servers with an auto-reconnect supervisor. (PR 169)
  • Wire transcript recorder: updates wire transcript recorder to preserve handshakes and drop redundant replays. (PR 169)

Fixed

  • Tool access inheritance: fixes tool access inheritance for subagents. (PR 169)
  • Session restore pipeline: fixes `AGENT_NOT_AVAILABLE` and `PROJECT_DIR_MISSING` crash loops during restore by resolving identities directly from the database and fixing cyclic JSON crashes. (PR 169)
  • Windows CI paths: fixes Windows CI test paths. (PR 169)

Security

  • macOS App Store releases: removes invalid `reminders` macOS entitlement blocking App Store releases. (PR 169)
0.4.02026-06-01

0.4.0

Added

  • Sidebar destinations: adds registry-driven top-level sidebar destinations for Gateway, Tools, and Skills, moving these surfaces out of Settings into dedicated pages. (PR 168)
  • Composer ordering: adds drag-to-reorder for Composer cards with persistence to the `composer_order` app setting. (PR 168)
  • Gateway connect timeout setting: adds `mcp_connect_timeout` to network settings and wires it into MCP gateway connection behavior. (PR 168)

Changed

  • Bump workflow: optimizes the bump workflow with a shared toolchain and caching to prevent recompiling the dependency graph, and migrates to the `warp-ubuntu-latest-x64-4x` runner for cache compatibility. (PR 166)
  • Composer home experience: replaces the ACP Clients view with a responsive Composer grid in non-advanced mode and renames "Clients" to "Composer". (PR 168)
  • Settings composition: refactors Settings into reusable `TabBar`, `ToggleRow`, and `SettingField` components, and moves Mail Accounts and Custom MCP Servers configuration into Tools. (PR 168)
  • ACP handshake timeouts: standardizes `protocol_init` and `session_new` timeouts to 60 seconds. (PR 168)

Fixed

  • WebKit segmented control height: fixes a phantom-height layout issue in the Agents segmented control. (PR 168)
  • Type bindings import: fixes `acpClientPersistence.ts` to use `LocalAgentRead` for generated bindings compatibility. (PR 168)

Security

  • macOS personal-information entitlements: adds calendar, reminders, and location entitlements for Hardened Runtime TCC permission prompts across Developer ID and App Store builds. (PR 168)
0.3.222026-05-30

0.3.22

Fixed

  • macOS release bundle: fixes a release bundle failure where Tauri incorrectly tried to copy `smoke_launch` into `Agent.app` by moving `smoke_launch.rs` from `src/bin/` to `examples/`. (PR 164)
0.3.212026-05-30

0.3.21

Added

  • Gateway persistence: adds `mcp_gateway_tokens` and `mcp_gateway_sessions` for restart-resilient MCP routing to allow sessions to survive app restarts. (PR 139)
  • Tool scoping: adds `allowed_tags` to policy assignments and an "Allowed groups" tag picker to settings for granular tool restrictions. (PR 139)
  • Isolated logging: adds `per_backend_logging.rs` for isolated per-backend MCP logs. (PR 139)
  • Global PATH inheritance: adds a tri-state "Inherit global PATH" control to settings. (PR 139)
  • Smoke tests: adds a headless `smoke_launch.rs` binary to CI to catch init, DB migration, and keychain regressions. (PR 139)

Changed

  • Filesystem sandbox: refactors `acp-fs::Sandbox` to support secondary read-only grants alongside the project directory. (PR 139)
  • Shell execution bridging: rewrites `bridge_shell_command` with `shlex::split` to preserve bash features and handle packed commands natively. (PR 139)
  • Registry pagination: migrates MCP registry fetching to use lazy-loaded pagination with an `IntersectionObserver`. (PR 139)
  • Agent icons: updates the agent SVG icons to handle dynamic themes (`color`, `duotone`, `lineart`, `silhouette`). (PR 139)

Fixed

  • Tauri Sink collisions: prevents sequence collisions by adding a background ticker and history rebasing (`append_with_seed_rebase`). (PR 139)
  • Agent save errors: resolves persistence errors on save by splitting the local agent DTO into `LocalAgentRead` and `LocalAgentWrite`. (PR 139)
  • Database migrations: re-sequences and verifies migrations to fix a `v3→v4` issue and the `v28→v32` chain. (PR 139)

Security

  • OAuth secrets: migrates OAuth `client_secret` to the OS keyring and updates the `secrets` schema to separate local/registry MCP foreign keys. (PR 139)
0.3.202026-05-28

0.3.20

Fixed

  • Resumed-session event loss: fixes silent data loss across app restarts by lazily seeding the `TauriSink` sequence counter from persisted history instead of resetting to `0`, extracting write logic to a testable `BufferWriter`, and adding collision diagnostic logging. (PR 138)

Added

  • `governance_enabled` column: adds `agent_md.governance_enabled INTEGER` (v28 → v29 additive migration) to prepare for future governance capabilities. (PR 122)
0.3.192026-04-28

0.3.19

Fixed

  • Session overrides: fixes a missing session list error by creating the `session_overrides` table and update trigger, and correcting the column count in the session repository insert statement. (PR 120)
  • Storage UI: fixes a bug where SQL view expressions evaluated to `null` by updating `sqlite_row_to_json` to use the cell runtime type. (PR 120)
  • Project paths: prevents unhandled promise rejections on failure by adding explicit error handling when opening project paths. (PR 120)
0.3.182026-04-28

0.3.18

Added

  • Inherited environment UI: surfaces full `inherited_env` in `EffectiveAgentEnv` to show exactly what is inherited from the parent process, adds visual indicators in the `EffectiveEnvPreview` component, and automatically displays the resolved environment preview after a successful connection test. (PR 118)

Changed

  • Agent containment directories: replaces `HOME` and `USERPROFILE` overriding with XDG base directories for registry agent containment. Preserves the real user home in `HOME` for compatibility with native tooling, while injecting `XDG_CONFIG_HOME`, `XDG_CACHE_HOME`, `XDG_DATA_HOME`, and `XDG_STATE_HOME` routed to the per-agent isolation root. (PR 118)
  • Dependencies: bumps `keyring-core` and platform-specific `keyring-store` crates to 1.0, and bumps `adk-skill` from 0.6.0 to 0.7.0. (PR 118)

Fixed

  • Draft environment variables: fixes a frontend bug where newly added draft environment variables vanish when saving by changing `saveClient` to use an optimistic in-memory merge to prevent blank rows from being lost during persistence layer filtering. (PR 118)
0.3.172026-04-20

0.3.17

Added

  • MCP variant-aware install: registry MCP entries that ship multiple `(source, transport)` variants (npm-stdio, pypi-stdio, remote-streamable-http, remote-sse) now expose a picker dialog. Single-variant entries install directly. Reinstalling with a different variant transparently uninstalls the old one and surfaces a "Replacing X with Y" progress message. The chosen variant is stored on `registry_mcps.installed_variant`. (PR 8)
  • MCP icon fetch + safety: install-time SVG icon download with 64 KB cap, content-type checks, and a safety scan rejecting `<script>`, `on*=` event handlers, and `javascript:` URIs. Frontend `MCPIcon` component renders monochrome SVGs via CSS `mask-image` so they tint with the active theme; non-mono SVGs and raster icons render as `<img>`. (PR 8 commit 4)
  • MCP startup variant backfill: `reconcile_installed_variants` runs at app launch alongside `refresh_installed_mcps_from_registry` and fills `installed_variant` for legacy v26 rows by mapping each row's stored `transport` to a matching variant in the live registry. (PR 8 commit 6)
  • `installed_variant` column: new `registry_mcps.installed_variant TEXT` (v27 → v28 additive migration). (PR 8 commit 2)
  • Cursor-paginated MCP registry fetch: `fetch_mcp_registry_paginated` walks every page (capped at 50 for safety) and caches the snapshot to `<data>/registry/mcp-registry-v2.json` with a 1-hour TTL. Search queries bypass the cache. (PR 8 commit 3)

Changed

  • Spawn env contract: the `_extra_paths` magic env key has been removed. `AgentACPClient::probe_agent` / `list_agent_sessions` / `start_acp_session` and `spawn_auth_terminal` now take a typed `extra_paths: Vec<PathBuf>` parameter resolved by `app_api::env::resolve_agent_env`. The `ResolvedEnv { vars, path_layers, source_trace }` surface is the authoritative shape for env + PATH at spawn time. The deprecated `prepare_agent_env`, `build_agent_env`, and `inject_toolchain_and_global_paths` wrappers in `app-api/src/acp.rs` are deleted. (PR 7.6)
  • Binary / system runtime install isolation: each binary or system registry agent now has its own `runtime_installations` row keyed on `(runtime_id, os, arch, bin_dir)` instead of collapsing onto a singleton per `(runtime_id, os, arch)`. Resolves a class of bugs where multiple binary agents shared whichever `bin_dir` was installed last (e.g. a stakpak install masking codex-acp's PATH). The v26 → v27 migration splits any pre-existing collapsed rows. (PR 7.5)

Fixed

  • MCP `_extra_paths` legacy read: `resolve_mcp_env` no longer consumes the legacy `_extra_paths` JSON key from `McpServerConfig.env`. It now reads typed `runtime_installations.bin_dir` rows directly. Latent legacy MCP rows that still carry the key silently lose it (those installs were already broken; reinstall via the variant picker). (PR 7.6)
  • MCP variant reconcile pagination cap: `reconcile_installed_variants_at_startup` no longer fetches the full paginated MCP registry just to backfill a few rows. The live MCP registry now exceeds 3000 entries (50 pages × 60 / page), tripping the safety cap and aborting reconcile. The reconciler now runs a focused name search (`?search={name}&limit=60`) per `installed_variant IS NULL` row via the new `find_mcp_entry_by_name` helper. O(installed MCPs) HTTP calls instead of O(registry size / 60). Snapshot-based unit-test path (`reconcile_installed_variants(pool, &snapshot)`) is preserved for testability.
0.3.162026-04-14

0.3.16

Added

  • Agent schema: added a `maintenance_jobs` table for a durable background work queue and a `v_all_agents` view to unify execution paths.
  • Toolchain management: added `toolchain_installations` to manage Node.js and uv downloads, and implemented robust `HOME` directory resolution and tilde expansion for agents.
  • Environment configuration: added `global_env` and `global_paths` repositories to support global environment variables and a PATH editor.

Changed

  • Agent database: replaced legacy `acp_clients` by splitting agents into `local_agents` and `registry_agents`, bumped schema to v25, and migrated session tables to `events.db`.
  • OAuth authentication: updated the MCP gateway to resolve OAuth metadata secrets from the OS keyring and updated secret tracking to link to local and registry agents.
0.3.152026-04-09

0.3.15

Changed

  • CI infrastructure: updated GitHub Actions workflows to skip linting and validation jobs for release and documentation commits.

Fixed

  • Agent installations: migrated registry installations from `npx` to `npm install -g` with a custom `.npmrc` to isolate cache and global operations within the app data directory, preventing macOS App Sandbox denials.
  • Auth terminals: injected runtime execution paths into terminal sessions to ensure registry-installed agents can resolve bundled dependencies like Node.js during authentication flows.
0.3.142026-04-08

0.3.14

Added

  • Runtime tracking: added a `runtimes` database table to definitively track installed Node.js and uv paths, using `walkdir` to discover exact executable locations post-download.
  • In-app release notes: added a UI section to display patch notes directly in the settings panel when an application update is available.

Changed

  • ACP runtime resolution: updated runtime path injection for registry-installed agents to securely resolve locations from the new `runtimes` database table instead of client metadata.
  • CI infrastructure: migrated GitHub Actions workflows to use custom Warp runners and caching to improve build and test performance across all platforms.
  • Release pipelines: updated the release pipeline to capture dynamically generated release notes and include them in the update payload.
  • Startup video loading: simplified the intro video player to load assets directly via Vite instead of fetching and constructing blob URLs.
  • Automated signatures: updated PR descriptions and changelog generation scripts to use current product branding.
0.3.132026-04-08

0.3.13

Changed

  • ACP client state: centralized configuration, connection probing, and session fetching into Zustand stores to simplify component architecture and state management.
  • MCP server state: moved computation of installed registry metadata into the Zustand store to improve performance and code organization.
  • Agent runtime resolution: migrated injection of bootstrapped registry paths to the Rust backend during capability probing and session fetching to ensure isolated runtimes are used.

Fixed

  • NPX package installations: fixed registry installation failures for scoped packages by properly stripping existing version suffixes before applying the pinned version.
0.3.122026-04-07

0.3.12

Added

  • OAuth pre-registration: added support for configuring pre-registered OAuth apps (e.g. GitHub) via a new Client ID field in MCP server settings.
  • Registry install progress: added real-time progress bars to the registry browser during agent and server installations.
  • Secrets metadata tracking: added a database table to track metadata, owner relationships, and expiration dates for all credentials stored in the OS keyring.
  • Combined logging: introduced a unified `combined.log` file that captures all chronological logging output to simplify debugging.

Changed

  • Keyring backend: replaced `secret-lib` with `keyring-core` backed by platform-specific native stores (macOS Keychain, Windows Credential Manager, Linux Secret Service).
  • Keyring namespace: updated the keyring service name to use the app bundle identifier, and added an automatic migration for legacy secrets on startup.
  • MCP settings UI: redesigned the server list into a grid of cards with inline transport badges, update buttons, and clear OAuth authorization states.
  • Agent settings UI: agent cards now display their configured default task instead of a generic description, and the entire card is clickable.
  • macOS runtime permissions: quarantine xattrs on downloaded runtimes are now stripped in-process via `libc::removexattr` to prevent App Sandbox subprocess denials.
  • Unix shebang resolution: scripts spawned on Unix now explicitly resolve their shebang interpreter against the injected PATH to ensure isolated runtimes are used.
  • Skill directory access: security-scoped bookmark resolution for custom skill directories is now handled centrally in the backend during discovery.

Fixed

  • OAuth 401 handling: HTTP backends returning 401 Unauthorized now correctly prompt for OAuth authorization instead of recording generic connection failures.
  • Gateway synchronization: the MCP gateway now automatically reloads backends immediately after a successful OAuth token exchange.
  • Redundant installations: registry installations are now skipped if the requested version is already installed locally.
  • Registry errors: registry browser error messages can now be manually dismissed and will automatically clear after 5 seconds.
0.3.112026-04-07

0.3.11

Added

  • Remote MCP servers: added registry support for installing and configuring remote MCP servers via HTTP/SSE transports.
  • Agent stderr capture: agent child process stderr is now captured during initialization and injected into connection error messages for improved diagnostics.
  • Protocol message events: JSON-RPC messages for initialization, session management, and authentication are now persisted as raw session events for auditing and replay.

Changed

  • State management: migrated frontend architecture from React Context to Zustand stores for themes, tabs, notifications, and settings to improve performance and code organization.
  • Windows CI performance: expanded Windows Defender exclusions to cover Node.js, pnpm, and compiler processes for faster builds.
  • Release build profile: changed link-time optimization (LTO) from full to thin to reduce compilation times.
  • Chat transcript retention: updated the settings UI to provide a dropdown with common presets (10 days, 1 month, 1 year, forever) alongside custom day input.

Fixed

  • Registry entry resolution: entries not found in the local cache now trigger a fresh registry fetch or targeted search to correctly resolve remote-only servers.
0.3.92026-04-05

0.3.9

Added

  • Registry browser icons: entry icons now display inline with agent/server names. Icons are resolved to data URIs at fetch time and cached. `dark:invert` applied for dark mode. Icon picker disabled for registry-installed agents.
  • View Logs button: Settings → General now has a "View Logs" button that opens the app data directory in Finder/Explorer.
  • Spawn failure diagnostics: cross-platform diagnostics when a child process fails to launch: file existence, permissions, PATH resolution, shebang/interpreter checks. On macOS: quarantine xattr, Gatekeeper assessment, code signature, and sandbox entitlement status.
  • Startup entitlements dump: logs effective entitlements at startup via Security.framework for TestFlight debugging.
  • `ENTITLEMENTS.md`: reference doc for both entitlement profiles.

Changed

  • Structured logging: removed `acp_log!`/`acp_debug!`/`acp_error!` macros (41 call sites), replaced with direct `tracing` calls using structured fields. Terminal lifecycle events promoted to `info`; agent stderr promoted to `warn` for release build visibility.
  • Project path opens directly: clicking the project path pill in the session header now opens the directory (`openPath`) instead of revealing it in the parent folder.
  • unknownUpdate event type: `event_type_str()` returns the actual type from raw JSON instead of hardcoded `"unknownUpdate"`.

Fixed

  • Startup video interrupted: intro video was cut short in release builds because `onComplete` callback changed on every render, causing effects to re-run. Stabilized via ref + `useCallback`.
  • Cmd+C / Ctrl+C copy: keyboard copy wasn't reaching the WebView's native copy handler. Added a global keydown handler that writes plain text to clipboard via the Tauri clipboard plugin.
  • Registry agent icons lost on install: `fetch_icon_data_uri` was trying to HTTP GET data URIs from cached registry entries, silently failing. Now passes through data URIs unchanged.
  • Registry agent runtime PATH: `_extra_paths` from metadata wasn't being injected into spawn env vars. Fixed in backend (reads metadata from DB) and frontend (`buildAgentEnv` helper).

Security

  • App Store entitlements: added `files.user-selected.executable`, media folder access, microphone, Apple Events. Removed incorrect `inherit` and unnecessary hardened runtime exceptions.
0.3.82026-04-02

0.3.8

Added

  • App Store sandbox support: entitlements for sandboxed distribution, security-scoped bookmarks, and process spawning.
  • Cmd+C copy: native keyboard copy support for WebView content.
  • Runtime PATH injection: bootstrapped runtimes found via `_extra_paths` metadata.

Fixed

  • Process spawning: child process lifecycle, session cleanup, and spawn diagnostics.
0.3.72026-04-02

0.3.7

Fixed

  • Process spawning fixes and App Sandbox support.
0.3.62026-04-02

0.3.6

Fixed

  • Bug fixes and stability improvements.
0.3.42026-04-01

0.3.4

Fixed

  • Bug fixes and dependency updates.
0.3.32026-04-01

0.3.3

Fixed

  • Bug fixes and dependency updates.
0.3.12026-04-01

0.3.1

Fixed

  • Bug fixes and dependency updates.
0.3.02026-03-31

0.3.0

Changed

  • Internal improvements and dependency updates.
0.2.22026-03-31

0.2.2

Changed

  • Internal improvements and dependency updates.
0.2.12026-03-30

0.2.1

Added

  • Registry browser: browse and install ACP agents and MCP servers from official registries with distribution type badges.
  • Runtime bootstrapper: auto-download Node.js and uv for npx/uvx agents. SHA256 verified, old versions cleaned up.
  • Inline skill references: type `/` mid-prompt to reference skills.
  • Session meta hydration: modes, models, commands, config, and plan state restored from persisted messages.
  • Tool call grouping: live tool calls render as compact grouped blocks with streaming text pinned at bottom.
  • Window clamping: app window clamped to screen size on launch.

Changed

  • Settings UI tightened: reduced padding, constrained width, collapsed CLI details.
  • Default window size: `1720x1080` → `1440x900` for 14" MacBook Pro.
  • Release pipeline: `finalize-release` job merges per-platform updater manifests.

Fixed

  • Orphaned MCP processes: `kill_on_drop(true)` on gateway child processes.
  • Session restore tool calls: falls back to persisted `toolCallStart` messages.
  • SIZING.md compliance: px-based layout violations converted to rem.

Performance

  • `release_max_level_info`: debug/trace compiled to no-ops in release builds.
  • Non-blocking stderr: tracing stderr layer wrapped in `non_blocking()`.

Security

  • SHA256 verification: binary distributions verified against registry checksums.
  • App Store entitlements: `files.bookmarks.app-scope` and `keychain-access-groups`.
0.1.52026-03-29

0.1.5

Added

  • Windows port with Azure Trusted Signing.
  • Cross-platform CI pipeline.
  • Refreshed app icons (iOS, Android, Windows asset sets).
0.1.32026-03-15

0.1.3

Added

  • Initial public release.
  • ACP client management with carousel UI.
  • MCP gateway with per-session HTTP.
  • EventKit and AgentMail built-in MCP servers.
  • Glass UI with dynamic accent colors.
  • Session persistence and restore.

Get the latest beta

Beta channel always redirects to the current signed prerelease.