Skip to content
v0.6.0GPL-3.0-only

High-integrity multi-agent orchestration bridge connecting orchestrators with local CLI coding agents (OpenAI Codex, Claude Code, Google Antigravity agy) via MCP.

Changelog

All notable changes to CoAgent8 are documented in this file. It is generated from the Conventional Commits history by git-cliff (npm run changelog); do not edit it by hand. Each entry starts with the commit that introduced it.

The format is based on Keep a Changelog 1.1.0, and this project adheres to Semantic Versioning 2.0.0. Release procedure: .agents/rules/02-git-workflow.md.

[Unreleased]

Fixed

  • d1d90a7 locks: Report a budget-bounded lock wait as budget expiry (#5)
  • 32fdb01 docs: Render the mermaid diagrams and name the site CoAgent8 (#6)

[0.6.0] - 2026-10-11 (v0.6.0)

Entries link the commits of the 0.6.0 pull request (prepared as 1.0.0-beta.2), which was squash-merged into develop as one commit (REPO-002). The pull request page keeps them.

Breaking

  • d015035 execution: Layered owned-process termination with protocol interrupts
  • 0edcdfa Require Node.js 24 and test on Node 24 and 26
  • 77bef3e mcp: Remove the compact tool profile
  • 7d317f1 errors: Typed ToolError codes; unknown failures are PROCESS_ERROR
  • a5c2cc7 Stop tracking dist/ and check the packed bundle against a fresh build
  • 834dd87 sessions: Scope MCP resources and session list to the workspace
  • 7c0de4f policy: Ask the user for top-tier models through MCP elicitation
  • 0a86007 result: Return execution results as markdown only
  • 3556c4c models: Take models and defaults from the CLIs and config.json, never from the source
  • cd7d78f consent: Ask the user by a model's approximate price, not by its name
  • b79f744 vscode: One setup list, CLI executable choice and complete uninstall
  • b2e483c vscode: Share ~/.coagent8/config.json with the CLI and keep it on uninstall
  • 0fe63f1 doctor: Default to a cached model view and move health to a scope

Added

  • 94acde8 routing: Choose another CLI than the client when auto is ambiguous
  • c4da22c doctor: Summary by default, full detail, backend filter and quota switch
  • 7ac17f8 mcp: Resolve the workspace from client roots and report it
  • 4b9307b tools: Say how to call CoAgent8 right on the first attempt
  • 047d232 branding: Support dark themes and record MCP observations
  • d2d29c7 setup: Separate CLI readiness, host registration and cleanup
  • 42abbc8 execution: Resolve agy from the Antigravity extension's copy
  • 366ad0a vscode: Offer vendor extensions and await CLIs during onboarding
  • 74408da vscode: Open configuration and persist welcome dismissal
  • ac43699 vscode: Reset onboarding state through editor storage
  • 4bee717 vscode: Expose backend, model and approval settings
  • 694fbf2 vscode: Remove extension registrations on uninstall
  • 42f249d selection: List model prices in doctor and enforce output price limits
  • 663e404 claude: Read Claude Code's model catalog from stream-json initialize
  • acd7213 routing: Route a named model to a backend that lists it
  • dbc75c0 codex: Read account rate limits from app-server
  • 38e45c0 prices: Keep per-model prices for offered models and refresh daily
  • 3f4ebaf mcp: Frame every answer in a markdown code block
  • bf34e1f mcp: Present results raw for Codex and in plaintext frames elsewhere
  • 6c74973 execution: Implement phase timing and instrumentation (EXEC-001-T02)
  • 865e4b0 config: Supply effective configuration with provenance (EXEC-001-T03)
  • 64d717d execution: Reuse observations within preparation (EXEC-001-T05)
  • 9d7aed1 execution: Guarantee finalization after resource acquisition (EXEC-001-T06)
  • 1b1a246 execution: Define complete-call budget contract (EXEC-001-T07)
  • 44b0002 backends: Define shared read and deadline context (EXEC-001-T08a)
  • dba2ab6 backends: Implement shared-read waiter ownership (EXEC-001-T08b)
  • d9125f3 codex: Bound probe, catalog, and quota reads (EXEC-001-T08c)
  • ff18c49 claude: Bound probe, catalog, and quota reads (EXEC-001-T08d)
  • 86249ae agy: Bound probe, catalog, quota, and tool reads (EXEC-001-T08e)
  • f496263 prices: Bound price fetches and close shared-read races (EXEC-001-T08f)
  • d429590 review: Bound review Git work and process lifecycle (EXEC-001-T09a)
  • c8f5e50 storage: Cancel lock waiters safely and preserve queue progress (EXEC-001-T09b)
  • ec6819d sessions: Stop session acquisition after expiry (EXEC-001-T09c)
  • ef35b14 consent: Cancel pending approval and bind to deadline (EXEC-001-T10a)
  • 7a4fbd5 consent: Revalidate policy and price evidence before acquisition (EXEC-001-T10b)
  • 4dcd660 consent: Preserve valid approvals across persistence failures (EXEC-001-T10c)
  • 38d12ad execution: Activate monotonic budget for consult and review (EXEC-001-T11a)
  • 9200c18 setup: Install client skills with each registration (SKILLS-001)
  • 963803d diagnostics: Apply bounds and cancellation to doctor (EXEC-001-T11b)
  • 527f765 execution: Expose accurate timing and phase accounting (EXEC-001-T11c)
  • 2115b39 review: Say when another review cannot change the verdict (AX-007a)
  • 900c530 mcp: Label the continuation handle in the result footer (AX-007b)
  • 9ddc3d1 review: Answer an unchanged repeat review without a model turn (AX-007c)
  • 2cc0b59 skills: Manage skill packages per client from VS Code and the CLI
  • bfe1576 vscode: Manage coding CLIs per client and leave extension removal to VS Code
  • edf4b83 governance: Allow, ask and deny model rules
  • 1f36525 vscode: List CoAgent8 with the installed MCP servers
  • d49cbf9 vscode: Manage model approvals from one menu

Changed

  • 1d2de9b src: Group backend files per CLI and split shared modules
  • 7451918 src: Place type definitions next to the modules that own them
  • 647c89b src: Import symbols from the modules that define them
  • 348d316 src: Delete dead code found by the audit
  • 4564685 src: Drop StreamReducer line framing and test-only collector API
  • ac80f9b src: Stop exporting declarations used only in their own module
  • dc255cb build: Bundle the MCP server with tsdown and ship license notices separately
  • 12622bb mcp: One-sentence server instructions and compact tool definitions
  • fc60fde result: Compact structured content, one-line footer and actionable consent errors
  • 665e5dd prompts: Shorter review and consult prompts with a server-filled snapshot
  • 4691536 result: Shorter footer with each line as its own quoted paragraph
  • 2dbedc7 backends: Reuse probes across requests and read agy quota only in doctor
  • 86ee98f gemini: Keep only the runCommand deadline
  • 50992f1 startup: Inject background maintenance instead of environment test hooks
  • 702d52e tools: Map the deprecated tools and run actions through one alias table
  • 5eaf407 backends: One structured-error extractor parameterized per backend
  • 20dc0b4 progress: Redact each progress message once, where it leaves for the client
  • 2255f1a probes: Share concurrent probe, catalog and model reads
  • 3c2344f modules: Extract contracts, storage, workspace and runtime
  • cc6e53d mcp: Separate execution from MCP presentation (S2)
  • 5660c5d models: Separate model policy from provider discovery (S3)
  • fc39a44 sessions: Split history by responsibility and extract credential boundaries (S4)
  • 5f8c210 layout: Finish consumers, mirror test layout, and retire internal shims (S5)
  • 9f6ce57 boundaries: Enforce automated dependency boundaries and cycle detection (S6)
  • 403557a execution: Establish reproducible baseline and call map (EXEC-001-T01)
  • 217f443 execution: Extract cohesive task preparation (EXEC-001-T04)

Fixed

  • ddc3a4e execution: Enforce process identity and safe teardown on Windows
  • e186711 execution: Optimize process polling and align consumer package verification
  • 3153f64 gemini: Give agy a 2 s SIGTERM grace on POSIX
  • 033d359 redaction: Split credential format from diagnostic redaction
  • a2bff80 build: Order license notices independently of the build locale
  • 9123f62 history: Append-only streaming deltas with credential tail buffering
  • 249f91a controller: Isolate CLI execution from archive and session bookkeeping
  • 485adaa history: Address Opus review findings on tail buffering, capacity locking, and cooldowns
  • 5854021 history: Address lock ordering, AWS key tail buffering, and capacity accounting
  • 24caab5 history: Restore JWT and Slack prefix checks and decouple append from capacity lock
  • 4c45d1e history: Safely catch rollback lock errors to guarantee original io error propagation
  • 6a65538 backends: Report the model each backend resolved
  • 62d0f3a gemini: Keep the answer when the sandbox denies an action
  • 0df32e4 setup: Raise the Codex tool timeout for CoAgent8 to 30 minutes
  • 6837fec routing: Record one cooldown per rate-limited turn with the parsed reset
  • b7c37f0 codex: Read the default model from config.toml with a TOML parser
  • 66df69d backends: Reject option-like model identifiers before they reach a CLI
  • 6b419af gemini: Ignore unknown agy event types with a warning
  • 4afc7f2 locks: Publish leases atomically, renew them and reclaim stale ones by age
  • 5da124e backends: Classify CLI errors by anchored phrases and parse ms and decimal resets
  • a9ccc36 gemini: Treat a usage window without remaining_fraction as unmeasured
  • cd2e6c5 errors: Remove dead catches and report the failures that were ignored
  • 344ed39 config: Report an unusable configuration in doctor and refuse execution
  • 3efaa52 history: Replace empty catches with explicit absence and cache handling
  • ae86532 mcp: Stop declaring resource list notifications that are never sent
  • 92206d9 process: Report POSIX group signal failures and skip the grace for an exited group
  • d851b14 result: Keep answer lines that quote npm notices or update banners
  • 7f36f5b session: Report cancelled only when a running turn was stopped or released
  • 3024372 session: Show workspace paths under the home directory as ~ in session lists
  • 6eef2f4 errors: Type rejected models and drop the invented answer of a failed run
  • 20fc305 models: Check model and effort against the catalog the CLI reports
  • d96dae7 codex: Return the final answer without the turn's commentary
  • a87ede3 consult: Pass a plain question on as asked
  • 34bad59 result: Name the requested model in the footer of a refused call
  • 2308f03 consent: Accept only an explicit approve: true as the user's consent
  • 031715b session: Keep the session's reasoning effort on a continuation
  • f83b73f gemini: Disable agy's auto-updater, whose console window takes the focus
  • 1bf9ae0 consent: Report a cancelled approval request as unanswered, not declined
  • 52c1da0 vscode: Clarify CLI names and embed private preview logo
  • 8393cc3 vscode: Use the new okidev publisher
  • 6b6ec27 vscode: Replace broken Details logo with compact links
  • 6569fe2 vscode: Discover bundled Codex and offer CLI installation
  • 1665b59 setup: Preserve CLI evidence and verify owned cleanup
  • caf580e setup: Read CLI help from stderr as well as stdout
  • 94f90f8 vscode: Keep the CLI picker open while setup checks run
  • 1547c92 setup: Detect Antigravity CLI sign-in with its silent check
  • 91459c5 setup: Report unregistered CLIs clearly and log one line per check
  • edee627 adapters: Disable and verify inherited Codex MCP servers per thread
  • bbbfc51 adapters: Refuse recursive turns and name agy's inherited tools
  • f2b86e5 review: Bind verdicts to complete current workspace input
  • 813d5f3 vscode: Bind configuration and refresh MCP definitions
  • 1ab472f vscode: Keep extension data in storage removed on uninstall
  • 7a3213d routing: Keep auto selection working without a writable quota cache
  • 1bc530d codex: Keep a complete final answer untruncated after dropped commentary
  • 16b4e48 history: Reserve snapshot bytes before writing them
  • 27e3914 history: Cut fragments at UTF-8 character boundaries
  • 8d8f4f2 prices: Let shutdown wait for a background price read
  • e1b0db1 backends: Stop reporting a complete answer as truncated
  • 436f1e3 review: Show the reviewer answer verbatim and report every block cause
  • a109cc2 agy: Report a turn ended by a sandbox denial as a failure
  • 132cb3d setup: Update owned Claude and agy registrations to the new runtime
  • c5e040f boundaries: Reject SDK and indirect transport dependencies
  • dc87cdd tests: Bound concurrency barrier and ensure guaranteed task settlement
  • 657be85 tests: Bound child readiness and teardown in lock contention test (EXEC-001-T09b)
  • 32acb59 diagnostics: Preserve prefilled issue links in chat clients
  • d8645d0 quota: Keep other providers when the cache cannot be read (AUDIT-001-A01-A03)
  • 7666cd4 config: Serialize saveConfig under the configuration lease (AUDIT-001-A04-A05)
  • dfd0c37 config: Write configuration through the shared atomic writer (AUDIT-001-A06-A07)
  • 71ae03d setup: Recognize own registrations when the ownership record is lost
  • f8c2733 vscode: End the uninstall with Restart Extensions instead of quitting VS Code
  • 2c1ff4f setup: Compare CLI sources by their real path
  • 79cc5f6 vscode: Offer vendor extensions over standalone CLIs and remove standalone installs completely
  • 78b1bd5 setup: Offer installation when a selected vendor extension copy is missing
  • f10166e vscode: End the uninstall with Reload Window to apply extension removals
  • 80d0e61 vscode: Keep an edited profile entry the user's when its runtime path is unchanged
  • b33acd4 review: Let reviewers without file tools read files with read-only commands
  • 527ab7d vscode: Record a pending digest so a rewrite never takes a racing user edit
  • 6af6c80 governance: Apply model rules to the effort variant a turn runs
  • ba442a5 review: Stop blocking a read-only review on checks it cannot run
  • 2cd1071 vscode: Add no profile entry beside a workspace CoAgent8 registration
  • 30e7737 vscode: Change the rule entry that decides a model in Manage Model Approvals
  • 5879925 vscode: Uninstall removes only its own installation's profile entries
  • 2e9dab7 vscode: Stop windows of one profile from rewriting the shared entry in turn
  • 1ff3f4e models: Let a price limit choose any permitted effort variant
  • 6269fb4 vscode: Synchronize and remove profile entries under one lease
  • ff825e2 vscode: Keep the uninstall hook within its time limit while setup runs
  • ee580cb vscode: Check for outdated CLI chats in multi-root windows
  • 272193b vscode: Open Manage Model Approvals in multi-root windows
  • f89f5b1 vscode: Finish CLI extension removals in multi-root windows
  • 9af3c9d vscode: Record a first profile entry as pending before writing it
  • 19387b3 vscode: Keep cleaning other profiles when one cannot be read on uninstall
  • 9014aa1 redaction: Redact the canonical path of the home directory
  • d8b4237 vscode: Recognize the installation by its canonical path on uninstall
  • d74c7c3 review: Name Git's reason when it refuses the repository
  • 5128c31 vscode: Open the extension page for Uninstall VS Code Extension