Skip to content

Releases: automatis-tools/agents-can-communicate

ACC v0.11.1

Choose a tag to compare

@maksymenkoml maksymenkoml released this 12 Oct 21:50
8bfb53f

ACC 0.11.1 makes hooks fast in large workspaces and on busy machines, and fixes the Claude Code indicator and client lookup on loaded Macs.

  • A hook reads each stored record once. Each turn used to read every message and receipt three times and its heartbeat every session: 1.0 s a turn in an ordinary workspace and timeouts in one with 2,234 sessions, after which the turn continued without ACC's context. Measured on a copy of a real data home, the same turns take 0.29–0.41 s (#298, #300).
  • The Claude Code indicator no longer prints "could not read this session's state" in every open session on a loaded machine. Each read has five seconds, and only three failed reads in a row show ! (#293).
  • A session that started without finding its client process finds it on the next prompt, instead of reporting client_process_unknown with no live delivery for its whole life (#294).
  • Commands, indicator reads and message delivery load only the client adapters and modules they use: on windows-latest acc version starts in 89 ms instead of 284 ms, and an indicator read in 143 ms instead of 244 ms (#270, #296).

Node 24 or later is required. Store contract 7 and managed-update protocol 2 are unchanged.

The published archive is the exact verified candidate: agents-can-communicate-0.11.1.tgz, 610,941 bytes, 376 files.

SHA-256: a4f76437f39c15f48585949b0d4e8d4fc8f968ed3b8e6ae57e521d9d81191af3.
SHA-1: 1710e08b72d45c1690d95b19ba84166f1c65682d.

Artifact source: 80d51698e39ca20b7af19457b8b80d83caf366b0; release commit: 8bfb53f35d8692fdc5f02adf947b69eb26a68294 (user-merged PR #301), whose fresh pack is byte-identical. Package/state upgrade from published 0.11.0 passed with the old MCP process alive, and all 376 archive files were installed identically. Real Claude Code 2.1.296 and Codex 0.162.1 passed the installed hook and inbox checks. The full local suite passed 3426 tests with 7 skips and no failures; all twelve CI checks passed.

See release evidence and limits. Native capture records keep their original versions and provenance; no new native activation or version floor is inferred from these checks.

ACC v0.11.0

Choose a tag to compare

@maksymenkoml maksymenkoml released this 12 Oct 02:05
67c92d7

ACC 0.11.0 ships atomic batch claim/release and optional per-session status indicators.

  • Claim or release multiple resources in one atomic CLI/MCP operation. Conflicts leave all existing claims and leases unchanged. release --all releases the caller's claims while keeping the session and intent open; scalar interfaces remain compatible.
  • Optional indicators for Claude Code, Antigravity CLI, Kimi Code and Grok show reception and failure states. Existing footer settings and user replacements survive updates. Optional diagnostic writes do not delay message delivery.
  • Includes the final PR #288 review corrections and test cleanup, and the batch feature from PR #291.

Node 24 or later is required. Store contract 7 and managed-update protocol 2 are unchanged.

The published archive is the exact verified candidate: agents-can-communicate-0.11.0.tgz, 607,574 bytes, 374 files.

SHA-256: dea2bb1d94212f35099f4b90e03cf99020ff574def26d4da757c1feda046c521.
SHA-1: 60ca32c0062dcc0ebbe45111c61b53cc41f21ecf.

Artifact source: 2244dba7a94ab27fe6c7152f813cfd1ab49b26b2; release commit: 67c92d7c44c86aebd0eed07435f7cfd29d842325 (user-merged PR #292). Package/state upgrade from published 0.10.4 passed with the old MCP process alive. All 374 source/archive/installed hashes matched. Full local gates passed 3371 tests with 8 skips and no failures; all nine platform/package/real-client CI checks passed.

See release evidence and limits. Native capture records keep their original versions and provenance; no new native activation or version floor is inferred from these checks.

ACC v0.10.4

Choose a tag to compare

@maksymenkoml maksymenkoml released this 09 Oct 03:19
8c71879

ACC 0.10.4 corrects Codex sender permission failures and the approved retry workflow from #285 / #286.

  • Socket metadata, endpoint access, and connection denials remain transport_permission_denied, including during expired binding refresh.
  • The CLI prints the original retry key. The refreshed Codex skill uses approved execution and retries the recorded message without a duplicate.
  • Release verification isolates client homes and keeps platform and deadline checks deterministic.

Update with:

acc update

Store contract 7 and managed-update protocol 2 are unchanged. Recorded delivery policies are preserved.

The exact archive passed clean installation/removal, all 27 managed/store checks, and upgrade from published 0.10.3 with a live MCP process. All 351 source/archive/installed file hashes matched. Real Claude/Codex hook checks and idle wake checks passed. The full local suite passed 3,216 tests with 8 skips and no failures.

Artifact: agents-can-communicate-0.10.4.tgz, 583,640 bytes, 351 files.

SHA-256: f714e20ce25f3f50ce5bf619ed6edbbc15ab9dd6391b3f1c4326b8b4c80aed5d.

Release evidence and limits.

Post-install verification

On 2026-10-09, acc update activated this release locally and preserved delivery policies. All 351 active runtime files matched the published archive. Doctor reported a healthy store and active Claude/Codex delivery.

The installed runtime recovered a denied send through approved execution. Real Codex 0.162.0 woke from idle and completed its marker action without another user prompt. The retry created no duplicate message. The test used isolated ACC state and a receiver binding published by the test harness.

Post-install evidence and limits.

ACC v0.10.3

Choose a tag to compare

@maksymenkoml maksymenkoml released this 07 Oct 03:12
5369549

ACC v0.10.3 release evidence

A process that has exited but that its parent has not collected no longer holds an update, and
doctor no longer reports a maintenance failure that its release outlived.

Exact artifact

  • Source: clean commit d1f1a5bc788a76d8f586415ce5ec598e025a4638, the version sweep on the
    merge of #282.
  • Archive: agents-can-communicate-0.10.3.tgz, packed from that commit.
  • Size: 582,379 bytes; 351 packed entries.
  • SHA-256: 94bff1849b8abd642d576fa0f5c71806d2012108c3ccac43a5119b82acc1025f.
  • The root and fifteen bundled workspaces are at 0.10.3. The Antigravity plugin manifest, the
    Gemini extension manifest and the lockfile carry the same version sweep as 0.10.2, over the
    same nineteen files. docs/UPGRADING.md already describes 0.10.3, from #282.

scripts/verify-package.mjs passed on that exact file: 351 entries, none forbidden; six
certification manifests with the exact evidence allowlist; every packed Markdown link resolves;
the root and fifteen bundled workspaces at 0.10.3; acc, acc-hook and acc-mcp present;
doctor reports six adapters; nothing written into a project without Git; client install and
uninstall restore topology, modes, links and bytes, and a repeated uninstall is a no-op.

All 27 packed checks passed against real installed archives: the 24 managed-update checks and
the 3 store-migration checks.

What changed since 0.10.2

One merged pull request changed the package; its development record is below this section of
the CHANGELOG:

  • #282 (#280, #281). processIsZombie reads ps -o stat= with LC_ALL=C; a state that
    starts with Z is a zombie, and an unreadable state decides nothing. A native binding, the
    pid a session record names, an ACC runtime lease and a pin stop holding when their process is
    a zombie; runtime admission does not run the check. The pending generation's refresh removes
    zombie bindings and leases. The Codex service host reads a <defunct> daemon as dead. Doctor
    does not report a failed or cancelled job whose target is the active release with nothing
    pending.

Upgrade from the published 0.9.1

The published agents-can-communicate@0.9.1 was installed from npm into an isolated prefix,
with its own HOME, ACC_DATA_HOME and project, a PATH of the prefix, client stubs, node and
system directories, and a local registry that served this exact archive:

  • A live 0.9.1 process. 0.9.1's own acc-mcp held contract 6, and acc update waited for
    it. After it exited, the next acc status activated 0.10.3. The store was on contract 7 within
    1.0 second, with event, journal, message and receipt bytes unchanged, and 0.10.3 answered the
    open question on it. The installed generation matched the archive file for file, and the Codex
    config.toml was unchanged. 0.9.1 code refused the migrated store with exit 4.
  • Stale bindings. Two bindings without a pid for sessions with no record: the 0.9.1 updater
    activated 0.10.3 after its refresh removed them, and the store moved to contract 7. With a
    third binding for a session that still heartbeats, that one stayed and kept 0.10.3 pending.
  • A reused pid. A binding written two days earlier, whose pid now belonged to a sleep
    started at the time of the run: the 0.9.1 updater activated 0.10.3, the binding was removed,
    and the store moved to contract 7.
  • A zombie. A binding written a second after its process started, whose process had exited
    under a parent that never collected it (ps: ZN, <defunct>): the 0.9.1 updater activated
    0.10.3 while the process was still a zombie, the binding was removed, and the store moved to
    contract 7. The published 0.10.2, in the same setup, stayed pending on that pid.
  • A pending 0.10.2. With 0.9.1's acc-mcp holding contract 6, acc update staged the
    published 0.10.2. Offered 0.10.3, acc update (which runs the pending 0.10.2's code) staged
    0.10.3 in its place; no --pin none was needed. Once the server exited, 0.10.3 activated, and
    only its generation remained.

Upgrade from the published 0.10.0, 0.10.1 and 0.10.2

Each was installed the same way, with its own acc-mcp running and holding contract 7; their
published sha256 matched the recorded ed5c2d88…, b899b2ca… and 6e3d6350…. Each
acc update printed Updated ACC to 0.10.3; integrations refreshed. without waiting. The
installed generation matched the archive file for file, and the Codex config.toml was
unchanged.

Mixed versions

The published 0.10.0, 0.10.1 and 0.10.2 code, each run from its own package through its
entrypoint, shared one store with the installed 0.10.3: a question each way, each found in the
other's inbox and answered, both reported 2 live, and both doctors reported the store healthy.

The maintainer's data home

Read-only, on the live runtime with 0.10.2 active: no native hold would block a contract-7
activation. The maintenance record from the 0.10.2 update is still failed (processes_active)
for 0.10.2. The installed 0.10.2 doctor reports it; this tree's diagnostic gives ACC 0.10.2 is active. and no maintenance report.

Suite

npm test on the evidence commit 08ff2e6 ran under env -i with only HOME, USER, TMPDIR,
a PATH of system directories plus node, the release npm cache, and ACC_TEST_REAL_FSYNC=1, so
that every flush happened, as in CI. It gave 3,213 tests: 3,206 passing, 0 failing, 7 skipped,
in 10.5 minutes, and left no test directory behind. Five skipped tests exercise Windows only
(named pipes, .cmd clients, WMI); two are the real-clients tests, which ran separately
(below). Nothing was re-run.

Real clients

On the maintainer's Mac (macOS arm64), the real-clients tests ran against the candidate commit's
packed tree, with an isolated home and a model stub on 127.0.0.1. Claude Code 2.1.292 and
Codex 0.160.1 attached through their own hooks, saw each other and carried a message into the
next turn, and an idle interactive Claude Code woke through its inbox. Both passed on the first
run. The real-clients CI job passed on ubuntu-latest and windows-latest on the final head of
#282.

Limits

  • The maintainer's own machine is updated after publication; that result is not part of this
    record.
  • A machine with a pending 0.10.0 or 0.10.1 still needs acc update --pin none once: their
    updater runs the decision and does not replace a pending release.
  • No zombie existed on a real machine during these checks; the zombie cases used a real zombie
    made for the test. Linux was exercised only through CI. Windows has no zombie state.

ACC v0.10.2

Choose a tag to compare

@maksymenkoml maksymenkoml released this 07 Oct 00:47
2453eb4

ACC v0.10.2 release evidence

A native binding whose pid another program now has no longer holds a store-contract update, and
a pending release that cannot activate gives way to a newer one.

Exact artifact

  • Source: clean commit fb1222a1411cabf9ea539ce56008a479182778f8, the version sweep on the
    merge of #278.
  • Archive: agents-can-communicate-0.10.2.tgz, packed from that commit.
  • Size: 580,985 bytes; 351 packed entries.
  • SHA-256: 6e3d63508379246a971947ccd66c5e544e8a53932f4f95e9f179e85b40fa4ceb.
  • The root and fifteen bundled workspaces are at 0.10.2. The Antigravity plugin manifest, the
    Gemini extension manifest and the lockfile carry the same version sweep as 0.10.1, over the
    same nineteen files. docs/UPGRADING.md already describes 0.10.2, from #278.

scripts/verify-package.mjs passed on that exact file: 351 entries, none forbidden; six
certification manifests with the exact evidence allowlist; every packed Markdown link resolves;
the root and fifteen bundled workspaces at 0.10.2; acc, acc-hook and acc-mcp present;
doctor reports six adapters; nothing written into a project without Git; client install and
uninstall restore topology, modes, links and bytes, and a repeated uninstall is a no-op.

All 27 packed checks passed against real installed archives: the 24 managed-update checks and
the 3 store-migration checks.

What changed since 0.10.1

One merged pull request changed the package; its development record is below this section of
the CHANGELOG:

  • #278 (#276, #277). A binding whose live pid belongs to a process that started more than a
    second after the binding was last written is no hold (ps -o lstart= with LC_ALL=C, or WMI
    on Windows; an unreadable start time decides nothing), and the pending generation's refresh
    removes it. When the pending release reports processes_active, acc update, and the
    automatic update once a check is due, stage a newer release in its place; with nothing newer,
    the result still reports processes_active.

Upgrade from the published 0.9.1

The published agents-can-communicate@0.9.1 was installed from npm into an isolated prefix,
with its own HOME, ACC_DATA_HOME and project, a PATH of the prefix, client stubs, node and
system directories, and a local registry that served this exact archive:

  • A live 0.9.1 process. 0.9.1's own acc-mcp held contract 6, and acc update waited for
    it. After it exited, the next acc status activated 0.10.2. The store was on contract 7 within
    0.8 seconds, with event, journal, message and receipt bytes unchanged, and 0.10.2 answered the
    open question on it. The installed generation matched the archive file for file, and the Codex
    config.toml was unchanged. 0.9.1 code refused the migrated store with exit 4.
  • Stale bindings. Two bindings without a pid for sessions with no record: the 0.9.1 updater
    activated 0.10.2 after its refresh removed them, and the store moved to contract 7. With a
    third binding for a session that still heartbeats, that one stayed and kept 0.10.2 pending.
  • A reused pid. A binding written two days earlier, whose pid now belonged to a sleep
    started at the time of the run: the 0.9.1 updater activated 0.10.2, the binding was removed,
    and the store moved to contract 7.
  • A stuck pending 0.10.1, as on the maintainer's machine. With 0.9.1's acc-mcp holding
    contract 6, acc update staged the published 0.10.1. Offered 0.10.2, the 0.10.1 updater only
    retried 0.10.1. acc update --pin none cleared it, and acc update staged 0.10.2. Once the
    server exited, 0.10.2 activated, and only its generation remained.

Upgrade from the published 0.10.0 and 0.10.1

Each was installed the same way, with its own acc-mcp running and holding contract 7; their
published sha256 matched the recorded ed5c2d88… and b899b2ca…. Each acc update printed
Updated ACC to 0.10.2; integrations refreshed. without waiting. The installed generation
matched the archive file for file, and the Codex config.toml was unchanged.

Mixed versions

The published 0.10.0 code, and separately the published 0.10.1 code, each run from its own
package through its entrypoint, shared one store with the installed 0.10.2: a question each way,
each found in the other's inbox and answered, both reported 2 live, and both doctors reported
the store healthy.

The maintainer's data home

Native holds that block a contract-7 activation, counted read-only on the live data home with
this tree's code: 5 bindings on 2 pids, the Codex app server and the Claude Code session that
ran these checks. The 0.10.1 code had counted 6 pids on the same home earlier the same day.

Suite

npm test on the evidence commit 3f42483 ran under env -i with only HOME, USER, TMPDIR,
a PATH of system directories plus node, the release npm cache, and ACC_TEST_REAL_FSYNC=1, so
that every flush happened, as in CI. It gave 3,201 tests: 3,193 passing, 0 failing, 8 skipped,
in 5.0 minutes, and left no test directory behind. Five skipped tests exercise Windows only
(named pipes, .cmd clients, WMI); two are the real-clients tests, which ran separately
(below); one needs Gemini CLI absent from the machine. Nothing was re-run.

Real clients

On the maintainer's Mac (macOS arm64), the real-clients tests ran against the candidate commit's
packed tree, with an isolated home and a model stub on 127.0.0.1. Claude Code 2.1.292 and
Codex 0.160.1 attached through their own hooks, saw each other and carried a message into the
next turn, and an idle interactive Claude Code woke through its inbox. Both passed on the first
run. The real-clients CI job passed on ubuntu-latest and windows-latest on the final head of
#278.

Limits

  • The maintainer's own machine is updated after publication; that result is not part of this
    record.
  • A machine with a pending 0.10.0 or 0.10.1 needs acc update --pin none once: their updater
    runs the decision and does not replace a pending release.
  • Linux and Windows were exercised only through CI; the Windows start-time reading is covered by
    the unit test that reads the test process's own start time.

ACC v0.10.1

Choose a tag to compare

@maksymenkoml maksymenkoml released this 06 Oct 23:36
786f85d

ACC v0.10.1 release evidence

The update from 0.9.x finishes once no 0.9.x session runs: a native binding that names no
client process no longer keeps it pending.

Exact artifact

  • Source: clean commit 17e525713d3d5ddba69578081b174356f2549015, the version sweep on the
    merge of #274.
  • Archive: agents-can-communicate-0.10.1.tgz, packed from that commit.
  • Size: 579,454 bytes; 351 packed entries.
  • SHA-256: b899b2ca496c2ee920ac3899ba6259e45ce534af05b2bc32d115d28a7cc94d8b.
  • The root and fifteen bundled workspaces are at 0.10.1. The Antigravity plugin manifest, the
    Gemini extension manifest and the lockfile carry the same version sweep as 0.10.0, over the
    same nineteen files. docs/UPGRADING.md says what 0.10.1 changes.

scripts/verify-package.mjs passed on that exact file. It checked:

  • 351 entries, none of them forbidden;
  • six certification manifests, with the exact evidence allowlist shipped;
  • every packed Markdown link resolves;
  • the root and fifteen bundled workspaces are at 0.10.1;
  • acc, acc-hook and acc-mcp are present;
  • doctor reports six adapters;
  • a workspace with no Git gets nothing written into the project;
  • client install and uninstall restore topology, modes, links and bytes, and a repeated
    uninstall is a no-op.

All 27 packed checks passed against real installed archives: the 24 managed-update checks and
the 3 store-migration checks.

What changed since 0.10.0

One merged pull request changed the package; its development record is below this section of
the CHANGELOG:

  • #274 (#273). listNativeHolds judges a binding without a client pid by its session
    record: it is no hold when the record is gone, names an exited process, or, with no process
    recorded, is offline by ACC's presence rule (closed, or 30 minutes without a heartbeat). A
    live recorded process, an unreadable record or a missing store keeps it a hold.
    prepareRefresh removes the stale ones under each session's lifecycle mutex, because an
    older generation's activator imports the pending generation's prepareRefresh before it
    lists blockers by its own rule.

Upgrade from the published 0.9.1

The published agents-can-communicate@0.9.1 was installed from npm into an isolated prefix,
with its own HOME, ACC_DATA_HOME and project, a PATH of the prefix, client stubs, node and
system directories, and a local registry that served this exact archive. Three runs:

  • A live 0.9.1 process. A contract-6 store with an answered and an open question, and 0.9.1's
    own acc-mcp holding contract 6. acc update printed ACC 0.10.1 is ready; waiting for 1 active or unidentified process(es): PID 68287 (acc-mcp; store contract 6). After the server
    exited, the next plain acc status activated 0.10.1; within 1.3 seconds the store was on
    contract 7, store-upgrade.json was complete and the 0.9.1 generation was reclaimed. Only
    protocol.json, a new indexes/ and eight stage/*.published markers differed from the
    store copied before the update. 0.10.1 answered the open question on it. The installed
    generation matched the archive file for file, the Codex config.toml was byte for byte the
    one 0.9.1 wrote, and the registry saw three requests.
  • Stale bindings. Two bindings without a pid that name sessions with no record, the shape
    0.8.5 wrote. acc update printed Updated ACC to 0.10.1; integrations refreshed.: the 0.9.1
    updater activated it by its own rule after the candidate's prepareRefresh removed both. The
    store moved to contract 7. The published 0.10.0, run the same way during #274, stayed
    pending behind the same two bindings.
  • A heartbeating session without a pid, besides the two stale bindings. The two were
    removed; the third binding stayed and kept 0.10.1 pending, and the store stayed on contract 6.

Upgrade from the published 0.10.0

The published agents-can-communicate@0.10.0 (sha256 ed5c2d88…, as recorded for 0.10.0) was
set up the same way, with its own acc-mcp running and holding contract 7. Its acc update
printed Updated ACC to 0.10.1; integrations refreshed. without waiting: the process declared
the same contract. Doctor reported a healthy store and ACC 0.10.1 is active., the installed
generation matched the archive file for file, and the Codex config.toml was unchanged.

Mixed versions

The published 0.10.0 code, run from its own package through its entrypoint, and the installed
0.10.1 shared one store:

  • 0.10.1 sent a question to a participant that 0.10.0 had attached;
  • 0.10.0 found it in its inbox and replied;
  • 0.10.0 sent a question back, and 0.10.1 found both it and the answer, and replied;
  • both reported 2 live, and both doctors reported the store healthy.

A copy of the maintainer's data home

Native holds that block a contract-7 activation, counted read-only with this tree's code on the
backup taken before the 0.10.0 update: 9, all naming a client process that is running; none
without a pid. With 0.10.0's code the same copy had 32 without a pid. Liveness is checked
against the machine's processes at the time of counting, so the number with a pid moves.

Suite

npm test on the evidence commit a17488f ran under env -i with only HOME, USER, TMPDIR,
a PATH of system directories plus node, the release npm cache, and ACC_TEST_REAL_FSYNC=1, so
that every flush happened, as in CI. It gave 3,192 tests: 3,184 passing, 0 failing, 8 skipped,
in 7.3 minutes, and left no test directory behind. Five skipped tests exercise Windows only
(named pipes, .cmd clients, WMI); two are the real-clients tests, which ran separately
(below); one needs Gemini CLI absent from the machine. Nothing was re-run.

Real clients

On the maintainer's Mac (macOS arm64), the real-clients tests ran against the candidate commit's
packed tree, with an isolated home and a model stub on 127.0.0.1. Claude Code 2.1.292 and
Codex 0.160.1 attached through their own hooks, saw each other and carried a message into the
next turn, and an idle interactive Claude Code woke through its inbox. Both passed on the first
run.

The real-clients CI job runs the same two tests on ubuntu-latest and windows-latest for every
pull request; both passed on the final head of #274.

Limits

  • The maintainer's own machine is updated after publication; that result is not part of this
    record.
  • A binding without a pid whose session still heartbeats keeps an update pending by design.
  • Linux and Windows were exercised only through CI.

ACC v0.10.0

Choose a tag to compare

@maksymenkoml maksymenkoml released this 06 Oct 21:31
46ec4e2

ACC v0.10.0 release evidence

Stores move to contract 7, which reads a bounded index on every send, and ACC migrates each
workspace's store by itself after the update. On Windows, a writer waiting for the store lock
looks again when the lock's record is being deleted. The README and docs lead with messages
between different vendors' clients.

Exact artifact

  • Source: clean commit ba9f2375c0c90aeae63a1909b5ac51fdd18bcb04, the corrected public texts
    over the rewritten README and docs (e972dfb), the merge of main with #269 (3174150) and
    the version sweep a9edc13.
  • Archive: agents-can-communicate-0.10.0.tgz, packed from that commit.
  • Size: 577,865 bytes; 351 packed entries.
  • SHA-256: ed5c2d884def7e064515cbeac6adc3bad6214c2cdc7feba10f79134e9d601c50.
  • The root and fifteen bundled workspaces are at 0.10.0. The Antigravity plugin manifest, the
    Gemini extension manifest and the lockfile carry the same version sweep as 0.9.1, over the
    same nineteen files. docs/UPGRADING.md gains "From 0.9.x".

scripts/verify-package.mjs passed on that exact file. It checked:

  • 351 entries, none of them forbidden;
  • six certification manifests, with the exact evidence allowlist shipped;
  • every packed Markdown link resolves;
  • the root and fifteen bundled workspaces are at 0.10.0;
  • acc, acc-hook and acc-mcp are present;
  • doctor reports six adapters;
  • a workspace with no Git gets nothing written into the project;
  • client install and uninstall restore topology, modes, links and bytes, and a repeated
    uninstall is a no-op.

All 27 packed checks passed against real installed archives: the 24 managed-update checks and
the 3 store-migration checks.

Three earlier candidates went through the same checks and are described under "Earlier
candidates" below: the archive from the version sweep a9edc13, discarded when #269 changed
two packed files; the archive from 3174150, discarded when the README, three docs pages and
the package description changed; and the archive from e972dfb, discarded when a closer
reading of the vendors' documentation corrected the public texts. Every check here was
repeated on this archive.

What changed since 0.9.1

Three merged pull requests changed the package. Their development records are below this
section of the CHANGELOG:

  • #263 (#241). Store contract 7: a send and its retries read a rebuildable, bounded message
    and receipt index instead of rereading unrelated records. acc doctor --migrate-store moves a
    contract-6 store; hooks fail open on one and never change its format.
  • #264. The activated generation migrates every contract-6 store of its data home itself,
    once no live process holds contract 6, and records store-upgrade.json; the launcher's
    scheduler retries an incomplete pass after a minute. Claude Code and Codex hooks print a
    systemMessage while a store waits, and plain acc doctor names the migration command.
  • #269. On Windows, a writer's lstat of a name inside a lock directory that another writer
    is deleting answers EPERM; it is now asked again within the writer's deadline, and an open
    refused while the lock changed hands opens the new record. The change applies on Windows
    only.

#265, #266 and #268 changed only tests, the test runner and CI.

The release branch also rewrote the public texts for the position between vendors
(design: docs/design/2026-10-06-cross-vendor-positioning.md): the README, docs/WHY_ACC.md,
the openings of docs/index.md and docs/GETTING_STARTED.md, and the package description and
keywords. Gemini CLI left the README's client list and the keywords; its adapter is unchanged.
ba9f237 then made the vendor statements exact, after Claude Code's documentation showed that
it invites scripts to post into a session's inbox socket and codex queue --help showed a
command a person or script runs: the texts say that neither client offers a way to message the
other's sessions, tell a one-vendor reader to try its own messaging first, and say what wiring
the two by hand leaves out. The docs index and the setup guide point upgraders at "From
0.9.x".

Upgrade from the published 0.9.1

The published agents-can-communicate@0.9.1 (sha256 517023ba…, as recorded for 0.9.1) was
set up as follows:

  • installed from npm into an isolated prefix, with its own HOME, ACC_DATA_HOME and project,
    and a PATH that held only the prefix, the client stubs, node and system directories;
  • wired to Claude Code and Codex through version stubs (--delivery actionable), which left
    automatic updates on;
  • given a contract-6 store by its own commands: two attached participants, a question with its
    answer, and a second question left open;
  • given a live 0.9.1 process holding contract 6: its own acc-mcp server, started through the
    launcher, whose runtime lease named 0.9.1 and store contract 6;
  • given a local registry that served this exact archive.

Its own acc update printed ACC 0.10.0 is ready; waiting for 1 active or unidentified process(es): PID 42539 (acc-mcp; store contract 6). and acc doctor printed the same notice.
version still answered 0.9.1, both generations were present, and the store stayed on
contract 6.

The MCP server was then stopped. The next plain acc status, with updates allowed, started the
0.9.1 worker, which activated 0.10.0; 0.10.0 migrated the store. Within 1.6 seconds of that
command, while the packed checks ran beside it:

  • control.json named 0.10.0 active, with no pending update;
  • the store's protocol.json named storeVersion: 7, with the same workspace id and
    initialization time;
  • store-upgrade.json recorded complete: true, pending: 0;
  • reclaim.json recorded complete: true, and the 0.9.1 generation was gone.

A recursive comparison with the store copied before the update found only protocol.json
changed, a new indexes/ directory, and eight new stage/*.published markers: every event,
journal, message and receipt file was byte for byte the same.

On the migrated store, 0.10.0 showed the open question in the recipient's inbox, recorded its
answer, and showed both answers in the sender's inbox. Doctor reported a healthy store,
ACC 0.10.0 is active., and two of six adapters installed. The installed generation matched
the extracted archive file for file (diff -r). The Codex config.toml was byte for byte the
one 0.9.1 wrote. The registry saw three requests; the last was for the 0.10.0 tarball.

Mixed versions

0.9.x code cannot open a contract-7 store. The published 0.9.1 code, run from its own package
through its entrypoint, answered acc status on the migrated store with exit 4 and
unknown store version. A 0.9.1 process that still runs, such as the MCP server above, holds
contract 6 and so blocks the activation; both versions never use one store.

Suite

npm test on the evidence commit fb36b72 ran under env -i with only HOME, USER, TMPDIR,
a PATH of system directories plus node, the release npm cache, and ACC_TEST_REAL_FSYNC=1, so
that every flush happened, as in CI. It gave 3,182 tests: 3,174 passing, 0 failing, 8 skipped,
in 6.3 minutes, and left no test directory behind. The skipped tests are the same eight as on
the first candidate (see there). Nothing was re-run. The backlog reminder test that failed once
on the first candidate passed, with the diagnostics of e2f5f05.

Real clients

On the maintainer's Mac (macOS arm64), the real-clients tests ran against the candidate commit's
packed tree, with an isolated home and a model stub on 127.0.0.1. Claude Code 2.1.291 and
Codex 0.160.1 attached through their own hooks, saw each other and carried a message into the
next turn, and an idle interactive Claude Code woke through its inbox. Both passed on the first
run, as they did on every earlier candidate.

The real-clients CI job runs the same two tests on ubuntu-latest and windows-latest for every
pull request; both passed on the final heads of #263, #264 and #269. On #264, Claude Code
2.1.289 showed the notice in its terminal, and Codex 0.160.1 (codex exec, which prints no
systemMessage) completed both hooks with it (see its development record).

Earlier candidates

The archive packed from e972dfb (577,709 bytes, sha256 6ce5114f…) passed every check above:
the package verification, the 27 packed checks, the upgrade from the published 0.9.1 (the store
moved within 2.5 seconds of the holder's exit), the mixed-version check, both real-clients
tests, and npm test on its evidence commit 39a1362 with every flush: 3,182 tests, 3,174
passing, 0 failing, 8 skipped, in 4.8 minutes.

The archive packed from 3174150 (577,239 bytes, sha256 30bcb2f4…) passed every check above:
the package verification, the 27 packed checks, the upgrade from the published 0.9.1 (the store
moved within 1.7 seconds of the holder's exit), the mixed-version check, both real-clients
tests, and npm test on its evidence commit 6e0d249 with every flush
(ACC_TEST_REAL_FSYNC=1): 3,182 tests, 3,174 passing, 0 failing, 8 skipped, in 6.3 minutes.

The archive packed from a9edc13 (576,895 bytes, sha256 a64974be…) passed the package
verification, the same upgrade from the published 0.9.1 (the store moved within 2 seconds of
the holder's exit), the mixed-version check and both real-clients tests.

In its first packed run, the 24 managed-update checks and the explicit-migration check passed.
Two store-migration checks failed: they offered the update as 0.9.99, which is no longer
newer than the installed 0.10.0, so the update found nothing to stage. The test-only commit
d9ff788 makes them offer the next patch above the installed version, as every other packed
update check does; the three store-migration checks then passed.

npm test on its evidence commit 56407f0 ran under env -i with only HOME, USER, TMPDIR,
a PATH of system directories plus node, and the release npm cache, as in CI. It gave 3,167
test...

Read more

ACC v0.9.1

Choose a tag to compare

@maksymenkoml maksymenkoml released this 06 Oct 02:33
4d62d7b

ACC v0.9.1 release evidence

Codex sessions answer peers without auto-review, and doctor no longer calls the Claude Code
plugin edited after an update.

Exact artifact

  • Source: clean commit e5ca71626ef32b7431dc9d568b0b606e1f0e700b, the version sweep on the
    merge of #261.
  • Archive: agents-can-communicate-0.9.1.tgz, packed from that commit.
  • Size: 558,274 bytes; 337 packed entries.
  • SHA-256: 517023ba89f09dda8ada36fb451de20849798a32f91fc46cb346212b5e335560.
  • The root and fifteen bundled workspaces are at 0.9.1. The Antigravity plugin manifest, the
    Gemini extension manifest and the lockfile carry the same version sweep as 0.9.0, over the
    same nineteen files. docs/UPGRADING.md describes what 0.9.1 changes.

scripts/verify-package.mjs passed on that exact file. It checked:

  • 337 entries, none of them forbidden;
  • six certification manifests, with the exact evidence allowlist shipped;
  • every packed Markdown link resolves;
  • the root and fifteen bundled workspaces are at 0.9.1;
  • acc, acc-hook and acc-mcp are present;
  • doctor reports six adapters;
  • a workspace with no Git gets nothing written into the project;
  • client install and uninstall restore topology, modes, links and bytes, and a repeated
    uninstall is a no-op.

All 24 managed-update packed checks passed against real installed archives.

What changed since 0.9.0

Two merged pull requests changed the package. Their development records are below this section
of the CHANGELOG:

  • #259 (#257). The ownership fingerprint of Claude Code's plugin cache leaves out the
    .in_use/<pid> markers Claude Code writes, as it already left out .orphaned_at, and
    keepVersions keeps a version whose marker names a live process.
  • #261 (#260). ACC's own Codex rules file, $CODEX_HOME/rules/agents-can-communicate.rules,
    allows ACC's wrapper to run the participant commands without an approval, so Codex's
    auto-review never judges them. Only an unedited ACC-generated file is replaced or removed.
    Every client's skill says that a peer is a local session of the same user.

One more, #258, changed only a test helper. A test-only commit on the release branch makes the
packed fixtures wait for a client's last hook before removal (see Suite).

Upgrade from the published 0.9.0

The published agents-can-communicate@0.9.0 (sha256 df470014…, as recorded for 0.9.0) was
set up as follows:

  • installed from npm into an isolated prefix, with its own HOME, ACC_DATA_HOME and project,
    and a PATH that held only the prefix, the client stubs, node and system directories;
  • wired to Claude Code and Codex through version stubs (--delivery actionable);
  • given a local registry that served this exact archive.

Its own acc update printed Updated ACC to 0.9.1; integrations refreshed.. After the update:

  • version answered 0.9.1.
  • The active generation was 0.9.1-1dfca7c3919d2936edf12ffc, beside
    0.9.0-4924570eae6ab33e36cc92d7.
  • The runtime kept four launchers.
  • Doctor reported ACC 0.9.1 is active, a healthy store, and "ACC commands run without an
    approval prompt" with the new Codex rules file; the Codex ownership record now holds three
    intact artifacts, the rules file among them.
  • The update wrote ~/.codex/rules/agents-can-communicate.rules with the wrapper and the
    eleven participant commands, and codex execpolicy check (0.160.1) allowed
    <wrapper> reply … against it.
  • The Codex config.toml was byte for byte the one 0.9.0 wrote.
  • The installed generation matched the extracted archive file for file (diff -r).
  • The registry saw three requests; the last was for the 0.9.1 tarball.

reclaim.json named the 0.9.1 generation with complete: false right after the update. After
an acc status from npm's acc and one from ACC's launcher, both generations stayed. With
attemptedAt moved two hours back, the next launcher acc status started the 0.9.1 worker. The
worker removed the 0.9.0 generation and recorded complete: true.

Mixed versions

The published 0.9.0 code and the installed 0.9.1 shared one store. The 0.9.0 code ran from its
own package through its entrypoint. In that store:

  • 0.9.1 sent a question to a participant that 0.9.0 had attached;
  • 0.9.0 found the question in its inbox and replied;
  • 0.9.1 received the answer;
  • both reported 2 live;
  • 0.9.0 synced the full store (6 events);
  • both doctors reported the store healthy.

STORE_VERSION stays 6.

Suite

npm test on the evidence commit b5cf1c0 ran under env -i with only HOME, USER, TMPDIR,
a PATH of system directories plus node, and the release npm cache, as in CI. It gave 3,066
tests: 3,059 passing, 0 failing, 7 skipped, in 4.7 minutes, and left no test directory behind.
Five skipped tests exercise Windows only (named pipes, .cmd clients, WMI). The other two are
the real-clients tests, which need the clients on PATH; they ran separately, below. Nothing
was re-run.

Real clients

On the maintainer's Mac (macOS arm64), the real-clients tests ran against the candidate commit's
packed tree, with an isolated home and a model stub on 127.0.0.1:

  • Claude Code 2.1.289 and Codex 0.160.1 attached through their own hooks, saw each other, and
    carried a message into the next turn. The real Codex read ACC's installed rules file:
    codex execpolicy check answered allow for <wrapper> reply … and nothing for
    <wrapper> install …, and uninstall removed the file.
  • The live test, in which an idle interactive Claude Code 2.1.289 wakes through its inbox,
    failed once in its teardown with ENOTEMPTY. Stress runs reproduced it 1 time in 5; a
    process sampler showed Claude Code's SessionEnd hook (acc-hook.mjs claude_code finish)
    still writing in the fixture's data home while the fixture was removed. The test helper now
    waits for every process working in the fixture; 12 runs after that change passed. The wake
    itself passed in every run.

The real-clients CI job runs the same two tests on ubuntu-latest and windows-latest for every
pull request; both passed on the final heads of #259 and #261.

Limits

  • No model-driven Codex session ran against the rules file: the evidence that a matched command
    skips auto-review is Codex's own source and codex execpolicy check.
  • No real Claude Code session wrote an .in_use marker in five isolated runs; the marker case
    is covered by tests built from the marker observed on the maintainer's machine.
  • Windows gets no Codex rule, and Linux and Windows were exercised only through CI.

ACC v0.9.0

Choose a tag to compare

@maksymenkoml maksymenkoml released this 05 Oct 21:31
27ee77a

ACC v0.9.0 release evidence

ACC runs natively on Windows, with live delivery to Claude Code, Codex and Antigravity CLI there.
Antigravity's desktop app gets live delivery through its own language server. An uninstall takes
back only what its own data home installed.

Exact artifact

  • Source: clean commit cc3540fcb1ae8dc22543af50dd2d55aeb6f1ca77. It follows the version sweep
    6c50a9d on the merge of #254 and two documentation commits.
  • Archive: agents-can-communicate-0.9.0.tgz, packed from that commit.
  • Size: 554,565 bytes; 336 packed entries.
  • SHA-256: df4700148f5710536155af47b05a0f211d5c8a5d09dee5c945e2b5a5303881c6.
  • The root and fifteen bundled workspaces are at 0.9.0. The Antigravity plugin manifest, the
    Gemini extension manifest and the lockfile carry the same version sweep as 0.8.5, over the
    same nineteen files. docs/UPGRADING.md describes what 0.9.0 changes.

scripts/verify-package.mjs passed on that exact file. It checked:

  • 336 entries, none of them forbidden;
  • six certification manifests, with the exact evidence allowlist shipped;
  • every packed Markdown link resolves;
  • the root and fifteen bundled workspaces are at 0.9.0;
  • acc, acc-hook and acc-mcp are present;
  • doctor reports six adapters;
  • a workspace with no Git gets nothing written into the project;
  • client install and uninstall restore topology, modes, links and bytes, and a repeated
    uninstall is a no-op.

All 24 managed-update packed checks passed against real installed archives.

What changed since 0.8.5

Five merged pull requests changed the package. Their development records are below this
section of the CHANGELOG:

  • #235 (#234). Native Windows: portable filesystem primitives for the store and the managed
    runtime, a Node shim in each client's own hook-shell form, the process table through WMI,
    state in %LOCALAPPDATA%, and windows-latest in the CI test and package matrices.
  • #243. Live delivery on Windows: the Claude Code inbox pipe with the peer key, Codex through
    codex app-server proxy, and the Antigravity relay on a named pipe. A hook does less work on
    each turn: fewer flushes, no writer lock for an absent binding, and no journal completion
    marker. A real-clients CI job runs Claude Code and Codex on Linux and Windows.
  • #252. The Antigravity install also allows the relay start command, so an unattended
    Antigravity CLI session starts its relay without a prompt.
  • #254 (#171). The Antigravity desktop app as a client variant with its own evidence and live
    delivery through its language server; the running client's version and restart rebind; Codex
    app chats as client_session_embedded.
  • #255 (#253). acc uninstall without --adapter skips a client that the current data home
    did not install.

Four more (#242, #244, #248, #249) changed only tests and their fixtures. Two documentation
commits on the release branch correct pages that still said native Windows keeps next-turn
delivery, Linux is uncaptured, and live delivery needs Apple Silicon macOS, and say that on
Windows a Claude Code configuration directory outside the user's profile keeps next-turn
delivery. The first candidate, 6c50a9d (sha256 52cf072e…), passed the same checks before
the second of them; every result below is from the final candidate.

Upgrade from the published 0.8.5

The published agents-can-communicate@0.8.5 (sha256 f593a339…, as recorded for 0.8.5) was
set up as follows:

  • installed from npm into an isolated prefix, with its own HOME, ACC_DATA_HOME and project,
    and a PATH that held only the prefix, the client stubs, node and system directories;
  • wired to Claude Code and Codex through version stubs (--delivery actionable);
  • given a local registry that served this exact archive.

Its own acc update printed Updated ACC to 0.9.0; integrations refreshed.. After the update:

  • version answered 0.9.0.
  • The active generation was 0.9.0-4924570eae6ab33e36cc92d7, beside
    0.8.5-2e048e5495553522a5557872.
  • The runtime kept four launchers.
  • Doctor reported ACC 0.9.0 is active and a healthy store.
  • The Codex profile was byte for byte the one 0.8.5 wrote, with the same four socket grants.
  • The installed generation matched the extracted archive file for file (diff -r).
  • The registry saw three requests; the last was for the 0.9.0 tarball.

reclaim.json named the 0.9.0 generation with complete: false right after the update. After
an acc status from npm's acc and one from ACC's launcher, both generations stayed. With
attemptedAt moved two hours back, the next launcher acc status started the 0.9.0 worker. The
worker removed the 0.8.5 generation and recorded complete: true.

Mixed versions

The published 0.8.5 code and the installed 0.9.0 shared one store. The 0.8.5 code ran from its
own package through its entrypoint. In that store:

  • 0.9.0 sent a question to a participant that 0.8.5 had attached;
  • 0.8.5 found the question in its inbox and replied;
  • 0.9.0 received the answer;
  • both reported 2 live;
  • 0.8.5 synced the full store (6 events, none repeated);
  • both doctors reported the store healthy.

0.9.0 writes no journal completion marker, and 0.8.5 read and wrote that store. STORE_VERSION
stays 6.

Suite

npm test on the evidence commit 0ded3de ran under env -i with only HOME, USER, TMPDIR,
a PATH of system directories plus node, and the release npm cache, as in CI. It gave 3,052
tests: 3,045 passing, 0 failing, 7 skipped, in 4.8 minutes, and left no test directory behind.
Five skipped tests exercise Windows only (named pipes, .cmd clients, WMI). The other two are
the real-clients tests, which need the clients on PATH; they ran separately, below. Nothing
was re-run.

Real clients

On the maintainer's Mac (macOS arm64), the real-clients tests ran against the candidate commit's
packed tree, with an isolated home and a model stub on 127.0.0.1:

  • An idle interactive Claude Code 2.1.289 woke through its inbox socket when another session
    asked it a question, and the model read the message with no one typing.
  • Claude Code 2.1.289 and Codex 0.160.0 attached through their own hooks, saw each other, and
    carried a message into the next turn.

The real-clients CI job runs the same two tests on ubuntu-latest and windows-latest for
every pull request; both passed on the final head of #254 (9a23121f).

Captured with real models during development, each in an isolated data home:

  • Antigravity 2.19.1, the desktop app (#254, a private 0.8.99 build of that branch): an idle
    conversation woke, a push during a long answer waited for it, the woken agent answered with
    acc reply and no prompt, a resent message arrived once, a message to a quit app stayed
    queued, and after a restart the next turn bound the conversation again.
  • Antigravity CLI 1.2.16 (#252, a private 0.8.99 build): the agent started its relay with no
    approval prompt, and a question pushed into the idle session was answered with acc reply.
  • Claude Code 2.1.286 on Windows (#243, windows-latest): the inbox pipe dropped a frame
    without the auth line and ran a turn after the peer key's auth line.
  • Codex 0.159.3 on Windows (#243, windows-latest, under a standard user): a queued message
    reached the model through codex app-server proxy.
  • The uninstall change (#255, the packed candidate, an isolated HOME with two data homes):
    an uninstall from the data home that had not installed left the other one's wiring
    unchanged; --adapter still removed it.

Limits

  • The Antigravity desktop app was captured on 2.19.1, darwin-arm64 only. Its Windows and Linux
    builds are uncaptured, and the bind needs lsof.
  • Codex 0.160.0 ran only the next-turn check here. Its LocalDaemon live push was not captured
    again for this release; the latest records are 0.159.1 on macOS (0.8.5's evidence) and
    0.159.3 on Windows (#243).
  • Codex live delivery on Windows needs a daemon started from a terminal that is not elevated.
    The CI Windows runner is elevated.
  • The upgrade and mixed-version checks used version stubs for Claude Code and Codex.
  • Linux and Windows were exercised only through CI.

ACC v0.8.5

Choose a tag to compare

@maksymenkoml maksymenkoml released this 30 Sep 01:07
c08c86d

ACC v0.8.5 release evidence

A Codex chat that a launch option keeps embedded is told which option, and the user sees that
notice directly. After an update, the previous runtime generation is removed an hour later, with
automatic updates on or off.

Exact artifact

  • Source: clean commit 2745dcbd745d1a4e609be1f974058168fd6ba147, the version sweep on the
    merge of #232.
  • Archive: agents-can-communicate-0.8.5.tgz, packed from that commit.
  • Size: 499,566 bytes; 318 packed entries.
  • SHA-256: f593a339dbdfb6406a9f21ec7cf7d94c5526549dbd11a24c6538f514257fa428.
  • The root and fifteen bundled workspaces are at 0.8.5. The Antigravity plugin manifest, the
    Gemini extension manifest and the lockfile carry the same version sweep as 0.8.4, over the
    same nineteen files. docs/UPGRADING.md describes what 0.8.5 changes for an embedded Codex
    chat and when the previous generation is removed.

scripts/verify-package.mjs passed on that exact file. It checked:

  • 318 entries, none of them forbidden;
  • six certification manifests;
  • every packed Markdown link resolves;
  • the root and fifteen bundled workspaces are at 0.8.5;
  • acc, acc-hook and acc-mcp are present;
  • doctor reports six adapters;
  • a workspace with no Git gets nothing written into the project;
  • client install and uninstall restore topology, modes, links and bytes, and a repeated
    uninstall is a no-op.

All 24 managed-update packed checks passed against real installed archives.

What changed since 0.8.4

Two merged pull requests. Their development records are below the 0.8.4 section of the
CHANGELOG:

  • #231 (#230). The Codex adapter names the first launch option on an embedded chat's
    command line that keeps it embedded. The option travels with the refusal as launchOption,
    and the native-attempt record keeps it. The chat's notice, doctor's session line and the
    sender's line (nativeLaunchOption) advise starting Codex without the option. On its one
    turn, the notice is printed as the hook's systemMessage, which Codex shows the user and never
    sends to the model. This was measured on Codex 0.147.0, 0.155.1 and 0.159.1, and on a real
    0.159.1 codex --search chat with the candidate installed.
  • #232. An acc update runs from the generation it replaces and holds a lease on it. Its
    in-process reclaim therefore keeps that generation, but it used to record the pass as done.
    The pass is now recorded as unfinished, and the hourly retry removes the old generation. This
    was found in this release's first upgrade preflight: there, the published 0.8.4 left its own
    generation in place with complete: true.

Upgrade from the published 0.8.4

The published agents-can-communicate@0.8.4 was set up as follows:

  • installed from npm into an isolated prefix with its own HOME, ACC_DATA_HOME and project;
  • wired to Claude Code and Codex through version stubs (--delivery actionable);
  • given a local registry that served this exact archive.

Its own acc update printed Updated ACC to 0.8.5; integrations refreshed.. After the update:

  • version answered 0.8.5.
  • The active generation was 0.8.5-2e048e5495553522a5557872, beside
    0.8.4-64eb6d4ee24c36031b6c44eb.
  • The runtime kept four launchers.
  • Doctor reported ACC 0.8.5 is active.
  • The Codex profile kept the same four grants.
  • The installed generation matched the extracted archive file for file (diff -r).
  • The registry saw three requests; the last was for the 0.8.5 tarball.

reclaim.json named the 0.8.5 generation with complete: false right after the update. It still
did after an acc status from npm's acc and one from ACC's launcher. Neither command started a
worker, and both generations stayed. With attemptedAt moved two hours back, the next launcher
acc status started the 0.8.5 worker. The worker removed the 0.8.4 generation and recorded
complete: true.

Mixed versions

The published 0.8.4 code and the installed 0.8.5 shared one store. The 0.8.4 code ran from its
own package through its entrypoint. In that store:

  • 0.8.5 sent a question to a participant that 0.8.4 had attached;
  • 0.8.4 found the question in its inbox and replied;
  • 0.8.5 received the answer;
  • both reported 2 live;
  • 0.8.4 synced the full store (6 events).

STORE_VERSION stays 6.

Suite

npm test on the evidence commit 61d8235 ran under env -i with only HOME, USER, TMPDIR,
a PATH of system directories plus node, and the release npm cache, as in CI. It gave 2,795
tests: 2,794 passing, 0 failing, 1 skipped, in 10.8 minutes, and left no test directory behind.
The skipped test is the existing uninstall check that skips on a machine where Gemini CLI is
installed. Nothing was re-run.

Real clients

A Codex 0.159.1 check ran during development in an isolated HOME, CODEX_HOME and data home,
with the #231 candidate installed from its archive. Its record is in
docs/release-evidence/unreleased-codex-embedded-launch-option.md:

  • codex --search showed the user "↳ Hook · ACC: live peer delivery is off in this chat:
    --search makes Codex run it on its own app server. For live delivery, start Codex without
    --search and move what it sets into config.toml."
  • The model received only its own line.
  • The sender's line and doctor named --search.

The published 0.8.4 ran on the maintainer's machine the same day, with Codex 0.159.1:

  • An empty daemon chat was registered and answered a request with its first turn.
  • A closed TUI's session closed 60.4 seconds after the exit.
  • A Codex auto-update restarted the daemon, and a long-running chat's binding and runtime pin
    moved to the new daemon's pid within 4 seconds.

Limits

  • The display of a hook's systemMessage was measured on Codex 0.147.0, 0.155.1 and 0.159.1
    only. Every Codex release from 0.144.1 to 0.159.1 accepts the field.
  • A chat that is embedded because of an environment variable (CODEX_EXEC_SERVER_URL) or a
    configuration loader shows nothing on its command line, so it keeps the advice for a missing
    daemon.
  • The old generation stays for an hour after an update and is removed by the first ACC command
    after that hour.
  • Linux was exercised only through the CI suite.