CoAgent8 - Source API
    Preparing search index...

    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.

    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 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
    • 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
    • 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)
    • 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