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.
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.
d015035 execution: Layered owned-process termination with protocol interrupts0edcdfa Require Node.js 24 and test on Node 24 and 2677bef3e mcp: Remove the compact tool profile7d317f1 errors: Typed ToolError codes; unknown failures are PROCESS_ERRORa5c2cc7 Stop tracking dist/ and check the packed bundle against a fresh build834dd87 sessions: Scope MCP resources and session list to the workspace7c0de4f policy: Ask the user for top-tier models through MCP elicitation0a86007 result: Return execution results as markdown only3556c4c models: Take models and defaults from the CLIs and config.json, never from the sourcecd7d78f consent: Ask the user by a model's approximate price, not by its nameb79f744 vscode: One setup list, CLI executable choice and complete uninstallb2e483c vscode: Share ~/.coagent8/config.json with the CLI and keep it on uninstall0fe63f1 doctor: Default to a cached model view and move health to a scope94acde8 routing: Choose another CLI than the client when auto is ambiguousc4da22c doctor: Summary by default, full detail, backend filter and quota switch7ac17f8 mcp: Resolve the workspace from client roots and report it4b9307b tools: Say how to call CoAgent8 right on the first attempt047d232 branding: Support dark themes and record MCP observationsd2d29c7 setup: Separate CLI readiness, host registration and cleanup42abbc8 execution: Resolve agy from the Antigravity extension's copy366ad0a vscode: Offer vendor extensions and await CLIs during onboarding74408da vscode: Open configuration and persist welcome dismissalac43699 vscode: Reset onboarding state through editor storage4bee717 vscode: Expose backend, model and approval settings694fbf2 vscode: Remove extension registrations on uninstall42f249d selection: List model prices in doctor and enforce output price limits663e404 claude: Read Claude Code's model catalog from stream-json initializeacd7213 routing: Route a named model to a backend that lists itdbc75c0 codex: Read account rate limits from app-server38e45c0 prices: Keep per-model prices for offered models and refresh daily3f4ebaf mcp: Frame every answer in a markdown code blockbf34e1f mcp: Present results raw for Codex and in plaintext frames elsewhere6c74973 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 CLIbfe1576 vscode: Manage coding CLIs per client and leave extension removal to VS Codeedf4b83 governance: Allow, ask and deny model rules1f36525 vscode: List CoAgent8 with the installed MCP serversd49cbf9 vscode: Manage model approvals from one menu1d2de9b src: Group backend files per CLI and split shared modules7451918 src: Place type definitions next to the modules that own them647c89b src: Import symbols from the modules that define them348d316 src: Delete dead code found by the audit4564685 src: Drop StreamReducer line framing and test-only collector APIac80f9b src: Stop exporting declarations used only in their own moduledc255cb build: Bundle the MCP server with tsdown and ship license notices separately12622bb mcp: One-sentence server instructions and compact tool definitionsfc60fde result: Compact structured content, one-line footer and actionable consent errors665e5dd prompts: Shorter review and consult prompts with a server-filled snapshot4691536 result: Shorter footer with each line as its own quoted paragraph2dbedc7 backends: Reuse probes across requests and read agy quota only in doctor86ee98f gemini: Keep only the runCommand deadline50992f1 startup: Inject background maintenance instead of environment test hooks702d52e tools: Map the deprecated tools and run actions through one alias table5eaf407 backends: One structured-error extractor parameterized per backend20dc0b4 progress: Redact each progress message once, where it leaves for the client2255f1a probes: Share concurrent probe, catalog and model reads3c2344f modules: Extract contracts, storage, workspace and runtimecc6e53d 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)ddc3a4e execution: Enforce process identity and safe teardown on Windowse186711 execution: Optimize process polling and align consumer package verification3153f64 gemini: Give agy a 2 s SIGTERM grace on POSIX033d359 redaction: Split credential format from diagnostic redactiona2bff80 build: Order license notices independently of the build locale9123f62 history: Append-only streaming deltas with credential tail buffering249f91a controller: Isolate CLI execution from archive and session bookkeeping485adaa history: Address Opus review findings on tail buffering, capacity locking, and cooldowns5854021 history: Address lock ordering, AWS key tail buffering, and capacity accounting24caab5 history: Restore JWT and Slack prefix checks and decouple append from capacity lock4c45d1e history: Safely catch rollback lock errors to guarantee original io error propagation6a65538 backends: Report the model each backend resolved62d0f3a gemini: Keep the answer when the sandbox denies an action0df32e4 setup: Raise the Codex tool timeout for CoAgent8 to 30 minutes6837fec routing: Record one cooldown per rate-limited turn with the parsed resetb7c37f0 codex: Read the default model from config.toml with a TOML parser66df69d backends: Reject option-like model identifiers before they reach a CLI6b419af gemini: Ignore unknown agy event types with a warning4afc7f2 locks: Publish leases atomically, renew them and reclaim stale ones by age5da124e backends: Classify CLI errors by anchored phrases and parse ms and decimal resetsa9ccc36 gemini: Treat a usage window without remaining_fraction as unmeasuredcd2e6c5 errors: Remove dead catches and report the failures that were ignored344ed39 config: Report an unusable configuration in doctor and refuse execution3efaa52 history: Replace empty catches with explicit absence and cache handlingae86532 mcp: Stop declaring resource list notifications that are never sent92206d9 process: Report POSIX group signal failures and skip the grace for an exited groupd851b14 result: Keep answer lines that quote npm notices or update banners7f36f5b session: Report cancelled only when a running turn was stopped or released3024372 session: Show workspace paths under the home directory as ~ in session lists6eef2f4 errors: Type rejected models and drop the invented answer of a failed run20fc305 models: Check model and effort against the catalog the CLI reportsd96dae7 codex: Return the final answer without the turn's commentarya87ede3 consult: Pass a plain question on as asked34bad59 result: Name the requested model in the footer of a refused call2308f03 consent: Accept only an explicit approve: true as the user's consent031715b session: Keep the session's reasoning effort on a continuationf83b73f gemini: Disable agy's auto-updater, whose console window takes the focus1bf9ae0 consent: Report a cancelled approval request as unanswered, not declined52c1da0 vscode: Clarify CLI names and embed private preview logo8393cc3 vscode: Use the new okidev publisher6b6ec27 vscode: Replace broken Details logo with compact links6569fe2 vscode: Discover bundled Codex and offer CLI installation1665b59 setup: Preserve CLI evidence and verify owned cleanupcaf580e setup: Read CLI help from stderr as well as stdout94f90f8 vscode: Keep the CLI picker open while setup checks run1547c92 setup: Detect Antigravity CLI sign-in with its silent check91459c5 setup: Report unregistered CLIs clearly and log one line per checkedee627 adapters: Disable and verify inherited Codex MCP servers per threadbbbfc51 adapters: Refuse recursive turns and name agy's inherited toolsf2b86e5 review: Bind verdicts to complete current workspace input813d5f3 vscode: Bind configuration and refresh MCP definitions1ab472f vscode: Keep extension data in storage removed on uninstall7a3213d routing: Keep auto selection working without a writable quota cache1bc530d codex: Keep a complete final answer untruncated after dropped commentary16b4e48 history: Reserve snapshot bytes before writing them27e3914 history: Cut fragments at UTF-8 character boundaries8d8f4f2 prices: Let shutdown wait for a background price reade1b0db1 backends: Stop reporting a complete answer as truncated436f1e3 review: Show the reviewer answer verbatim and report every block causea109cc2 agy: Report a turn ended by a sandbox denial as a failure132cb3d setup: Update owned Claude and agy registrations to the new runtimec5e040f boundaries: Reject SDK and indirect transport dependenciesdc87cdd tests: Bound concurrency barrier and ensure guaranteed task settlement657be85 tests: Bound child readiness and teardown in lock contention test (EXEC-001-T09b)32acb59 diagnostics: Preserve prefilled issue links in chat clientsd8645d0 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 lostf8c2733 vscode: End the uninstall with Restart Extensions instead of quitting VS Code2c1ff4f setup: Compare CLI sources by their real path79cc5f6 vscode: Offer vendor extensions over standalone CLIs and remove standalone installs completely78b1bd5 setup: Offer installation when a selected vendor extension copy is missingf10166e vscode: End the uninstall with Reload Window to apply extension removals80d0e61 vscode: Keep an edited profile entry the user's when its runtime path is unchangedb33acd4 review: Let reviewers without file tools read files with read-only commands527ab7d vscode: Record a pending digest so a rewrite never takes a racing user edit6af6c80 governance: Apply model rules to the effort variant a turn runsba442a5 review: Stop blocking a read-only review on checks it cannot run2cd1071 vscode: Add no profile entry beside a workspace CoAgent8 registration30e7737 vscode: Change the rule entry that decides a model in Manage Model Approvals5879925 vscode: Uninstall removes only its own installation's profile entries2e9dab7 vscode: Stop windows of one profile from rewriting the shared entry in turn1ff3f4e models: Let a price limit choose any permitted effort variant6269fb4 vscode: Synchronize and remove profile entries under one leaseff825e2 vscode: Keep the uninstall hook within its time limit while setup runsee580cb vscode: Check for outdated CLI chats in multi-root windows272193b vscode: Open Manage Model Approvals in multi-root windowsf89f5b1 vscode: Finish CLI extension removals in multi-root windows9af3c9d vscode: Record a first profile entry as pending before writing it19387b3 vscode: Keep cleaning other profiles when one cannot be read on uninstall9014aa1 redaction: Redact the canonical path of the home directoryd8b4237 vscode: Recognize the installation by its canonical path on uninstalld74c7c3 review: Name Git's reason when it refuses the repository5128c31 vscode: Open the extension page for Uninstall VS Code Extension