oktawianwybieralski/coagent8
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
d1d90a7locks: Report a budget-bounded lock wait as budget expiry (#5)32fdb01docs: 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
d015035execution: Layered owned-process termination with protocol interrupts0edcdfaRequire Node.js 24 and test on Node 24 and 2677bef3emcp: Remove the compact tool profile7d317f1errors: Typed ToolError codes; unknown failures are PROCESS_ERRORa5c2cc7Stop tracking dist/ and check the packed bundle against a fresh build834dd87sessions: Scope MCP resources and session list to the workspace7c0de4fpolicy: Ask the user for top-tier models through MCP elicitation0a86007result: Return execution results as markdown only3556c4cmodels: Take models and defaults from the CLIs and config.json, never from the sourcecd7d78fconsent: Ask the user by a model's approximate price, not by its nameb79f744vscode: One setup list, CLI executable choice and complete uninstallb2e483cvscode: Share ~/.coagent8/config.json with the CLI and keep it on uninstall0fe63f1doctor: Default to a cached model view and move health to a scope
Added
94acde8routing: Choose another CLI than the client when auto is ambiguousc4da22cdoctor: Summary by default, full detail, backend filter and quota switch7ac17f8mcp: Resolve the workspace from client roots and report it4b9307btools: Say how to call CoAgent8 right on the first attempt047d232branding: Support dark themes and record MCP observationsd2d29c7setup: Separate CLI readiness, host registration and cleanup42abbc8execution: Resolve agy from the Antigravity extension's copy366ad0avscode: Offer vendor extensions and await CLIs during onboarding74408davscode: Open configuration and persist welcome dismissalac43699vscode: Reset onboarding state through editor storage4bee717vscode: Expose backend, model and approval settings694fbf2vscode: Remove extension registrations on uninstall42f249dselection: List model prices in doctor and enforce output price limits663e404claude: Read Claude Code's model catalog from stream-json initializeacd7213routing: Route a named model to a backend that lists itdbc75c0codex: Read account rate limits from app-server38e45c0prices: Keep per-model prices for offered models and refresh daily3f4ebafmcp: Frame every answer in a markdown code blockbf34e1fmcp: Present results raw for Codex and in plaintext frames elsewhere6c74973execution: Implement phase timing and instrumentation (EXEC-001-T02)865e4b0config: Supply effective configuration with provenance (EXEC-001-T03)64d717dexecution: Reuse observations within preparation (EXEC-001-T05)9d7aed1execution: Guarantee finalization after resource acquisition (EXEC-001-T06)1b1a246execution: Define complete-call budget contract (EXEC-001-T07)44b0002backends: Define shared read and deadline context (EXEC-001-T08a)dba2ab6backends: Implement shared-read waiter ownership (EXEC-001-T08b)d9125f3codex: Bound probe, catalog, and quota reads (EXEC-001-T08c)ff18c49claude: Bound probe, catalog, and quota reads (EXEC-001-T08d)86249aeagy: Bound probe, catalog, quota, and tool reads (EXEC-001-T08e)f496263prices: Bound price fetches and close shared-read races (EXEC-001-T08f)d429590review: Bound review Git work and process lifecycle (EXEC-001-T09a)c8f5e50storage: Cancel lock waiters safely and preserve queue progress (EXEC-001-T09b)ec6819dsessions: Stop session acquisition after expiry (EXEC-001-T09c)ef35b14consent: Cancel pending approval and bind to deadline (EXEC-001-T10a)7a4fbd5consent: Revalidate policy and price evidence before acquisition (EXEC-001-T10b)4dcd660consent: Preserve valid approvals across persistence failures (EXEC-001-T10c)38d12adexecution: Activate monotonic budget for consult and review (EXEC-001-T11a)9200c18setup: Install client skills with each registration (SKILLS-001)963803ddiagnostics: Apply bounds and cancellation to doctor (EXEC-001-T11b)527f765execution: Expose accurate timing and phase accounting (EXEC-001-T11c)2115b39review: Say when another review cannot change the verdict (AX-007a)900c530mcp: Label the continuation handle in the result footer (AX-007b)9ddc3d1review: Answer an unchanged repeat review without a model turn (AX-007c)2cc0b59skills: Manage skill packages per client from VS Code and the CLIbfe1576vscode: Manage coding CLIs per client and leave extension removal to VS Codeedf4b83governance: Allow, ask and deny model rules1f36525vscode: List CoAgent8 with the installed MCP serversd49cbf9vscode: Manage model approvals from one menu
Changed
1d2de9bsrc: Group backend files per CLI and split shared modules7451918src: Place type definitions next to the modules that own them647c89bsrc: Import symbols from the modules that define them348d316src: Delete dead code found by the audit4564685src: Drop StreamReducer line framing and test-only collector APIac80f9bsrc: Stop exporting declarations used only in their own moduledc255cbbuild: Bundle the MCP server with tsdown and ship license notices separately12622bbmcp: One-sentence server instructions and compact tool definitionsfc60fderesult: Compact structured content, one-line footer and actionable consent errors665e5ddprompts: Shorter review and consult prompts with a server-filled snapshot4691536result: Shorter footer with each line as its own quoted paragraph2dbedc7backends: Reuse probes across requests and read agy quota only in doctor86ee98fgemini: Keep only the runCommand deadline50992f1startup: Inject background maintenance instead of environment test hooks702d52etools: Map the deprecated tools and run actions through one alias table5eaf407backends: One structured-error extractor parameterized per backend20dc0b4progress: Redact each progress message once, where it leaves for the client2255f1aprobes: Share concurrent probe, catalog and model reads3c2344fmodules: Extract contracts, storage, workspace and runtimecc6e53dmcp: Separate execution from MCP presentation (S2)5660c5dmodels: Separate model policy from provider discovery (S3)fc39a44sessions: Split history by responsibility and extract credential boundaries (S4)5f8c210layout: Finish consumers, mirror test layout, and retire internal shims (S5)9f6ce57boundaries: Enforce automated dependency boundaries and cycle detection (S6)403557aexecution: Establish reproducible baseline and call map (EXEC-001-T01)217f443execution: Extract cohesive task preparation (EXEC-001-T04)
Fixed
ddc3a4eexecution: Enforce process identity and safe teardown on Windowse186711execution: Optimize process polling and align consumer package verification3153f64gemini: Give agy a 2 s SIGTERM grace on POSIX033d359redaction: Split credential format from diagnostic redactiona2bff80build: Order license notices independently of the build locale9123f62history: Append-only streaming deltas with credential tail buffering249f91acontroller: Isolate CLI execution from archive and session bookkeeping485adaahistory: Address Opus review findings on tail buffering, capacity locking, and cooldowns5854021history: Address lock ordering, AWS key tail buffering, and capacity accounting24caab5history: Restore JWT and Slack prefix checks and decouple append from capacity lock4c45d1ehistory: Safely catch rollback lock errors to guarantee original io error propagation6a65538backends: Report the model each backend resolved62d0f3agemini: Keep the answer when the sandbox denies an action0df32e4setup: Raise the Codex tool timeout for CoAgent8 to 30 minutes6837fecrouting: Record one cooldown per rate-limited turn with the parsed resetb7c37f0codex: Read the default model from config.toml with a TOML parser66df69dbackends: Reject option-like model identifiers before they reach a CLI6b419afgemini: Ignore unknown agy event types with a warning4afc7f2locks: Publish leases atomically, renew them and reclaim stale ones by age5da124ebackends: Classify CLI errors by anchored phrases and parse ms and decimal resetsa9ccc36gemini: Treat a usage window without remaining_fraction as unmeasuredcd2e6c5errors: Remove dead catches and report the failures that were ignored344ed39config: Report an unusable configuration in doctor and refuse execution3efaa52history: Replace empty catches with explicit absence and cache handlingae86532mcp: Stop declaring resource list notifications that are never sent92206d9process: Report POSIX group signal failures and skip the grace for an exited groupd851b14result: Keep answer lines that quote npm notices or update banners7f36f5bsession: Report cancelled only when a running turn was stopped or released3024372session: Show workspace paths under the home directory as ~ in session lists6eef2f4errors: Type rejected models and drop the invented answer of a failed run20fc305models: Check model and effort against the catalog the CLI reportsd96dae7codex: Return the final answer without the turn's commentarya87ede3consult: Pass a plain question on as asked34bad59result: Name the requested model in the footer of a refused call2308f03consent: Accept only an explicit approve: true as the user's consent031715bsession: Keep the session's reasoning effort on a continuationf83b73fgemini: Disable agy's auto-updater, whose console window takes the focus1bf9ae0consent: Report a cancelled approval request as unanswered, not declined52c1da0vscode: Clarify CLI names and embed private preview logo8393cc3vscode: Use the new okidev publisher6b6ec27vscode: Replace broken Details logo with compact links6569fe2vscode: Discover bundled Codex and offer CLI installation1665b59setup: Preserve CLI evidence and verify owned cleanupcaf580esetup: Read CLI help from stderr as well as stdout94f90f8vscode: Keep the CLI picker open while setup checks run1547c92setup: Detect Antigravity CLI sign-in with its silent check91459c5setup: Report unregistered CLIs clearly and log one line per checkedee627adapters: Disable and verify inherited Codex MCP servers per threadbbbfc51adapters: Refuse recursive turns and name agy's inherited toolsf2b86e5review: Bind verdicts to complete current workspace input813d5f3vscode: Bind configuration and refresh MCP definitions1ab472fvscode: Keep extension data in storage removed on uninstall7a3213drouting: Keep auto selection working without a writable quota cache1bc530dcodex: Keep a complete final answer untruncated after dropped commentary16b4e48history: Reserve snapshot bytes before writing them27e3914history: Cut fragments at UTF-8 character boundaries8d8f4f2prices: Let shutdown wait for a background price reade1b0db1backends: Stop reporting a complete answer as truncated436f1e3review: Show the reviewer answer verbatim and report every block causea109cc2agy: Report a turn ended by a sandbox denial as a failure132cb3dsetup: Update owned Claude and agy registrations to the new runtimec5e040fboundaries: Reject SDK and indirect transport dependenciesdc87cddtests: Bound concurrency barrier and ensure guaranteed task settlement657be85tests: Bound child readiness and teardown in lock contention test (EXEC-001-T09b)32acb59diagnostics: Preserve prefilled issue links in chat clientsd8645d0quota: Keep other providers when the cache cannot be read (AUDIT-001-A01-A03)7666cd4config: Serialize saveConfig under the configuration lease (AUDIT-001-A04-A05)dfd0c37config: Write configuration through the shared atomic writer (AUDIT-001-A06-A07)71ae03dsetup: Recognize own registrations when the ownership record is lostf8c2733vscode: End the uninstall with Restart Extensions instead of quitting VS Code2c1ff4fsetup: Compare CLI sources by their real path79cc5f6vscode: Offer vendor extensions over standalone CLIs and remove standalone installs completely78b1bd5setup: Offer installation when a selected vendor extension copy is missingf10166evscode: End the uninstall with Reload Window to apply extension removals80d0e61vscode: Keep an edited profile entry the user's when its runtime path is unchangedb33acd4review: Let reviewers without file tools read files with read-only commands527ab7dvscode: Record a pending digest so a rewrite never takes a racing user edit6af6c80governance: Apply model rules to the effort variant a turn runsba442a5review: Stop blocking a read-only review on checks it cannot run2cd1071vscode: Add no profile entry beside a workspace CoAgent8 registration30e7737vscode: Change the rule entry that decides a model in Manage Model Approvals5879925vscode: Uninstall removes only its own installation's profile entries2e9dab7vscode: Stop windows of one profile from rewriting the shared entry in turn1ff3f4emodels: Let a price limit choose any permitted effort variant6269fb4vscode: Synchronize and remove profile entries under one leaseff825e2vscode: Keep the uninstall hook within its time limit while setup runsee580cbvscode: Check for outdated CLI chats in multi-root windows272193bvscode: Open Manage Model Approvals in multi-root windowsf89f5b1vscode: Finish CLI extension removals in multi-root windows9af3c9dvscode: Record a first profile entry as pending before writing it19387b3vscode: Keep cleaning other profiles when one cannot be read on uninstall9014aa1redaction: Redact the canonical path of the home directoryd8b4237vscode: Recognize the installation by its canonical path on uninstalld74c7c3review: Name Git's reason when it refuses the repository5128c31vscode: Open the extension page for Uninstall VS Code Extension