Changelog

Every improvement we ship to the boilerplate, released regularly.

  1. v2.2.0

    Base UI, a slimmer setup, and error reporting you can switch on

    Every React component now runs on Base UI, seven init-time questions became plain config values you can change any time, and error reporting is one flag away. Nothing here needs a migration - update, answer anything `update` asks, and carry on.

    Features

    • Every UI component moved to Base UI, bringing better keyboard and screen-reader behaviour across dialogs, menus, tabs, selects and the rest
    • Error reporting is a config flag - turn on `observability.sentry` and your server, website and desktop app report errors, with nothing loaded until you do
    • Seven setup questions are gone - social logins, billing scope, email analytics, built-in AI, user API keys, the MCP server and the desktop release trigger are all plain config values you edit whenever you like
    • The outward MCP server ships to every project behind a config gate, so you can expose your app to AI agents without regenerating
    • Desktop projects always ship the AI stack, switched on or off by config rather than fixed at setup

    Fixes

    • Desktop releases only ever happen when you start one - no merge can publish installers or spend your Actions minutes
    • `update` no longer resets choices behind your back - organization billing and email-tracking-off now ask first, and a pre-split project keeps its AI billing mode
    • Onboarding can no longer be skipped by belonging to an organization, and both frontends now agree on when to show it
    • Admin pages render again where a menu heading could crash them, and row-action menus size to their content instead of wrapping onto two lines
    • A desktop app with AI switched off ships no terminal dependency and refuses the daemon transport outright
    • Email open tracking no longer counts inbox prefetches as opens

    Performance

    • The MCP server and error-reporting SDK load only when enabled, so projects with them off pay nothing at startup
  2. v2.1.1

    Nuxt production API fix

    Fullstack Nuxt deployments with AI enabled shipped a server bundle that was missing the aliased packages the AI runtime imports, so every API request failed in production. Builds now include those packages on every deployment target.

    Fixes

    • Fullstack Nuxt production builds no longer crash on API requests - the server bundle now carries the aliased AI packages it imports, on Docker and Vercel alike
  3. v2.1.0

    Solo unlocks both frameworks, companion joins Pro

    Every license now scaffolds both Next.js and Nuxt - the Solo plan is no longer locked to a single framework - while the companion daemon becomes a Pro-and-up entitlement alongside the desktop app. This release also hardens rate limiting and admin billing.

    Features

    • The companion daemon is now a Pro-plan entitlement: the CLI skips it for Solo licenses and the license server enforces it at init

    Fixes

    • Rate limiting keys on the real client IP so spoofed forwarded headers can no longer dodge or pollute limits
    • Admin plan and credit edits apply atomically and fail loudly instead of half-saving
  4. v2.0.1

    Chat polish and find-in-conversation fix

    A round of fixes to the in-app AI chat: search highlights now work on the web, and the message box feels calmer while you type.

    Fixes

    • Find-in-conversation (Cmd/Ctrl+F) now highlights matches on the web chat - previously the matches were located but never visibly painted
    • The chat message box has a softer border and focus state, and its toolbar no longer shifts as the page finishes loading
  5. v2.0.0

    Breaking

    The local-first desktop, Mastra agents, and built-in credit billing

    The desktop app is reborn on Electron and runs AI fully on-device through your own coding CLIs. Chat moves onto a built-in assistant agent with encrypted cross-device sync, credit-billed AI ships alongside bring-your-own keys, and schedules, email analytics, and live-chat support round out the platform. Breaking: the builder task system retires in favor of Mastra agents - a task is now a one-line declaration.

    Features

    • The desktop app moves to Electron and runs AI fully local - chat, schedules, and an in-app terminal powered by your own coding CLIs, no backend required
    • Connect a coding CLI through a guided flow - full catalog, automatic pairing and supervision, and one-click disconnect
    • Chat runs on a built-in assistant agent with server-side memory - conversations sync across devices, encrypted client-side with AES-256-GCM
    • A rebuilt chat experience - full page with history sidebar, live tool-call transcript, Cmd+K command palette, and Cmd+F search in any conversation
    • Attach photos to chat - multiple per message, paste support, automatic optimization, and delivery to CLIs that support images
    • Built-in credit-billed AI and user API keys as independent switches - white-label model picker, per-run cost metering, live balance, and a transactions history page
    • Schedules level up - cron expressions, run history on every surface, per-plan limits, and pinned devices with one-click moves
    • Dispatch device-side work to your users' companions from product code - per-device grants, origin policy, and a local audit log
    • The builder task system retires in favor of Mastra agents - declaring a task is now one line
    • Email analytics - open and click tracking, an admin Emails page with per-template rates, and automatic retention cleanup
    • Chatwoot joins Crisp as a live-chat support option, on web and desktop
    • Your users can download the desktop app from your site, and projects choose a shared or vendored companion source at init
    • Star your go-to models and reset any model override back to the default in one click

    Fixes

    • Credits, refunds, and reversals hardened through eight money-safety audit rounds - atomic reversals, visible credit debt, durable refund accounting, and chargeback protection
    • Schedules evaluate cron in each user's timezone and superseded runs clean up after themselves
    • Companion sessions stay scoped to the CLI that created them - no cross-CLI replays or connect/disconnect races
    • An outdated CLI now refuses to scaffold or stage a newer template instead of producing a broken project

    Performance

    • Companions poll with fewer round-trips and less idle traffic while chat stays instant
  6. v1.46.1

    Fixes

    • Generated projects export the companion config helpers again
  7. v1.46.0

    Features

    • Buyers vendor and publish their own branded companion (#42)
  8. v1.45.0

    Features

    • OpenCompanion ships a backend-integration guide for third-party apps
  9. v1.44.1

    Fixes

    • Silo index pages no longer double the silo name in the browser title
  10. v1.44.0

    Features

    • OpenCompanion macOS releases are notarized by Apple

    Fixes

    • Standalone release build runs pnpm/npm through the shell on Windows
  11. v1.43.0

    Features

    • Companions - your users pair their own AI coding CLIs (Claude Code, Codex, OpenCode, Hermes Agent) with your app through OpenCompanion, an open-source daemon you neither build nor host
    • OpenCompanion ships from github.com/Duzbee/OpenCompanion with signed, notarized, provenance-attested releases and a one-line installer for macOS, Linux, and Windows
    • Every dispatched run is written to a local, append-only audit log on the user's machine before it executes - fail-closed, readable with `opencompanion log`
    • Local policy ceilings - users view and clamp what any connected app may ask of their machine, per backend
    • One daemon serves all paired apps at once, with hot pair/unpair and per-app confined work folders
    • OpenCompanion keeps itself up to date - staged in the background, checksum-verified, applied only while idle, with one-command rollback
    • Companions pages redesigned in both frontends - device cards with machine name, version, update state, and per-CLI status, plus a guided add dialog that detects the moment a device comes online
    • Generated projects ship an OpenCompanion docs silo when the companion is enabled

    Fixes

    • Large announcement broadcasts fan out in size-bounded batches so no recipients are dropped
    • Newsletter sync skips a contact the provider rejects instead of failing the whole daily run
    • Tools with the same name from two MCP servers both stay callable
    • Windows CLI sign-in probes no longer report every CLI as signed out
    • Repeated calls to the same tool in a companion chat each keep their own card
    • Desktop AI runs that fail instantly are torn down instead of leaking their process

    Performance

    • Web-only AI projects no longer install the agentic CLI SDKs - roughly 216 MB lighter installs
    • Chat no longer re-projects the whole transcript on every streamed token
    • Companion runs build their toolset and system prompt in parallel
  12. v1.42.0

    Features

    • Desktop app rebuilt on Tauri - a lighter, faster shell with signed and notarized installers for macOS, Windows, and Linux, theme-matched cold start, and built-in auto-update
    • Desktop AI engine runs as a supervised sidecar with OS-keychain secrets, a locked-down CSP, and a browser-safe control contract
    • Drive AI runs on your own Hermes Agent installed on your companion machine - the fourth coding CLI alongside Claude Code, Codex, and OpenCode, with full app-tool access
    • Connect companion coding CLIs from the app UI with a one-click Connect button - one click when the CLI is already signed in, clear guidance when it is not, terminal command as the fallback
    • Knowledge base runs on plain Postgres with keyword retrieval - no pgvector extension or embeddings required
    • Companion runs can pin a reasoning effort and resume multi-turn conversations across the wire

    Fixes

    • Rebranded desktop apps store keychain secrets under their own app identifier and never share credentials with other apps
    • Read-only AI runs never auto-approve a mutation the agent requests, and running tools are no longer shown as finished early
    • Hermes Agent selections dispatch to your companion from schedules, saved defaults, and background tasks
    • Linux deep links route correctly and external links open only over http(s)
    • Organization selection recovers cleanly after deleting or leaving the active organization
    • The desktop app no longer prompts for the keychain password on every dev launch
  13. v1.41.1

    Fixes

    • Restore Upstash-cache builds broken by ioredis-only redis calls
  14. v1.41.0

    Features

    • Allowlist-based buildCliEnv replacing the denylist
    • Port exec, claude-version and detect-cache leaf utilities
    • Port binary resolution accepting .cmd/.ps1/.bat shims
    • Port shell-path with pure inspector-strip and node-dir-on-child-PATH
    • Driver param types with resume fields and the conversation event
    • Port the agentic mapping helpers
    • RunContext-threaded agentic run-loop with no module global
    • Claude/codex/opencode adapters with RunContext and resume
    • SDK drivers with abort handler, child-PATH node, shim override and resume
    • Agentic registry, RunContext sessions, local-mcp and mcp-tools
    • Execute() entry and the interleaved per-run isolation regression test
    • Add relay wire contract (run.start/cancel/tool.result down; run.event/tool.call/hello/heartbeat up) + clampPolicy
    • Scaffold Node app + host-agnostic app-data paths
    • AES-256-GCM file secret store (chmod 600) behind SecretStore seam
    • Conf-backed state store for paired products, connections, work folders, policy ceilings
    • Confined work/<productId>/ resolution with parent-escape guard
    • Build isolated RunContext + clamped RuntimeRunRequest from a dispatched run.start
    • Executor drives one dispatched run via runtime session manager + loopback app-MCP, streams run.event
    • Socket.IO relay client - hello, idempotent run.start dispatch, run.cancel, tool-call proxy, run.event up
    • Single-instance PID lock, detached process-group spawn flag, graceful shutdown drain
    • Wire daemon (lock + registry + session manager + executor + per-product relay) and companion serve CLI
    • Add companion_credentials schema isolated from apikeys
    • Companion_credentials mint/verify/revoke with scope isolation
    • Stateless HMAC relay wire token issue/verify
    • Companion/rag config types, presence map, relay init guard
    • Relay brokering core + dispatch over an injected io seam
    • Socket.io relay adapter + attachRelay on the persistent host
    • Companion pairing + dispatch routes with credential-isolation regression
    • Add pgvector knowledge_documents + knowledge_chunks schema
    • Add knowledge scope + tenant-isolation WHERE builder
    • Add pluggable EmbeddingProvider seam
    • Add chunk->embed->store knowledge ingest (pure @repo/ai math)
    • Add server-side hybrid retrieve + grounding (rrfFuse + buildKnowledgeMap)
    • Add agent registry + compose grounded RunStart (rag-gated)
    • Proxy knowledge tools server-side over the relay (tenant-scoped)
    • Wire embed-on-write Inngest job + grounded dispatch route
    • Presence-read primitive with auth-health field
    • Queue-and-notify for interactive offline dispatch
    • Presence-read, pair-code, and offline queue routes
    • Auth-health enum on hello/heartbeat
    • Propagate companion auth-health into presence
    • Lazy CLI-auth-health monitor over authStatus
    • Wire auth-health monitor + heartbeat timer into daemon
    • Headless code-paste pairing
    • Companion presence state machine, hook, and status badge
    • Companion status and offline copy (en)
    • Companion status hook over the presence route
    • Add companion/rag to InitOptions and ProjectManifest
    • Catalog companion and rag manifest options
    • Parse --companion/--rag flags with the rag-requires-companion gate
    • Expose --companion/--rag on init
    • Add companion deployment guard and upstash warning
    • Surface companion persistent-backend reject and upstash warning at init
    • Emit config.companion and config.rag from init options
    • Persist companion/rag in the project manifest
    • Widen device-flow validateClient for the companion pairing client
    • Add stripRag fail-loud config gate
    • Add stripCompanion fail-loud surface removal
    • Register stripCompanion/stripRag in the shape pipeline
    • Local bge-small EmbeddingProvider (onnxruntime-node, lazy)
    • Register the local embedder at boot behind config.rag
    • Knowledge upsert/CRUD route emitting knowledge/upsert
    • Register the RAG embedder at host boot
    • Add delete operations to the state store
    • Add shared control-api DTOs and validators
    • Add bounded in-memory log buffer
    • Add per-session control token with chmod 600 storage
    • Add relay supervisor for runtime pairing reconciliation
    • Add synthetic local test-run driver for onboarding
    • Add pure control-api management handlers
    • Serve the token-gated loopback control API + SPA
    • Scaffold the management SPA reusing ui-next + styles
    • Add pure onboarding wizard state machine
    • Add wizard + management screens reusing ui-next
    • Scheduled-dispatch - cron-fired grounded runs to the companion
    • Scaffold tauri v2 menubar shell
    • Stage the daemon bundle + vendored node as tauri resources
    • Supervise the daemon child with crash-restart and parent-death exit
    • Tray menu + management window loading the loopback UI
    • Single-instance focus, launch-at-login, and deep-link pairing
    • Wire the auto-updater with a configurable release feed
    • Sign the macos app with hardened runtime + jit entitlements
    • Add Companion daemon + menubar shell launch configs
    • Stream companion run events to the web over an authguarded SSE route
    • Companion chat demo - pair, dispatch, and stream a run live
    • Self-install as an OS service + fixed management URL
    • Stable connection id (toolId), default it, auto-open UI on first run
    • Per-user BYOK provider keys, encrypted at rest, wired into chat
    • BYOK AI chat + provider-key settings
    • BYOK AI chat + provider-key settings (Vue)
    • Unify AI chat with a backend selector (Cloud BYOK or My Companion)
    • Scheduled AI runs - BYOK prompts that fire on a cadence and notify
    • Scheduled AI runs UI - create, toggle, and review schedules
    • Scheduled AI runs UI (Vue)
    • User-defined agents (system prompt + model) usable in chat
    • User agents UI - manage agents and pick one in chat
    • User agents UI + chat picker (Vue)
    • User knowledge base + chat grounding (no pgvector)
    • Knowledge base UI + chat grounding toggle (web-next + web-nuxt)
    • Shared AI chat types + run-event reducer
    • Shared chat markdown + rich message rendering
    • Rich chat rendering (markdown, reasoning, tool chips) via shared ui-next
    • Shared two-pane ModelPicker dialog + provider glyph
    • Require explicit model selection (remove default model) + provider-grouped /ai/models
    • Two-pane ModelPicker dialog in chat (replaces plain dropdown)
    • Shared presentational ChatView (header + transcript + approval + composer)
    • Render shared ChatView in cloud chat
    • Companion as a pickable backend in unified chat (remove tab switcher)
    • Desktop-style providers/keys settings page + shared ProviderCard
    • ModelPicker + desktop-style cards for agents/schedules/knowledge
    • Rich chat rendering + two-pane ModelPicker (Vue parity)
    • Companion as pickable backend in unified chat (remove tab)
    • Desktop-style providers/keys settings page (Vue parity)
    • ModelPicker + desktop-style cards for agents/schedules/knowledge (Vue parity)
    • Per-project port assigned at CLI init (avoid multi-project collisions)
    • Toggleable chat dock + top-bar toggle, notifications moved to sidebar
    • Web integrations backend - catalog + encrypted connection store + routes
    • Integrations page - connect MCPs/APIs/services (desktop-style)
    • Integrations page - connect MCPs/APIs/services (Vue parity)
    • Rich Models page (default + fallback model) matching desktop
    • SSR chat dock (no layout shift) + polish, notifications by theme switcher
    • Model failover - primary falls back to the user's fallback model (cloud + companion)
    • Companion runs can use connected integrations (MCP servers + API tools)
    • Connect and monitor multiple devices from the web app
    • Bring your own API key for any provider, billed to your own quota
    • Choose BYOK or platform AI billing at project setup
    • Provider catalog with "Add provider" and multi-device companion management
    • Provider catalog and multi-device companion management (Vue parity)
    • Group coding CLIs in the model picker and add a guided companion setup
    • Custom base URL for BYOK providers (OpenAI-compatible endpoints)
    • Ground the web AI chat with your knowledge base
    • Link knowledge entries with wikilinks and lint the knowledge base
    • Let the AI maintain your knowledge base from chat
    • Add a web UI to manage your knowledge base
    • Set a default and fallback model, matching the web
    • Show a generic knowledge-consulted badge in chat
    • Type integrations as MCP, API, OAuth, or CLI
    • Connect OAuth integrations with a secure sign-in flow
    • Schedules pre-select your default model and let you change it
    • Connected integrations are usable as tools in web chat
    • The assistant can consult your knowledge base and run app actions, asking approval before changes
    • The assistant can manage your schedules, integrations, and account from chat
    • The assistant can manage your local schedules and agents from chat
    • The assistant can run a schedule on demand, and AI-created schedules take effect immediately
    • The chat assistant offers to do things for you or explain how, using its tools
    • One chat approval toggle (default off) replaces the per-action approval prompts
    • Run a schedule on demand from the Schedules page
    • Prepare the web knowledge stack automatically on dev start
    • Knowledge base works out of the box with pnpm db:setup (pgvector + schema + indexes)
    • Scope schedule management to the organization in org-billing mode
    • Add config.ai.userSchedules to disable user-created schedules
    • Builder-defined built-in schedules, materialized and locked per account

    Fixes

    • Drop npm_config allowlist prefix that leaked registry credentials
    • Correlate dispatch run id, real cancel, product-scoped connection, atomic lock
    • Close relay io on shutdown, align heartbeat wire, pairing-code expiry+consume, re-pair rotates
    • Headless pairing lookup+auth, redeliver queued runs on reconnect
    • Scope credential revoke to owner (IDOR), strengthen pair-code entropy + rate-limit
    • Keep @repo/companion-protocol inert when companion is off
    • Wire the companion + knowledge schemas into the generated db index
    • Make relay+knowledge typecheck across all db/cache providers (kept-inert portability)
    • Minor hardening - agentId 400, dedupe knowledge callId, fence passages, paired-product guard, body cap, SPA cleanup
    • Relay handshake secret field (dead loop), multi-turn conversation round-trip, OS-enforced unattended network-off
    • Address final-review findings in the menubar shell
    • Buffer run frames for late subscribers + unblock UI on stream close
    • Parent-death via pid poll (not stdin EOF) + serve UI in dev
    • Auth before validation, validate delete provider, single AI_PROVIDERS source
    • Stop Tailwind scanning .next build output
    • Restore notifications dropdown (opens upward), stop direct navigation
    • Block SSRF in generic-api integration tool (validate public URL)
    • Non-fragile spacing around interpolations in founder emails
    • BYOK schedules + chat share one resolver, guard BYOK base URLs
    • Respect configured companion clientId; single-source defaults
    • Include the AI provider list in generated projects so the AI route builds
    • Re-check BYOK provider base URLs for SSRF on every request
    • Reject malformed model-selection keys instead of returning empty parts
    • Report once per run when a coding CLI cannot enforce network-off
    • Set the model picked before the filter changed, not a silent no-op
    • Close a DNS-rebinding SSRF gap in AI integration and BYOK fetches
    • Unpair fully, refuse keyless auth, and never hang on tool approvals
    • Make companion pairing, dispatch, and presence robust under races
    • Let BYOK users save a default and fallback model
    • Restore chat clear/stop controls and fix the device-pairing command overflow
    • Validate knowledge entry paths so ingest cannot write outside the corpus
    • Surface the real AI provider error in chat and stop the dock overflowing
    • Consistent default-model behavior across providers and chat
    • Show one default model instead of two
    • Refresh the chat model picker when providers change
    • OAuth integration callback no longer depends on the session cookie
    • Close an API-key exfiltration path in the example integration tool
    • Match the Nuxt chat to the React chat design and add action approvals
    • Show the correct credit balance in the sidebar
    • Keep chat working when knowledge grounding is unavailable
    • Send the selected chat model so it stops reporting no model selected
    • Never surface internal knowledge source paths in answers, and list built-in schedules too
    • Block provider-key management when bring-your-own-key is disabled
    • Scroll wide chat tables instead of overflowing, and show the last result in desktop schedules
    • Show tool chips for app-MCP tool calls in Codex runs
    • Resolve the web embedding model path when bundled, and stop doubling the model name
    • Bill the organization for scheduled runs in org-billing mode
  15. v1.40.0

    Features

    • Structure-aware knowledge chunking with contextual headers
    • RRF fusion and cosine similarity for hybrid knowledge search
    • Scale-adaptive knowledge map that stays small for large bases
    • Offline local embeddings (WASM) in a worker
    • On-disk knowledge index that scales past the in-memory ceiling
    • Hybrid knowledge retrieval with keyword fallback
    • Incremental, atomic knowledge indexing with user-added knowledge
    • Ground every run in retrieved knowledge across all providers
    • Bundled guide and skill for authoring knowledge
    • Show which knowledge sources grounded each reply
    • Instruct the AI to actively consult knowledge before answering
    • Fail the release build if the packaged embedder is broken; surface semantic-off

    Fixes

    • Re-embed cold-start chunks and self-heal a corrupt vector cache
    • Build the knowledge index on first run and add retrieval debug logging
    • Clean example knowledge title and dedupe the sources chip
    • Ship the native embedding runtime in the packaged app
    • Semantic knowledge search now works in dev and packaged builds
  16. v1.39.1

    Maintenance and dependency updates.

  17. v1.39.0

    Features

    • Add adapter kind, model recency fields, and MCP run seam
    • Add data-driven provider catalog and buildLanguageModel
    • Add generic completion adapter for API providers
    • Add Gemini CLI agentic adapter
    • Add desktop agent tasks and provider enablement
    • Register API-provider + Gemini adapters from the catalog
    • Persist per-task model assignments with legacy migration
    • Resolve per-task model with builder/default fallback
    • Validate task-assignment and run-task IPC payloads
    • Expose task list, assignments, and runTask over IPC
    • Thread MCP servers into the Claude agentic runs
    • Run completion tasks with builder tools and MCP-derived tools
    • Add task + assignment renderer hooks
    • Scope the model picker to connected providers with recommended badges
    • Add the models-per-task section
    • Carry a base-URL override on API-provider connections
    • Provider catalog dialog and kind-aware connection cards
    • Compose the AI Tools page into tasks + providers sections
    • Simplify the connection test to a one-click OK check
    • Open at up to 1920x1080 on first launch; close the provider menu on select
    • Curate the AI provider catalog and let every API provider use a custom base URL
    • Send the right auth header per AI provider (MiniMax Bearer, Kimi coding, Anthropic x-api-key)
    • Use a Claude Pro/Max subscription for Anthropic models by pasting a claude setup-token
    • Describe MiniMax and xAI OAuth sign-in in the provider catalog
    • Store provider OAuth tokens in the OS keychain and clear them on disconnect
    • Sign in to MiniMax with a one-time code from your browser
    • Sign in to xAI Grok in your browser (loopback OAuth)
    • Run and test OAuth and Claude-subscription connections with an auto-refreshed token
    • Sign in to a provider from the connect dialog and show the signed-in status on its card
    • Sign in to Google Gemini with your account (Cloud Code Assist)
    • Sign in to OpenAI Codex with your ChatGPT subscription
    • Make provider OAuth sign-in use the buyer's own client id, not a borrowed one
    • Connect to the GLM coding plan endpoint by default
    • Add a --desktop-ai flag to scaffold AI features
    • Scaffold the AI provider allowlist with all providers enabled
    • Strip the desktop AI layer when --desktop-ai is off
    • Add the Agent and chat-session types
    • Persist chat sessions with a pure compaction helper
    • Add the chat run mode and session IPC
    • Expose chat and sessions on the preload bridge
    • Add the ChatPanel and chat hook
    • Keep the AI agents config valid with chat sessions
    • Run chat with proper role-separated messages
    • Add schedule types and next-run/backoff math
    • Persist schedules and run agents headlessly
    • Schedule background agent runs
    • Expose schedule management and results over IPC
    • Expose in-process tools to agentic CLIs over a local MCP server
    • Let agents delegate to sub-agents with a depth guard
    • Add an audited env-scrub helper for future skill code execution
    • Load SKILL.md skills and inject them into the agent prompt
    • Add a demo screen for the AI chat panel and scheduled agents
    • Add a minimal AI example screen (chat + scheduled agent)
    • Surface newly available options during update and add an automatic mode
    • Mint buyer install ids server-side and pin stable demo ids
    • Rename the AI page to Models and make builder skills/tools easy to add
    • Add an Integrations framework for connecting third-party services
    • Give AI agents a workspace-scoped coding toolset
    • Run subscription CLIs in every mode with integrations
    • Scope AI connections and workspace per project
    • Allow multiple instances of an integration per project
    • Render the AI chat like Claude Code - markdown, thinking, tools
    • Set reasoning effort per task across every provider
    • Auto-compact a chat before it overflows the context window
    • Give AI runs web search and let scheduled workflows act
    • Add a resizable chat sidebar, hidden by default
    • Let users create and run background workflows
    • Define AI agents in a typed folder with markdown prompts
    • Refine the chat and Workflows UI/UX
    • Let Esc interrupt a running chat from anywhere
    • Message avatars, compact feedback, and composer focus
    • Make the right chat dock a tabbed, buyer-extensible side panel
    • TypeScript AI prompts, chat approval toggle, and chat polish
    • App data folder for AI agents (per-OS, configurable)
    • Connect multiple workspace folders per project
    • Every connected integration is available to all agents
    • Add-integration picker on the Integrations screen
    • Builder-curated knowledge base for the AI (agentic, markdown)
    • Rework Workflows into a status-first Schedules screen

    Fixes

    • Curate discovered models - sort newest-first, de-dupe, clean labels
    • Make legacy AI default migration one-shot so deletes stick
    • Show a clean error state in the run output panel
    • Guard agentic task runs without a cwd; UI + docs polish from final review
    • Skip the list-tool-models IPC for an empty tool id (stops console errors)
    • Make connection test one-click + toast, fix spawned-CLI PATH, tighten provider cards
    • Mount the Toaster so connection-test toasts are visible; drop orphaned run-panel i18n keys
    • Surface Claude Code stderr in run errors so failures show the real cause
    • Test toast now leads with the tool's real error, then the sign-in tip
    • Robustly capture the login-shell PATH (sentinel-delimited) so spawned CLIs find node
    • Strip inherited inspector env so debugged sessions can run Bun-based CLIs (Claude Code EADDRINUSE)
    • Pin a model when testing API providers so the connection test actually runs
    • Use the Anthropic SDK auth-token field so Bearer auth omits the API-key header
    • Persist the Claude subscription token when connecting
    • Poll MiniMax at the server-requested interval and cancel sign-in when the window closes
    • Emit OAuth success only after the connection is saved and stop leaking sign-in listeners
    • Show the subscription disclosure before OAuth sign-in for Codex and Gemini
    • Clear stored OAuth tokens when a token refresh permanently fails
    • Use MiniMax's Anthropic-endpoint model names so runs stop 404ing
    • Tidy Anthropic base-URL detection and the connect-dialog secret field
    • Make ChatPanel a true drop-in that needs only an agentId
    • Stop the scheduler from busy-spinning when an agent is mid-run
    • Mock electron in the tasks test so CI doesn't load the real binary
    • Standard cron OR-semantics, base-URL forwarding, CRLF skills, schedule guards
    • Run the agentic CLIs on Windows/Linux and harden the AI runtime
    • Show a loading skeleton until plan/provider state resolves
    • Remember the sidebar collapsed state across restarts
    • Fully strip the desktop AI packages and leftovers when AI is off
    • Evaluate agent schedules in local time and fix cron parsing
    • Detect npm-installed AI CLIs on Windows
    • Repair xAI sign-in and harden OAuth and base-URL checks
    • Align chat runs with scheduled runs and clean up on quit
    • Stop cleared chats re-streaming and example schedules leaking
    • Fully remove desktop AI when disabled and cover the AI-off build
    • Resolve Windows CLI shims case-insensitively
    • Deny apply_patch moves onto a sensitive destination path
    • Let subscription CLIs edit the workspace and gate every tool
    • Keep connected AI models visible across every project
    • Refresh the workspace and integrations when switching projects
    • Auto-scroll the AI chat to the newest message
    • Let Claude Code and Codex compact chat history too
    • Connect MiniMax coding-plan keys without a 404
    • Make Stop reliably interrupt a chat or task run
    • Abort the chat run's own signal on Stop, not a throwaway
    • Stop ends the chat run instantly in the UI
    • Shrink assistant chat bubbles to content like user bubbles
    • Use native overlay scrollbars (no forced gutter)
    • Hover-reveal scrollbars across chat, content, and sidebar
    • Hide hover-reveal scrollbars instantly on leave
    • Align the chat approval toggle and stop tool chips overflowing
    • Prevent a launch crash when the AI feature is disabled
    • Cancel in-flight AI runs when their window closes
    • Re-arm the agent scheduler after a manual run
    • Connect Gemini CLI with a stored API key
    • Correct edit-tool occurrence counting and CRLF detection
  18. v1.38.0

    Features

    • Generic ToolAdapter contract + web-standard models.dev discovery
    • Desktop.agents feature flag for AI tool orchestration
    • AI orchestration foundation - binaries, keychain, store, model cache
    • Claude Code + Codex adapters, mapping, registry
    • AI run session manager with orphan cancellation
    • AI orchestration IPC handlers + preload bridge
    • Renderer AI data layer (run reducer + hooks)
    • AI tools connection UI + renderer wiring
    • Default the AI tools (agents) feature on
    • OpenCode adapter (CLI-driven), the third reference tool
    • Add a default tool and model picker to AI Tools

    Fixes

    • Full-mode Claude permissions + scope orphan-cancel to real reloads
    • Org-switcher focus ring + credits as currency
    • Read user-scope credits from session; hide org-switcher chrome when collapsed
    • Cache AI tool detection so re-visiting the page stays consistent
    • Harden OpenCode arg passing against flag smuggling
  19. v1.37.0

    Features

    • Add pure token-to-credit usage calculator
    • Add AiConfig flag and AI provider env keys
    • Add multi-model registry, credential resolver, and local-runtime backend seam
    • Add credit-metered streaming AI chat route
    • Scaffold config.ai and AI provider env keys in generated projects

    Fixes

    • Map BillingError in AI route; clamp usageToCredits to non-negative
    • Drain AI stream server-side so the credit debit survives a client disconnect
    • Apply updates via an explicit Restart & install button
    • Move the default docs port to 3040 to clear the email preview
    • Make llms.txt and per-page Markdown links absolute
  20. v1.36.0

    Features

    • Add desktopAllowed entitlement
    • Gate the desktop app to plans that allow it
    • Surface plan entitlements on /versions
    • Add desktop release-trigger option and persist it
    • Support manual-only desktop releases
    • Gate the desktop prompt and ask the release trigger
    • Receive plan entitlements at init and gate desktop

    Fixes

    • Add desktopAllowed to remaining KeyEntitlements test fixtures
    • Add desktopAutoRelease to remaining test fixtures

    Performance

    • Cap the release build at 15 minutes