Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 8 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,12 +28,14 @@ This package was checked on 2026-08-06 against
ContextStream service after normal ContextStream setup.

Contract support and end-to-end proof are intentionally separate. Claude has
completed sourced ContextStream retrieval and a signed Buzz reply. Codex is
running and waiting for the deliberately approval-gated continuation. Goose
passes launcher and ACP startup checks, but its current ContextStream-backed
prompt remains an open interoperability finding rather than a claimed pass.
See [runtime-proof.md](runtime-proof.md) for versions, evidence, and the exact
pass criterion.
completed sourced ContextStream retrieval and a signed Buzz reply. Goose 1.45.0
through `codex-acp` has now done the same with a distinct identity; its event
hash, BIP-340 signature, reply linkage, and cited ContextStream source IDs were
verified independently. Codex is running and waiting for the deliberately
approval-gated second-agent continuation. See
[runtime-proof.md](runtime-proof.md) for versions, evidence, the exact pass
criterion, and a separate intermittent-startup diagnostic that does not change
the verified Goose pass.

Buzz records collaboration inside a Buzz community. ContextStream carries
durable project understanding across agents, sessions, tools, and workspaces.
Expand Down
17 changes: 13 additions & 4 deletions compatibility.json
Original file line number Diff line number Diff line change
Expand Up @@ -64,10 +64,19 @@
"launcher_preflight": "passed",
"buzz_acp_startup": "passed",
"canonical_contextstream_process_started": "passed",
"sourced_contextstream_retrieval": "not_yet_proven",
"signed_buzz_reply": "not_yet_proven",
"observed_stop": "An explicit Buzz mention reached Goose and Goose started the canonical ContextStream MCP process in the selected project directory, but the session remained in extension initialization and emitted no signed reply during the bounded proof run.",
"claim_policy": "Do not describe Goose end-to-end retrieval as verified until a signed reply satisfies proof.pass_standard."
"canonical_contextstream_mcp": "passed",
"sourced_contextstream_retrieval": "passed",
"signed_buzz_reply": "passed",
"passing_provider": "codex-acp via @agentclientprotocol/codex-acp 1.1.9",
"prompt_event_id": "7cd2bb8559f97c3039ad1b4b7b18f3d29b27559942d97b86d208ee287d8d0849",
"reply_event_id": "be9a51d597dc1514c3e93604f3f879fb1f5c6a3aadcdc3a16d9b2dc471f96401",
"retrieved_source_ids": [
"31a6b6f7-099e-404f-b2e8-899d314c188d",
"2fbc4197-de18-43e6-8d23-1e5f25e53fc9",
"d1ff8fcc-cf4e-4478-96e9-e80edc1f1450"
],
"event_verification": "Computed event hash matches the event ID, BIP-340 signature verifies, author matches the distinct Goose identity, and the reply tag references prompt_event_id.",
"diagnostic_note": "Separate later full-catalog and reduced-catalog runs did not finish within their observation windows. A complete 110,594-byte tools/list response was valid, and reducing it to 47,345 bytes did not make that later run complete; current evidence does not support a simple tool-list-size incompatibility."
}
}
}
Expand Down
12 changes: 9 additions & 3 deletions reference.test.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -61,11 +61,17 @@ test("runtime proof never conflates process startup with sourced retrieval", asy
assert.equal(matrix.claude.sourced_contextstream_retrieval, "passed");
assert.equal(matrix.claude.signed_buzz_reply, "passed");
assert.equal(matrix.codex.cross_agent_continuation, "pending_explicit_human_approval");
assert.equal(matrix.goose.sourced_contextstream_retrieval, "not_yet_proven");
assert.equal(matrix.goose.signed_buzz_reply, "not_yet_proven");
assert.equal(matrix.goose.sourced_contextstream_retrieval, "passed");
assert.equal(matrix.goose.signed_buzz_reply, "passed");
assert.match(matrix.goose.reply_event_id, /^[0-9a-f]{64}$/);
assert.match(matrix.goose.event_verification, /BIP-340 signature verifies/);
assert.match(compatibility.proof.pass_standard, /signed Buzz reply/);
assert.match(ledger, /Process startup.*not retrieval proof/is);
assert.match(ledger, /open compatibility finding/i);
assert.match(ledger, /The stored Nostr event was independently checked/i);
assert.match(
ledger,
/does not\s+support a simple tool-list-size incompatibility/i,
);
});

test("production and smoke clients remain separable for connector metrics", async () => {
Expand Down
41 changes: 29 additions & 12 deletions runtime-proof.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ diagnostics, but they are not retrieval proof.
| --- | --- | --- | --- | --- |
| Claude Code 2.1.221 through `claude-agent-acp` 0.65.0 | Pass | Pass | Pass | End-to-end proven; the disposable fixture passed 5/5 tests |
| Codex CLI 0.146.1 through `codex-acp` 1.1.9 | Pass | Pass | Approval-gated | The second-agent continuation is deliberately waiting for explicit human approval |
| Goose 1.45.0 | Pass | MCP process starts | Not yet proven | An explicit mention enters the session, but the bounded run remains in extension initialization without a signed reply |
| Goose 1.45.0 through `codex-acp` 1.1.9 | Pass | Pass | Pass | End-to-end proven; the signed reply retrieved and cited the demo PRD, ADR, and constraint |

The Buzz harness contract supports all three runtimes. The matrix above records
what has actually completed with ContextStream rather than treating contract
Expand All @@ -38,7 +38,7 @@ Buzz reply event:
The later 30-minute admin-expiry proposal was neither preserved nor
implemented. It remains behind the documented human-approval gate.

## Goose finding
## Goose evidence

A clean Goose 1.45.0 binary passed `run-agent.sh --check`, initialized through
the pinned Buzz `buzz-acp`, authenticated to the relay with a distinct identity,
Expand All @@ -48,16 +48,33 @@ provider paths were exercised:
- `claude-acp` through `@agentclientprotocol/claude-agent-acp` 0.65.0;
- `codex-acp` through `@agentclientprotocol/codex-acp` 1.1.9.

For both, an explicit Buzz mention entered a new Goose session and Goose
started the executable named `contextstream` in the selected project working
directory. The bounded run then remained in extension initialization and did
not publish a signed answer. Changing the outer Buzz permission mode from
`dontAsk` to `acceptEdits` did not change that stop, so permission wiring alone
does not explain it.

This is an open compatibility finding, not a successful retrieval. Keep Goose
in the launcher because Buzz supports it, but do not market Goose as
end-to-end verified until the signed-reply criterion below passes.
The passing run used `codex-acp`, Buzz `acceptEdits`, and Goose `approve`. An
explicit mention event
`7cd2bb8559f97c3039ad1b4b7b18f3d29b27559942d97b86d208ee287d8d0849`
asked Goose to retrieve the approved invitation expiry, signed-token decision,
and no-new-store constraint without editing or preserving anything. Goose used
the canonical `contextstream` MCP server and published reply event
`be9a51d597dc1514c3e93604f3f879fb1f5c6a3aadcdc3a16d9b2dc471f96401`.
The answer cited:

- `DEMO — Invitation expiry requirements`
(`31a6b6f7-099e-404f-b2e8-899d314c188d`);
- `DEMO ADR — Signed single-use invitation tokens`
(`2fbc4197-de18-43e6-8d23-1e5f25e53fc9`);
- `DEMO constraint — no new invitation session store`
(`d1ff8fcc-cf4e-4478-96e9-e80edc1f1450`).

The stored Nostr event was independently checked after retrieval: its computed
event hash matches its ID, its BIP-340 signature is valid, its author is the
distinct Goose identity, and its reply tag points to the explicit mention.

Separate later diagnostic runs did not finish within their observation window.
A wire trace showed a valid MCP initialize exchange followed by a complete
30-tool, 110,594-byte `tools/list` response. Reducing that response to eight
tools and 47,345 bytes did not make the later run complete. The successful
full-catalog run above and the reduced-catalog stall mean the evidence does not
support a simple tool-list-size incompatibility. Keep the intermittent startup
behavior as a diagnostic follow-up; it does not erase the verified pass.

## Reproduction and pass criterion

Expand Down
Loading