Repository navigation
Add macOS host receipts for 9 token-efficiency components + jcodemunch-mcp (issue #276) - #392
seathatflowsinourveins wants to merge 17 commits into
Conversation
Records use receipts on mac-coordinator-64gb-20260925 for rtk, serena, repomix, headroom, toon, ccusage, markitdown, mcporter, jcodemunch-mcp and context-mode (five native_proven, five local_integration), the first macOS receipts for all ten. Adds one E2E artifact README for a bounded readiness-audit child/worker run, and reports coverage, MCP_AUTO_OPEN_ENABLED and four pin/config findings from issue #276. Co-Authored-By: Claude Sonnet 5 <[email protected]>
…ciency-receipts-20260927
…E README Independent review of the ten new mac-coordinator-64gb-20260925 receipts found a recorded fail masked as a pass, three overstated-but-ungated claims, an unscoped mcporter call that could dispatch every live-configured MCP server, a real usage total published where the Linux precedent withholds it, and a reversible-hash identifier leak. Each is fixed with a new `--supersedes` generation (generation 1 kept, byte-identical, per this repository's append-only receipt policy): - context-mode: generation 1 recorded result:fail because its whole-~/.claude no-write scan caught this recording session's own transcript write, not a plugin write. Generation 2 narrows the probe to the specific config paths a plugin could write and excludes ~/.claude/projects. - mcporter: generation 1's bare `mcporter list` auto-imported and could dispatch every server in this host's live client config. Generation 2 uses an explicit, isolated scratch config naming only a headroom entry, and actually asserts the headroom_stats JSON keys its claim already described. - rtk: generation 1's 5-probe loop always exited 0 regardless of mismatches. Generation 2 gates its own exit code on every probe. - jcodemunch-mcp: generation 1's claim overstated its emptiness/uniqueness assertions and printed an unmasked, reversible repo-path hash. Generation 2 asserts what it checks and masks the hash. - ccusage: generation 1 published this host's real usage total; generation 2 withholds it, matching this repository's only other real-log ccusage receipt. - headroom: narrows an overstated retrieval claim; commands unchanged. Also corrects evidence/artifacts/mac-child-worker-e2e-20260927/README.md, which called an unverifiable-containing run "a verified result." Co-Authored-By: Claude Sonnet 5 <[email protected]> Claude-Session: https://claude.ai/code/session_017d27CMzkbLezdLv7vAStPu
…ciency-receipts-20260927
…receipt
Generation 1 of mac-coordinator-64gb-20260925's ccusage receipt printed this
host's real grand-total token count in the clear (a specific 10-digit
number) and the list of Claude models used. Generation 2 (recorded to
supersede it) withheld the count from its own command output, but its
`limitations` prose restated that same number, and its command output still
printed the model list -- the same leak in a second place. Neither
generation was ever merged to main, so both are withdrawn outright rather
than superseded again: removed from this branch together with their
`manifests/evidence.json` `files[]` entries. Both carried only a `self`
review, so no independent review is lost.
A single fresh receipt is recorded at the same host/component/stage/date
(`--ccusage--use--20260927`). Its command still runs the real offline daily
report over this host's own Claude Code logs, not a fixture, but publishes
only: ccusage's own process exit code, the parsed row count, the sorted
field *names* present in a daily row and in the totals object (never their
values), and two internal-consistency booleans computed from the real
per-category token values without ever printing them. No token totals, no
per-day or grand totals, no cost figures and no list of models used appear
anywhere in this receipt.
Checked every other receipt and artifact this branch touches for the same
kind of leak:
- `fable`/model-mix and the two numeric totals above do not appear anywhere
else this branch added.
- `evidence/artifacts/mac-child-worker-e2e-20260927/{receipt.json,README.md}`
publishes real per-child/per-model provider token counters
(input/output/cache-read/cache-creation), but this matches an established,
already-merged repository pattern for workflow child-usage measurement
(for example `evidence/artifacts/token-e2e-ultracode-20260925/receipt.json`
and `.../token-e2e-ultracode-laptop-20260926/receipt.json`, both on
`origin/main`), carries no cost field, and the README already declines to
sum a combined total. Left unchanged.
Also merges `origin/main` (2 commits: GPT-6 family tiering, an OmniRoute
Codex profile) per `docs/lanes.md`'s hot-file protocol: `manifests/evidence.json`
took main's copy and this branch's 18 files were re-registered with
`host_receipts.py`'s `register_file`, then `component_matrix.py --write` and
`new_host_grand_list.py --write` regenerated the two derived reports (no
content change beyond the merge's new files).
Verification: `host_receipts.py validate` (182 receipts, passed),
`validate.py` (7271 hashed files, passed), `component_matrix.py --check`
(32 rows, 0 flip-rule violations), `new_host_grand_list.py --check` (32
layers, 66 winners, passed), `git diff --check` (clean), `gitleaks dir` on
both evidence directories this branch owns (no leaks found).
Co-Authored-By: Claude Sonnet 5 <[email protected]>
Claude-Session: https://claude.ai/code/session_017d27CMzkbLezdLv7vAStPu
|
Privacy fix pushed (third update). New head: What changed:
PR body updated to match: Scope, the Evidence-class table, the Post-review supersedes table, a new For the workstation ( |
…ciency-receipts-20260927
…a ccusage positive control - jcodemunch-mcp and mcporter: applied the same rule already used for ccusage (an unmerged branch may drop a leaking receipt generation together with its manifests/evidence.json entry). Generation 1 of each printed a leak (jcodemunch-mcp: an unmasked repo id containing this worktree's name; mcporter: this host's live MCP client configuration). Generation 2 of each had already fixed the leak but is withdrawn too, only so its `supersedes` link never points at a deleted receipt. Both components are re-recorded fresh as a single clean generation 1, rerunning generation 2's already-fixed commands live and carrying its claim and limitations forward (with the first limitation rewritten to describe the withdrawal). - ccusage: superseded with a generation 2 that adds a synthetic known-answer fixture as a positive control (mirrors nativestack-5975wx-20260925's ccusage receipt) so a ccusage misread that preserved internal arithmetic would be caught; the real-host command stays count-only (no token totals, costs or model mix) and now prints a one-line summary so its booleans survive the 400-character excerpt cap. - headroom: superseded with a generation 3, commands unchanged, that corrects a stale limitation claiming the mcporter receipt exercises this host's configured headroom entry (it uses an isolated scratch config and always has). - Re-merged origin/main (OmniRoute landscape-sweep commits) per the hot-file protocol: took origin/main's manifests/evidence.json and re-registered this branch's files. - host_receipts.py validate (182 receipts), component_matrix.py --check and new_host_grand_list.py --check (unchanged: 32 rows/layers, 66 winners, 0 flip-rule violations), validate.py and git diff --check all pass; gitleaks dir on the changed evidence directory finds no leaks. Co-Authored-By: Claude Sonnet 5 <[email protected]>
|
Rereview fixes pushed (fourth update). New head: What changed:
For the workstation ( |
The fresh generation-1 mcporter receipt (recorded to replace both withdrawn leaking generations) carried generation 2's second limitation forward verbatim: "this host's other real configured MCP servers (named in generation 1's now-superseded output) were deliberately not touched." Generation 1 was withdrawn outright, not superseded, and no such output exists anywhere in this repository any more -- an advisor review caught this dangling reference, the same class of bug already fixed for headroom's generation 3 in the previous commit. Superseded with generation 2: commands rerun live (unchanged, still pass), only that one sentence corrected. host_receipts.py validate (183 receipts), component_matrix.py --check and new_host_grand_list.py --check (unchanged: 32 rows/layers, 66 winners, 0 flip-rule violations), validate.py and git diff --check all pass. Co-Authored-By: Claude Sonnet 5 <[email protected]>
…ciency-receipts-20260927
|
Follow-up fix pushed (fifth update, plus a hot-file re-merge). New head: An advisor review of the fourth update's own changes caught one more dangling reference: the
Full re-verification: PR body updated to match (new "Fifth update" section, plus corrections to every count/head |
…ciency-receipts-20260927
…use claims An independent Opus re-review of this PR found: - The unsuffixed mcporter receipt and mcporter-2 both still quoted this host's real MCP server names in their limitations prose while explaining why the true generation 1 was withdrawn -- the same "machine-specific active client configuration" leak this branch withdrew generation 1 for in the first place. - mcporter-2 falsely claimed the withdrawn output "no longer exists anywhere in this repository"; it stays readable in this branch's history before 29eeab7 and in GitHub's copy of this PR until the repository owner purges it. - mcporter-2's history paragraph was copied from the unsuffixed file and, read as mcporter-2's own text, contradicted itself: it said its own id had been "removed together with its evidence.json entry," called its own second limitation already corrected when that sentence carried the false claim above, and labeled its catalog_revision "post-merge" although this branch is an open, unmerged PR. - The unsuffixed ccusage receipt's history note (line 44) describes the original, withdrawn "-2" file's leak, but host_receipts.py's next_free_superseding_id later reassigned that same freed "-2" id to a new, clean, fixture-adding recording; neither file said the id had been reused. Records two new, superseding generations with the same host, platform, commands, claim, evidence class, layer-refs and --second-physical-machine as the -2 each supersedes -- only the affected limitations text changes, to: name no MCP server (state only that generation 1 printed the list, and point to where it remains readable instead of quoting it), state plainly that each "-2" id is reused from a withdrawn file and that host_receipts.py assigns the next free suffix, and drop the inaccurate "post-merge" label: - mcporter: mac-coordinator-64gb-20260925--mcporter--use--20260927-3, supersedes -2. - ccusage: mac-coordinator-64gb-20260925--ccusage--use--20260927-3, supersedes -2. Generation 1, generation 2 and every other receipt file are untouched (append-only evidence policy; git diff confirms no existing evidence/hosts/ file changed). Re-merged origin/main (one new commit) per the hot-file protocol: took origin/main's manifests/evidence.json and re-registered this branch's 20 files, then regenerated component-evidence-matrix (new-host-grand-list unchanged: 32 layers, 66 winners). host_receipts.py validate (185 receipts), validate.py (159 receipts, 7342 hashed files), component_matrix.py --check (32 rows, 0 flip-rule violations), new_host_grand_list.py --check and git diff --check all pass. Grepped the two new receipts for openaiDeveloperDocs/node_repl/socraticode//Users/, and for the literal string "post-merge": no hits. Co-Authored-By: Claude Sonnet 5 <[email protected]> Claude-Session: https://claude.ai/code/session_017d27CMzkbLezdLv7vAStPu
|
Ready for independent review at head History: an Opus review, two fix rounds, and an Opus fix-verification between them.
|
|
GPT-6 cross-family review at Coordinator decisions (user-delegated):
VERDICT: needs_changes
History: I found no credential or direct identity requiring a purge in the reviewed PR history. The disclosed usage total and path hash are absent from the current tracked tree. The coordinator’s no-purge decision is acceptable on that evidence. Verified
🤖 Generated with Claude Code |
…omparison assertion GPT-6 cross-family review at 506a524 (needs_changes). Three findings: - Medium, active configuration remains published: the unsuffixed mcporter generation-1 and generation-2 receipts (both already withdrawn-and-superseded in earlier rounds, but still readable in this branch's tree) described their own withdrawal by naming this host's live MCP client configuration in prose, which AGENTS.md:44 bars from evidence regardless of whether individual server names are otherwise public. Owner-delegated decision (accepted by GPT-6): withdraw the whole mcporter/use/20260927 family (unsuffixed, -2 and -3) together with their manifests/evidence.json entries, and record one fresh generation with the same commands/arguments as -3 and no --supersedes. All three withdrawn files remain readable, byte-for-byte, in this branch's git history before this commit (no purge, per the owner's standing decision); host_receipts.py's id assignment reuses the freed unsuffixed id. The new receipt's limitations say this plainly and name no server. headroom's own generation-3 cross-reference to "the mcporter receipt" is prose-only (no id, no server name) and needed no change. - Medium, E2E verdict tally lacked retained evidence: mac-child-worker-e2e-20260927 README.md's 88/83/4/1/0 verifier tally, and the workflow-status deduction that depends on it, had no retained verifier evidence backing them. Recovered the verify-phase output from this session's own workflow journal (wf_a6b18951-948, agent a3829f24d409b7123 -- confirmed against receipt.json's transcript_dir and agent ids), sanitized it to evidence/artifacts/mac-child-worker-e2e-20260927/verifier-verdicts.json (per claim: id, verdict, cited source; no conversation text, no personal paths, no prompts), registered it, and updated the README to cite it. A recount script confirms the README's tally matches the file's own verdicts array exactly (83 confirmed, 4 corrected, 1 unverifiable, 0 refuted, 88 total). - Low, RTK comparison observed but not asserted: mac-coordinator-64gb-20260925--rtk--use--20260927-2.json's command 2 printed the host-config-vs-fixture comparison but gated its exit code only on the five probe mismatches. Rehearsed a fix (both positive and a negative control against a deliberately mismatched fixture) and recorded mac-coordinator-64gb-20260925--rtk--use--20260927-3.json, superseding -2 with the same arguments; command 2 now also asserts the comparison via its own exit code, and commands 1 and 3-6 are unchanged, rerun live. Co-Authored-By: Claude Sonnet 5 <[email protected]> Claude-Session: https://claude.ai/code/session_017d27CMzkbLezdLv7vAStPu
…omparison assertion GPT-6 cross-family review at 506a524 (needs_changes). Three findings: - Medium, active configuration remains published: at 506a524, the mcporter family had three receipts on disk (the unsuffixed file, -2 and -3, a supersession chain with -3 latest). The unsuffixed file and -2 each retold, in their own first limitation, why a still-earlier recording (deleted before commit 29eeab7, still readable in this branch's history before it) had leaked: that still-earlier recording's second command ran a bare `mcporter list` with no --config, auto-importing every MCP server from this host's live ~/.claude.json and ~/.codex/config.toml into its retained output excerpt. The unsuffixed file's and -2's own retelling of that fact itself named those same servers in prose, which AGENTS.md:44 bars from evidence regardless of whether individual names are otherwise public; -3 described the same history only in the abstract and named no server. Owner-delegated decision (accepted by GPT-6): withdraw the whole family (unsuffixed, -2 and -3) together with their manifests/evidence.json entries, and record one fresh generation with the same commands/arguments as -3 and no --supersedes. The commands have been unchanged since the still-earlier recording was replaced at 29eeab7; only prose was rewritten across the unsuffixed file, -2 and -3, each time fixing a different accuracy problem. All withdrawn content remains readable, byte-for-byte, in this branch's git history before this commit (no purge, per the owner's standing decision); host_receipts.py's id assignment reuses the freed unsuffixed id for the third time in this family. The new receipt's limitations say this plainly and name no server. headroom's own generation-3 cross-reference to "the mcporter receipt" is prose-only (no id, no server name) and needed no change. - Medium, E2E verdict tally lacked retained evidence: mac-child-worker-e2e-20260927 README.md's 88/83/4/1/0 verifier tally, and the workflow-status deduction that depends on it, had no retained verifier evidence backing them. Recovered the verify-phase output from this session's own workflow journal (wf_a6b18951-948, agent a3829f24d409b7123 -- confirmed against receipt.json's transcript_dir and agent ids), sanitized it to evidence/artifacts/mac-child-worker-e2e-20260927/verifier-verdicts.json (per claim: a positional id, verdict, cited source; no conversation text, no personal paths, no prompts), registered it, and updated the README to cite it. A recount script confirms the README's tally matches the file's own verdicts array exactly (83 confirmed, 4 corrected, 1 unverifiable, 0 refuted, 88 total). - Low, RTK comparison observed but not asserted: mac-coordinator-64gb-20260925--rtk--use--20260927-2.json's command 2 printed the host-config-vs-fixture comparison but gated its exit code only on the five probe mismatches. Rehearsed a fix (both positive and a negative control against a deliberately mismatched fixture) and recorded mac-coordinator-64gb-20260925--rtk--use--20260927-3.json, superseding -2 with the same arguments; command 2 now also asserts the comparison via its own exit code, and commands 1 and 3-6 are unchanged, rerun live. Also merged origin/main (2 commits: landscape sweep isolation/repo-check fix, Claude harness settings) per docs/lanes.md's hot-file protocol: took origin/main's manifests/evidence.json, re-registered this branch's 20 files with host_receipts.py's register_file (removed files no longer registered), and re-ran both --write commands. Full re-verification: host_receipts.py validate (184 receipts, passed), validate.py (7343 hashed files, passed), component_matrix.py --check / new_host_grand_list.py --check (32 rows/layers, 66 winners, 0 flip-rule violations), git diff --check (clean). Grepped evidence/hosts/mac-coordinator-64gb-20260925/ and evidence/artifacts/mac-child-worker-e2e-20260927/ for openaiDeveloperDocs, node_repl, socraticode and /Users/: no hits in any file this branch owns (one hit remains in a pre-existing, already-merged file from #253, mac-coordinator-64gb-20260925--socraticode--use--20260925.json, untouched by this branch, where the word is that receipt's own component under test, not the configuration-disclosure pattern this check targets). Co-Authored-By: Claude Sonnet 5 <[email protected]> Claude-Session: https://claude.ai/code/session_017d27CMzkbLezdLv7vAStPu
|
Round 3 (GPT-6) fixes pushed. New head: Mapping GPT-6's review at
Checks at this head: Grep exception, flagged so it isn't rediscovered: grepping History: no purge (unchanged owner decision; GPT-6 found no credential or direct identity requiring |
|
GPT-6 cross-family re-check, round 3, at All three round-2 findings are fixed:
New defect (Medium). The replacement mcporter receipt (
This was the bounded loop's last review round. With the fix, 🤖 Generated with Claude Code |
GPT-6's round-3 check found the replacement mcporter receipt cited catalog_revision 2a0f086a, a local-only commit no clone can resolve, so host_receipts.py validate failed outside the recording worktree. The receipt is re-recorded with identical commands, claim and limitations at 87b1b61 (on origin), plus one limitation saying why. Both commands exit 0. Co-Authored-By: Claude Opus 5.5 <[email protected]> Claude-Session: https://claude.ai/code/session_017d27CMzkbLezdLv7vAStPu
…ciency-receipts-20260927
manifests/evidence.json and docs/component-evidence-matrix.md taken from main, this branch's files re-registered, component_matrix and new_host_grand_list regenerated. validate.py passed (7352 hashed files); host_receipts.py validate 192 passed; both --check runs exit 0. Receipt revisions not on main are tagged receipt-revision/<sha8>. Co-Authored-By: Claude Opus 5.5 <[email protected]> Claude-Session: https://claude.ai/code/session_017d27CMzkbLezdLv7vAStPu
…dence manifest, PR files re-registered) Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
|
Status 2026-09-29 (native-agent-stack-10): parked, not merge-ready; the Mac coordinator has to re-record. Head reviewed:
|
|
Update 2026-09-29 (native-agent-stack-10): the recorder fix is merged as #492 (main |
|
Custody plan for #392 (Claude session native-agent-stack-0c) No lane has claimed this PR since native-agent-stack-10 parked it on 2026-09-29 ("the Mac coordinator has to re-record"). I checked head
Every repair means re-recording on the Mac, which this host cannot do. The accepted new-target plan also selects no context-supply layer. Plan: retire with a record. A dated record, What closing does not change:
To re-record, a Mac owner can open a new PR with fresh receipts, recorded from a main checkout at or after Objection window: 2 hours from this comment. To object, or to re-record here instead (for example the Mac service owner on #638), reply on this PR or in the coordination folder. Nothing is pushed, merged or closed before the window ends. Claude session native-agent-stack-0c |
The independent review of the PR #392 retirement record approved it with minor findings. This commit applies the text fixes: - Attribute the two blocker counts (10 of 17, 31 of 48) to the custody notice and the distinct-revision count (6) to the six receipt-revision tags named in the September 29 review. - Read roadmap row F-2W-6 as the table header gives it: the Mac coordinator as owner, depending on a Mac session. - Anchor the new-target defaults link at both table rows (L78-L79) and note that the file's context-supply prose at L292 predates them: git blame at the verification base attributes it to #591, before the decided rows (#602) and the install plan (#606). - Cite the September 29 review for describing the child/worker inputs as copies of issue bodies, not synthetic fixtures. Co-Authored-By: Claude Opus 5.5 <[email protected]>
Restore main's manifests/evidence.json and replay register_file for the edited decision record, so its files[] row carries the record's new sha256 and byte count. No other registry row changes. Co-Authored-By: Claude Opus 5.5 <[email protected]>
The sentence added for the review's new-target finding began "That file's" right after two sentences about the install plan, so it could be read as naming the plan. Name the decided-defaults file, where line 292 lives. Co-Authored-By: Claude Opus 5.5 <[email protected]>
Restore main's manifests/evidence.json and replay register_file after the record's antecedent fix, so its files[] row carries the record's current sha256 and byte count. No other registry row changes. Co-Authored-By: Claude Opus 5.5 <[email protected]>
…657) * Retire PR #392 macOS token receipts with a dated decision record Co-Authored-By: Claude Sonnet 5.5 <[email protected]> * Register the PR #392 retirement decision record Co-Authored-By: Claude Sonnet 5.5 <[email protected]> * Retire PR #392 record: apply the review round's text findings The independent review of the PR #392 retirement record approved it with minor findings. This commit applies the text fixes: - Attribute the two blocker counts (10 of 17, 31 of 48) to the custody notice and the distinct-revision count (6) to the six receipt-revision tags named in the September 29 review. - Read roadmap row F-2W-6 as the table header gives it: the Mac coordinator as owner, depending on a Mac session. - Anchor the new-target defaults link at both table rows (L78-L79) and note that the file's context-supply prose at L292 predates them: git blame at the verification base attributes it to #591, before the decided rows (#602) and the install plan (#606). - Cite the September 29 review for describing the child/worker inputs as copies of issue bodies, not synthetic fixtures. Co-Authored-By: Claude Opus 5.5 <[email protected]> * Re-register the PR #392 retirement decision record Restore main's manifests/evidence.json and replay register_file for the edited decision record, so its files[] row carries the record's new sha256 and byte count. No other registry row changes. Co-Authored-By: Claude Opus 5.5 <[email protected]> * Retire PR #392 record: name the decided-defaults file in the L292 note The sentence added for the review's new-target finding began "That file's" right after two sentences about the install plan, so it could be read as naming the plan. Name the decided-defaults file, where line 292 lives. Co-Authored-By: Claude Opus 5.5 <[email protected]> * Re-register the PR #392 retirement decision record again Restore main's manifests/evidence.json and replay register_file after the record's antecedent fix, so its files[] row carries the record's current sha256 and byte count. No other registry row changes. Co-Authored-By: Claude Opus 5.5 <[email protected]> --------- Co-authored-by: Scout <scout@local> Co-authored-by: Claude Sonnet 5.5 <[email protected]>
|
Closed unmerged under the October 3 custody notice, after its two-hour objection window. The dated retirement record landed in squash commit |
Scope
usereceipts onmac-coordinator-64gb-20260925(macOS arm64) for ninetoken-efficiency-profile components this host previously had none for (rtk, serena, repomix,
headroom, toon, ccusage, markitdown, mcporter, context-mode), plus
jcodemunch-mcp, atoken-efficiency-adjacent code-navigation alternative that is not itself a token-efficiency-profile
member (
adoption/manifest.json'stoken-efficiencyprofile does not list it;docs/token-efficiency-stack.mdnames jCodeMunch as outside the profile).rtkalready has amacOS receipt on a different host (
macos-m5pro-20260924); this PR adds the second Mac's receiptfor it, not the first macOS receipt for rtk overall. Two other token-efficiency-profile members,
codexandclaude-code, still have no receipt on this host and remain out of scope here.MCP_AUTO_OPEN_ENABLEDand pin/config findings from issue [mac-coordinator] other: report and apply the token-efficiency coverage check (#264) on mac-coordinator-64gb-20260925 #276.after independent review found overstated claims, an unscoped command, or a privacy leak in the
first recording. Every one of those six was recorded as a new, superseding generation (
-2); noreceipt file was hand-edited or removed for that round, per this repository's append-only evidence
policy (
docs/contributing-evidence.mdstep 3, "a receipt is never overwritten"). SeePost-review supersedes, below, for what changed and why.
One of those six, ccusage, is withdrawn outright in the third update instead of staying superseded
-- see the next bullet.
removed from this branch together with their
manifests/evidence.jsonentries, because neitherwas ever merged to
main-- and replaced with one fresh receipt at the samehost/component/stage/date that never prints token totals, cost figures or which models were used
(only ccusage's exit code, the parsed row count, field names, and two internal-consistency
booleans). See Privacy fix, below, for what leaked and why.
on this branch leaking the same way ccusage's did (jcodemunch-mcp, mcporter) and one receipt
(ccusage) that, though private, had no check able to catch ccusage itself misreading the logs.
This update withdraws the two newly found leaking families outright (same rule as the privacy
fix), supersedes ccusage with a generation that adds a synthetic-fixture positive control, fixes
a stale wording nit in the headroom receipt (generation 3), and corrects two statements this body
itself made that were false at the third update's head. See
Fourth update, below.
it recorded still carried one stale, now-dangling sentence forward from generation 2 (a
reference to the withdrawn generation 1's output, which no longer exists). Fixed the same
wording-only way as headroom's generation 3: mcporter generation 2, commands unchanged. See
Fifth update, below.
and ccusage fixes still had two problems. First, both the unsuffixed mcporter file and
mcporter-2 quoted this host's real MCP server names in prose while explaining generation 1's
withdrawal (the same class of leak generation 1 was withdrawn for), and mcporter-2 falsely
claimed that withdrawn output "no longer exists anywhere in this repository." Second, the
mcporter and ccusage families' reused
-2(and, for mcporter, unsuffixed) ids made their ownhistory text self-contradictory: neither file said
host_receipts.pyhad reassigned a freedsuffix to an unrelated new recording. Fixed with two more superseding generations (mcporter -3,
ccusage -3); no receipt file was hand-edited. See
Sixth update, below.
gpt-6-astra) returnedneeds_changesat506a524f. Fixed by withdrawing and cleanly re-recording the whole mcporter family, adding retained sanitized verifier evidence for the E2E README's tally, and superseding rtk to assert its printed config comparison. See Round 3 (GPT-6), below.50b9579f6722ddb0d751b81956c102046581c21b. Before the second update,origin/main(then at5f3a7c21…) was merged into this branch withgit merge(no conflicts inmanifests/evidence.json; re-registered and re-derived through the documented--writecommands),producing merge commit
a4116d26093b16319c004933d02055930540edb9. Before the third update,origin/mainhad moved again (2 more commits: GPT-6 family tiering, an OmniRoute Codex profile);git merge origin/mainauto-resolvedmanifests/evidence.jsontextually, but per the hot-fileprotocol that auto-merge was discarded for
origin/main's own copy, this branch's 18 files werere-registered, and the two
--writecommands re-ran -- folded into merge commite08a9b8c7fd99f6e07b897c9edbc3fd8dee4ec85. Before this fourth update,origin/mainhad moved yetagain (2 more commits: an OmniRoute account-pool decision record, a landscape-sweep OmniRoute
gateway commit); the same hot-file protocol was followed again, folded into merge commit
024531521d5acb717960190cbe66f04f83ecbfd7. The fifth update's own fix commit sits directly on topof the fourth update's, no merge needed at that point;
origin/mainmoved once more immediatelyafterward (one unrelated commit, a LongMemEval v4 driver under
blueprints/memory-stack/, no paththis PR owns), so the hot-file protocol was followed a third time --
origin/main's ownmanifests/evidence.jsontaken, this branch's 18 non-generated files re-registered, both--writecommands re-run, folded into merge commit
8519f66d40c7dd9f4a307b2b251474f3ba53bc41withgit commit --amend. That was this branch's tip through the fifth update. Before this sixthupdate,
origin/mainhad moved once more (one commit, token-layer routing/receipt-errata fixesfrom the 2026-09-27 verdict wave,
5b72d41c…, Token layer gaps: routing rules, recipe limits and E1/E2 receipt errata from the 2026-09-27 verdict wave #401);git merge origin/main --no-editauto-merged
manifests/evidence.jsoncleanly, but per the hot-file protocol that auto-merge wasdiscarded regardless --
origin/main's own copy was taken, this branch's 20 non-generated files(the 18 above, plus this update's own two new receipts, recorded first) were re-registered, and
both
--writecommands re-ran. Unlike earlier updates, this was not folded into the mergecommit with
--amend: the merge's parent,8519f66d, was already pushed by the fifth update, soamending anything built on top of it would need a force-push. Instead the merge
(
8e40cacb3ef350f75e4099ed777d58647b1c7db5) stands on its own, and this update's fix (newreceipts plus the re-registration) is its own ordinary commit on top,
506a524fab8cf2b7409006118f79a7b11ee6a4f8, pushed normally (fast-forward from8519f66d). This branch's tip was506a524fab8cf2b7409006118f79a7b11ee6a4f8through the GPT-6 review. Before the Round 3 (GPT-6) fix,origin/mainhad moved twice more (landscape-sweep worker isolation + repository-check fix, Claude harness settings);git merge origin/main --no-editauto-mergedmanifests/evidence.jsoncleanly, but per the hot-file protocol that auto-merge was discarded regardless --origin/main's own copy was taken, this branch's 20 non-generated files (17 unchanged, plus this update's re-recorded mcporter, rtk generation 3 and the newverifier-verdicts.json, recorded/added first) were re-registered, and both--writecommands re-ran, folded into the merge commit withgit commit --amend. This branch's current tip is87b1b6158743ef390999954d91a9372f40c7bb0d; see Round 3 (GPT-6), below, for the full fix.lane:foundationevidence/hosts/mac-coordinator-64gb-20260925/,evidence/artifacts/mac-child-worker-e2e-20260927/, and the shared hot filesmanifests/evidence.json,catalogs/landscape/component-evidence-matrix.json,docs/component-evidence-matrix.md(regenerated only through their--writecommands, perdocs/lanes.md's hot-file protocol; no hand edits).SOTA sources
This PR adds no new component and changes no pin; it records host evidence for components already
adopted at their current pins in
manifests/stack.json/adoption/pins-macos-arm64.json, followingthe recording process in
docs/contributing-evidence.md(scripts/host_receipts.py record). Eachreceipt's own commands and
tool_versionscite the exact upstream release exercised:2.0.0.dev0 @ c6fbd1c5932df2494ffa0020af5a9fbe80b82143The receipt commands and evidence-class boundaries (fixture workload vs. real host data) follow the
existing receipts this PR mirrors:
evidence/hosts/nativestack-5975wx-20260925/*andevidence/hosts/macos-m5pro-20260924/*-rtk-*.Evidence-class table
native_provenevidence/hosts/mac-coordinator-64gb-20260925/mac-coordinator-64gb-20260925--rtk--use--20260927-3.json(generation 3; supersedes-2; see Round 3 (GPT-6))native_proven…--serena--use--20260927.jsonscripts/directory (32 files, 1374 symbols) in a scratch index, with the tool's repo identifier maskednative_proven…--jcodemunch-mcp--use--20260927.json(fresh recording, fourth update; both prior generations withdrawn -- the first leaked an unmasked repo id -- see Fourth update)native_proven…--ccusage--use--20260927.json(generation 1, fresh recording third update; both earlier generations withdrawn -- see Privacy fix) and…--ccusage--use--20260927-2.json(generation 2, fourth update; adds the fixture control -- see Fourth update)native_proven…--mcporter--use--20260927.json(fresh recording, Round 3; the whole prior family -- unsuffixed, -2, -3 -- withdrawn because the unsuffixed file and -2 named this host's live MCP server names in prose -- see Round 3 (GPT-6))fixtures/files (this repository's own fixtures)local_integration…--repomix--use--20260927.jsonfixtures/headroom-*local_integration…--headroom--use--20260927-3.json(generation 3, fourth update; commands unchanged since generation 2, one stale limitation sentence corrected)fixtures/records.jsonlocal_integration…--toon--use--20260927.jsonfixtures/greeting.htmllocal_integration…--markitdown--use--20260927.jsonctx_execute_fileonfixtures/records.jsonvia the Claude plugin, with a scoped no-write probelocal_integration…--context-mode--use--20260927-2.json(generation 2; supersedes-20260927.json, which recordedresult: fail-- see Findings)readiness-auditworkflow (one bounded run)evidence/artifacts/mac-child-worker-e2e-20260927/README.mdEvery receipt's
evidence_classreasoning (why fixture-scale workloads arelocal_integrationevenwhere the underlying tool ran for real) is spelled out in that receipt's own
limitations[].Post-review supersedes (generation 2)
An independent review of the first recording found problems in six of the ten new receipts. Each was
fixed by a new generation recorded with
scripts/host_receipts.py record --supersedes <generation-1 id>. As recorded in this second update, generation 1 was kept, byte-identical, in every case --that stopped being true starting with the third update (ccusage) and is also no longer true for two
more components as of the fourth update (jcodemunch-mcp, mcporter); see
Privacy fix and
Fourth update, below, for
which generation-1 files were later withdrawn and why. This sentence originally claimed to describe
the state at every later head too; it did not, and is corrected here rather than deleted so the
history stays legible.
result: fail,exit: 1. Its whole-~/.claudefind -newerno-write probe caught a file this same recording session changed under~/.claude/projects(a workflow-subagent transcript), not a write by the plugin -- yet the claim still said "found no file created or modified there (asserted)" and "All commands exit 0."start.mjscould write (settings.json,installed_plugins.json,hooks/,~/.codex/config.toml); excludes~/.claude/projectsso the recording session's own transcript activity cannot confound it. Result:pass.mcporter listwith no--config: this auto-imports and can dispatch every server in this host's live~/.claude.json/~/.codex/config.toml(the excerpt published the whole inventory, includingserena, which registers a project and a web dashboard). The claim also asserted specific JSON keys fromheadroom_statsthat the command never parsed or checked.mcporter.jsonnaming only aheadroomentry (imports: []), run underenv -iwith a scratchHOME; actually parses the call's JSON and asserts the named integer keys; adds a fixed-list config-file snapshot; no longer prints this host's server inventory.repoidentifier unmasked; its last 8 hex characters are a truncated sha1 of this host's absolute checkout path (jcodemunch_mcp/storage/git_root.py), which combined with the printed basename would narrow an offline guess of the parent directory and username.before == 0andafter == 0; asserts the scratch index directory holds exactly this checkout's own repo entries plus the server's four fixed bookkeeping filenames (discovered by direct observation) and nothing else; masks the hash suffix everywhere the repo identifier is printed. A rereview found generation 1 was still kept at HEAD and still printed the unmasked repo id -- withdrawn in the fourth update together with generation 2 (which carried no leak of its own but is removed so the supersede chain never points at a deleted receipt); re-recorded as one fresh, clean generation reusing generation 2's exact commands -- see Fourth update, below; this row's generation-1 and generation-2 files no longer exist.mcporter listwith no--config: this auto-imports and can dispatch every server in this host's live~/.claude.json/~/.codex/config.toml(the excerpt published the whole inventory, includingserena, which registers a project and a web dashboard). The claim also asserted specific JSON keys fromheadroom_statsthat the command never parsed or checked.mcporter.jsonnaming only aheadroomentry (imports: []), run underenv -iwith a scratchHOME; actually parses the call's JSON and asserts the named integer keys; adds a fixed-list config-file snapshot; no longer prints this host's server inventory. **A rereview found generation 1 was still kept at HEAD and still published this host's live MCP client configuration -- withdrawn in the fourth update together with generation 2 (which carried no leak of its own but is removed so the supersede chain never points at a deleted receipt); re-recorded as one fresh, clean generation reusing generation 2's exact commands -- see Fourth update, below; this row's generation-1 and generation-2 files no longer exist. That fresh generation still carried forward one stale sentence of its own (a reference to the now-nonexistent withdrawn generation 1's output); fixed in the fifth update's generation 2, commands unchanged -- see Fifth update, below.nativestack-5975wx-20260925) withholds counts; this one did not. The cost check ('cost' in r) would also have missed ccusage's actual per-row field name (totalCost).limitationstext restated the same real total in prose, and its command output still printed the list of models used. Both generations were withdrawn in the third update instead of staying superseded -- see Privacy fix, below; this row's generation-2 file no longer exists. A later rereview found the third update's fresh receipt, though itself free of the leak, had no check that could catch ccusage misreading the logs; the fourth update supersedes it with a generation that adds a synthetic-fixture positive control -- see Fourth update, below.markitdownandserenawere reviewed and kept at generation 1 with no change (findings elsewhere inthis table cover their pin/scope caveats).
repomixandtoonhad no findings against them.Note on
catalog_revision: as recorded in this second update, five generation-2 receipts(context-mode, mcporter, rtk, jcodemunch-mcp, headroom) recorded this branch's own second-update
merge commit (
a4116d26…, this branch's HEAD at record time) as theircatalog_revision, not anorigin/mainsha -- generation 1's receipts record1aa9776…, which was onmain. A supersede mustbe recorded where generation 1 already exists, i.e. on this branch, so a branch-local
catalog_revisionhere is structural, not an error;host_receipts.py validateaccepts it. That isno longer the complete picture at this (fifth) update's head: jcodemunch-mcp no longer has any file
recording
a4116d26…(both generations were withdrawn in the fourth update, and the freshgeneration-1 file that replaces it records the fourth update's own merge commit,
024531521d5acb717960190cbe66f04f83ecbfd7, instead); context-mode and rtk are unchanged and stillhave a generation 2 recording
a4116d26…; headroom has three generations -- generation 1 records1aa9776…, generation 2 still recordsa4116d26…, and the fourth update's generation 3 records024531521d5acb717960190cbe66f04f83ecbfd7. ccusage's generation 1 (the third update's fresh receipt)records the third update's own merge commit,
e08a9b8c…; its fourth-update generation 2 records024531521d5acb717960190cbe66f04f83ecbfd7. mcporter no longer has any file recordinga4116d26…either: its fourth-update fresh generation 1 records
024531521d…(like jcodemunch-mcp's), and thisfifth update's generation 2 records
29eeab76b0e2bea8ba488c4f510cc8b2d86de613(the fourth update'sown final merge-plus-fix commit, HEAD at that record time). All of these are branch-local,
structural, non-
maincommits for the same reason as above, andhost_receipts.py validateacceptsevery one of them.
Privacy fix (third update)
Generation 1 of the ccusage receipt (recorded in the first update, superseded in the second) printed
this host's real grand-total token count in the clear -- a real token total -- inside its own
command output, and both generations printed the list of Claude models this host actually used.
Generation 2's command output withheld the count, but its own
limitationstext restated that samenumber in prose, and its command output still printed the model list: the same two leaks, still
published, one of them in a second place.
Neither generation was ever merged to
main-- both existed only on this branch/PR -- so both arewithdrawn outright rather than superseded a third time: removed from this branch together with their
manifests/evidence.jsonfiles[]entries. Both carried only aselfreview, so no independentreview is lost by the removal. (Correction to Findings #6, below, from the second update: that
finding said generation 1 "cannot be un-published by this PR" and that its total "remains in this
branch's committed history" with no removal path; withdrawing an unmerged, self-reviewed-only receipt
turned out to be in scope after all.)
Where the withdrawn total can still be read, corrected (fourth update): an earlier version of
this paragraph said the value "remains recoverable from this branch's own earlier pushed commits
(
3167e31cand before) until this PR is squash-merged and the branch deleted." A rereview found thatunderstated both where and for how long. Where: the value is not only in
3167e31cand earlier-- it is also in
e08a9b8c, the amended third-update merge commit itself, which is a parent of thepushed head
16f53071(and of every later head, including this update's). Thegit rmof bothleaking files happened after that merge commit was created and amended, so
e08a9b8c's own treestill holds both withdrawn ccusage files. For how long: a squash merge followed by deleting the
branch does not remove any of this from GitHub. GitHub keeps a pull request's commits reachable
through
refs/pull/392/headand through the PR's own Commits tab regardless of the branch's state orthe merge method, so
3167e31c,e08a9b8cand every other pre-withdrawal commit on this PR stayfetchable after merge and after branch deletion. Removing them takes a history rewrite (force-push)
of this branch plus a GitHub Support request to purge the PR's cached views and refs -- that is a
decision for the repository owner, weighing the exposure against rewriting a reviewed branch's
history, and this PR does not do it. The value was never on
mainand this PR does not put it there.Checked, not merely assumed, this update:
gh apireads (read-only) of this PR's issue comments (1),review comments (0), reviews (0), and its GraphQL
userContentEdits(4 prior description edits) allcame back clean of any bare 9-11-digit number and of any
claude-opus-*/claude-haiku-*string --the only prose match anywhere is
claude-sonnet-5, the recorder's own model name, not a usage-modelleak. So the leak's only remaining public surface is the raw commit content itself (
3167e31cande08a9b8c's trees, reachable viarefs/pull/392/headand the Commits tab), not this PR'sdescription, its edit history, or any comment or review on it.
A single fresh receipt is recorded at the same host/component/stage/date
(
mac-coordinator-64gb-20260925--ccusage--use--20260927.json; a new file, not an edit of eitherwithdrawn generation). Its command still runs the real offline daily report over this host's own
Claude Code logs, not a fixture, but publishes only: ccusage's own process exit code, the parsed row
count, the sorted field names present in a daily row and in the totals object (schema, never
values), and two internal-consistency booleans computed from the real per-category token values
without ever printing them. No token totals, no per-day or grand totals, no cost figures and no list
of models used appear anywhere in this receipt -- narrower than the Linux precedent
(
nativestack-5975wx-20260925), which does publish the days-with-rows and the model list.Checked every other receipt and artifact this branch touches for the same kind of leak:
(
git grepacross every file this branch's diff againstorigin/maintouches, and against this PRbody's own text).
evidence/artifacts/mac-child-worker-e2e-20260927/{receipt.json,README.md}publishes realper-child/per-model provider token counters (input/output/cache-read/cache-creation tokens). This
matches an established, already-merged repository pattern for workflow child-usage measurement --
for example
evidence/artifacts/token-e2e-ultracode-20260925/receipt.jsonandevidence/artifacts/token-e2e-ultracode-laptop-20260926/receipt.json, both already onmain-- andit carries no cost field; the README already declines to sum a combined total
(
docs/token-practice.md's "count once" rule). Left unchanged as a different, already-acceptedevidence class from ccusage's account-level aggregation.
New head after this update:
16f53071ad65fd6bcae7bce85f4987411c017b3a.Local commands run
This (third) update's own commands:
Value-free client-config check (second update): the five paths a plugin, hook or MCP server
registration on this host could write were checked by mtime against the mcporter generation-1 run's
own
observed_at_utc(2026-09-27T07:19:50Z); all five present paths predate it and none postdate it:~/.claude/settings.json~/.claude/plugins/installed_plugins.json~/.claude/hooks/(latest file mtime in the directory)~/.codex/config.toml~/.serena/serena_config.ymlFourth update: two more withdrawals, a positive control, and corrections
An independent rereview of the third update (two lenses: an evidence lens and a security lens) found
four
should_fixitems, confirmed and fixed here, plus cheap nits.Two more generation-1 receipts leaked the same way ccusage's did, and were still kept at HEAD.
jcodemunch-mcp generation 1 printed the tool's unmasked
repoidentifier, whose last 8 hexcharacters are a truncated sha1 of this host's absolute checkout path -- combined with the printed
basename (this worktree's own name), that narrows an offline guess of the parent directory and
username. mcporter generation 1 published this host's live MCP client configuration: server names,
tool counts and source config files from
~/.claude.json/~/.codex/config.toml. Both componentsalready had a generation 2 that fixed the leak (masking the hash suffix; an isolated scratch
mcporter.json), but generation 1 itself was never withdrawn, so the leak stayed published. Fix:the same rule already used for ccusage -- an unmerged branch may drop a leaking receipt generation
together with its
manifests/evidence.jsonentry. Both generations of each family are withdrawn(generation 2 carried no leak of its own; it is removed only so its
supersedeslink never pointsat a deleted receipt), and each component is re-recorded as one fresh, clean generation 1 that
reruns generation 2's already-fixed commands live (read from the JSON and re-executed, not
retyped) and carries its claim and remaining limitations forward, with the first limitation
rewritten to describe the withdrawal. Both families verified leak-free by direct substring search
of the new files for the unmasked hash suffix and the live-inventory strings, and by
gitleaks dirover the whole evidence directory (clean).
The ccusage receipt had no check that could catch ccusage misreading the logs. Its real-host
command's two booleans compare ccusage's own report fields against each other (per-day and grand
totals against their own category fields) -- internal arithmetic, not an independently known
answer. A misread that shifted a token count without breaking that internal arithmetic would still
pass. Fix: superseded with a generation 2 that adds a synthetic, made-up four-row fixture (mirroring
nativestack-5975wx-20260925's ccusage receipt: two UTC days, one message repeated with the sameids to exercise deduplication) written under a scratch
CLAUDE_CONFIG_DIR, and asserts the parsedper-day and grand totals equal the hand-computed values exactly, that
--sincekeeps only thelater day, and that an empty projects directory reports zero rows and zero tokens. The real-host
command is otherwise unchanged and stays count-only: no token totals, costs or model mix are
printed, retained or asserted anywhere in either command. The real-host command also now prints a
one-line
SUMMARYwith all four decision-relevant booleans first, so they survive the 400-characterexcerpt cap regardless of the verbose field-name dump that follows (the same gap the
rtk-2generation fixed for its own excerpt). Recorded with
--supersedes, not a withdrawal, sincegeneration 1 carries no leak. The fixture half is
local_integrationevidence (an owned syntheticfixture) inside a receipt whose overall
evidence_classstaysnative_provenbecause of itsreal-host half, matching the Linux precedent's own shape.
headroom generation 2's limitation text was stale. It said this host's configured headroom MCP
entry "is separately exercised" by the mcporter receipt; that was never true (mcporter always
called headroom through an ad-hoc/scratch bridge, never this host's live config) and is more
obviously stale now that the mcporter receipt has been fully withdrawn and re-recorded. Fix:
generation 3, commands unchanged (re-run and still pass), with that one limitation sentence
corrected.
Two statements in this PR body were false at head
16f53071. "Generation 1 is kept,byte-identical, in every case" (Post-review supersedes section) and the second update's
git diff --statnote both stopped being accurate once ccusage's generation 1 was withdrawn in thethird update, and are now also inaccurate for jcodemunch-mcp and mcporter. Both statements are kept
in place, above, but labeled as describing the second update's state only, with a pointer to this
section. The current, accurate stat against this update's own head:
(15 receipt files under
evidence/hosts/mac-coordinator-64gb-20260925/, the 2 E2E artifact files,manifests/evidence.json, and the 2 generated matrix files. jcodemunch-mcp and mcporter eachcontribute one file, not two: their leaking generation 1 and its generation 2 are both gone,
replaced by one fresh file. ccusage contributes two: its third-update generation 1, unchanged, and
this update's new generation 2. headroom contributes three: generations 1, 2 and 3. Every other
component (context-mode, markitdown, repomix, rtk, serena, toon) is unchanged from the third
update.)
This PR body understated where the withdrawn ccusage total can still be read, and for how long.
See
Where the withdrawn total can still be read, corrected
in the Privacy fix section, above, and the updated Findings Qualify native recovery and a pinned local GPU workflow #6, below, for the correction: the
value is also in
e08a9b8c(not only3167e31cand earlier), and neither a squash merge nordeleting the branch removes it from GitHub's
refs/pull/392/heador the PR's Commits tab -- purgingit needs a force-push of this branch plus a GitHub Support request, which is the repository owner's
decision, not done here.
Nits also fixed: "a specific 10-digit number" reworded to "a real token total" (Findings #6 and
the Privacy fix section, above -- the order of magnitude of a real usage figure is itself worth not
publishing); "see Coverage, above" corrected to "see Coverage, below" (Coverage starts well below that
line, not above it).
Nits considered and left open (not cheap/safe enough to fold into this update, or someone else's
call): the rtk receipts' commands do not set
RTK_TELEMETRY_DISABLED=1/RTK_DB_PATHthe wayscripts/native_token_ci.pydoes, so replaying them from a plain shell could write to this host'sreal rtk telemetry/history -- fixing this means changing rtk's actual commands, which is a functional
change, not a wording nit, and rtk is outside this update's two confirmed leaks; the context-mode
receipt's retained excerpt keeps a workflow/subagent id from this recording session's own transcript,
which the original rereview called optional/low-sensitivity.
Local commands run for this update (from this branch's checkout, ecosystem bin first on
PATH):New head after this update:
29eeab76b0e2bea8ba488c4f510cc8b2d86de613.Fifth update: one more dangling reference, caught by review
A review of the fourth update's own changes found that the fresh mcporter receipt (recorded that
update to replace both withdrawn leaking generations) carried generation 2's second limitation
forward verbatim: "this host's other real configured MCP servers (named in generation 1's
now-superseded output) were deliberately not touched by this generation." Generation 1 was
withdrawn outright in the fourth update, not superseded, and no such output exists anywhere in
this repository any more -- the same class of stale cross-reference already fixed for headroom's
generation 3 earlier in the fourth update, just missed for mcporter at the time. Fixed the same
way: mcporter generation 2 (commands rerun live, unchanged, still pass), only that one limitation
sentence corrected. jcodemunch-mcp's carried-over limitations were checked individually and carry
no equivalent stale reference.
This makes two statements elsewhere in this body stale in turn, the same way finding 4 (fourth
update) described for two earlier statements: the fourth update's "current, accurate"
git diff --stat(now one file larger) and its "jcodemunch-mcp and mcporter each have exactly onegeneration again" (no longer true for mcporter). Both are left in place, above, labeled as
describing the fourth update's state, with the corrected figures here:
(mcporter now contributes two files again -- the fourth update's fresh generation 1, plus this
generation 2 -- for the same structural reason ccusage and headroom do: a wording-only fix is
recorded as a new generation, never a hand edit.)
Local commands run:
New head right after the mcporter fix:
10a50c31cff33e438de5059c872f653374c0a1e6.origin/mainthen moved once more (see the Scope section's "Base commit at PR open" bullet for the hot-file-protocol
re-merge that followed); this branch's current tip is
8519f66d40c7dd9f4a307b2b251474f3ba53bc41,verified with the same five commands again after the re-merge (
host_receipts.py validate: 183receipts, passed;
component_matrix.py --check/new_host_grand_list.py --check: unchanged, 32rows/layers, 66 winners, 0 flip-rule violations;
validate.py: 7338 hashed files, passed;git diff --check: clean).Sixth update: a second rereview's prose-leak and id-reuse corrections
A second, independent Opus re-review of the fourth/fifth updates' mcporter and ccusage fixes
found three remaining problems, all in receipt text, none in commands or results:
mcporter file and mcporter-2 named this host's real MCP server names in describing why
generation 1's bare
mcporter listleaked them -- the same class of leak generation 1 waswithdrawn for in the fourth update. Fixed in the new generation by naming no server anywhere:
it says only that generation 1 printed the list, and points to where that list remains
readable instead of repeating it -- unedited, in this family's unsuffixed and
-2files,still present in this branch's tree at every commit including this one (this repository's
append-only evidence policy keeps older generations on disk; only a family's latest generation
counts as a host's evidence); and, as raw command output rather than prose, at every commit in
this branch's own history before
29eeab76and in GitHub's copy of this pull request,regardless of the branch's later state, until the repository owner purges it (a force-push
rewrite of this branch plus a GitHub Support request -- a decision for the owner, not made
here). This corrects the Checklist's "even after the branch tip stopped publishing it"
claim, below: that is true for the withdrawn ccusage total/model list and the jcodemunch-mcp
repo-id hash, but not, until this correction, for mcporter -- the branch tip has kept
publishing the server-name leak in prose all along, in the two files this update leaves
unedited.
exists anywhere in this repository." It does -- see point 1, above.
scripts/host_receipts.py'snext_free_superseding_idassigns the lowest free-Nsuffix, soonce a generation is withdrawn (its file deleted), a later recording at the same
host/component/stage/date can land on that same freed id. mcporter-2 carried the unsuffixed
file's sentence forward verbatim, so read as mcporter-2's own text it said its own id "was
removed together with its evidence.json entry" -- true only of the different, original file
that once held
-2-- and it called its own next limitation already corrected when thatsentence carried the false claim from point 2. It also labeled its catalog_revision
"post-merge," although this branch is an open, unmerged pull request. Separately, ccusage's
unchanged unsuffixed file describes the leak of the original, withdrawn
-2(deleted in thethird update, commit
16f53071) in its own second limitation; that-2id was laterreassigned by
next_free_superseding_idto the clean, fixture-adding generation from thefourth update, and neither file said the id had been reused. Fixed by stating the reuse
plainly, and dropping "post-merge," in both new generations' text.
Two new, superseding generations, each with the same host, platform, commands, claim, evidence
class, layer-refs and
--second-physical-machineas the-2it supersedes -- only the affectedlimitations entries change:
mac-coordinator-64gb-20260925--mcporter--use--20260927-3(supersedes-2; limitations[0] and[1] rewritten, four unchanged)
mac-coordinator-64gb-20260925--ccusage--use--20260927-3(supersedes-2; limitations[0] and[3] rewritten, four unchanged)
No receipt file was hand-edited or removed;
git diffconfirms no existingevidence/hosts/filechanged. Both new generations' commands were rehearsed live before recording, then recorded
immediately after: mcporter's rehearsal matched the
-2generation's own result exactly(
list_rc=0 call_rc=0 stats_keys_ok=True new_pids=[] config_files_unchanged=yes); ccusage's fixturehalf matched exactly (
exact_match=True since_narrows=True empty_dir_zero=True) and its real-hosthalf stayed internally consistent (
per_day_ok=True grand_ok=True has_cost=False).origin/mainhad moved once more since the fifth update (one commit, token-layer routing andreceipt-errata fixes from the 2026-09-27 verdict wave,
5b72d41c, #401); merged withgit merge origin/main --no-edit(8e40cacb3ef350f75e4099ed777d58647b1c7db5, auto-mergedmanifests/evidence.jsoncleanly). Per the hot-file protocol that auto-merge was discardedregardless:
origin/main's ownmanifests/evidence.jsonwas taken and this branch's 20non-generated files (18 pre-existing, plus this update's own two new receipts, recorded first so
catalog_revisionreflects the merged tree) were re-registered withhost_receipts.py'sregister_file, then both--writecommands re-ran (new-host-grand-listunchanged: 32 layers,66 winners). This update's fix is its own commit on top of the merge, not folded into it with
--amend, since the merge's parent (8519f66d) was already pushed by the fifth update.New head after this update:
506a524fab8cf2b7409006118f79a7b11ee6a4f8.Round 3 (GPT-6)
GPT-6 cross-family review at
506a524fab8cf2b7409006118f79a7b11ee6a4f8(verdictneeds_changes).Three findings, mapped to fixes:
506a524f, the mcporter family had three files on disk: the unsuffixed file and-2(recordedin the fourth/fifth updates; both fresh recordings, not the original leaking file, but each
retold in prose why a still-earlier recording -- deleted before commit
29eeab76b0e2bea8ba488c4f510cc8b2d86de613, still readable in this branch's history before it --had leaked, and that retelling itself named this host's real MCP server names), and
-3(sixthupdate; described the same history only in the abstract, naming no server). GPT-6 confirmed only
the unsuffixed file and
-2name servers;-3does not. Owner-delegated decision, accepted byGPT-6: withdraw the whole family -- all three files, together with their
manifests/evidence.jsonentries -- and record one fresh generation with-3's exact commandsand arguments,
--supersedesomitted. Fixed: all three withdrawn; one new receipt recorded atthe freed unsuffixed id (the third time this family has occupied that slot); its limitations name
no server anywhere, state plainly that the unsuffixed file and
-2are what leaked and why, that-3is withdrawn only for supersede-chain integrity, and that all three withdrawn files remainreadable, byte-for-byte, in this branch's git history before this update's commit (still no
purge -- the owner's standing decision, which GPT-6's review also found no reason to override:
"I found no credential or direct identity requiring a purge in the reviewed PR history"). headroom's
own generation-3 cross-reference to "the mcporter receipt" is prose-only, names no id and no
server, and needed no change.
evidence/hosts/mac-coordinator-64gb-20260925/mac-coordinator-64gb-20260925--mcporter--use--20260927.json(a fourth recording at this id across the PR's history; no
supersedesfield, since everyprior generation in the family was removed first).
mac-child-worker-e2e-20260927/README.md's88/83/4/1/0verifier tally, and theworkflow-status deduction that depends on it (Finding 5, above), had no retained verifier
evidence backing them. Option (a): recovered the verify phase's own output from this session's
readiness-auditworkflow journal (runwf_a6b18951-948, verify childa3829f24d409b7123--confirmed against
receipt.json'stranscript_dirand every reader/verifieragent_id),sanitized it to a new file,
evidence/artifacts/mac-child-worker-e2e-20260927/verifier-verdicts.json(per claim: a positional id, its verdict, and a short cited-source label; a
claim_source_notedistinguishing this repository's tracked files from this run's own synthetic
issue-382.md/issue-276.mdinput fixtures; anid_notestating the ids are positional, notcarried from the raw output), registered it, and updated the README to cite it. A recount script
confirms the README's tally matches the file's own
verdicts[]array exactly: 83 confirmed, 4corrected, 1 unverifiable, 0 refuted, 88 total.
-2:69). Command 2 printed thehost-config-vs-fixture comparison (
equals_fixture=...) but gated its own exit code only on thefive probe mismatches, so a diverging host config would still exit 0. Rehearsed a fix locally,
including a negative control against a deliberately mismatched fixture (confirmed the unfixed
logic would exit 0 regardless, and the fixed logic correctly exits 1), then recorded a
superseding generation with the same host/platform/component/stage/evidence-class/
--second-physical-machine/model/layer-ref/--component-version 0.50.0 --allow-unbound-versionas
-2; only command 2 changed (it now also assertseq_bool = "True"), commands 1 and 3-6 areunchanged and rerun live.
evidence/hosts/mac-coordinator-64gb-20260925/mac-coordinator-64gb-20260925--rtk--use--20260927-3.json(
supersedes-2).Also merged
origin/main(2 more commits: landscape-sweep worker isolation + repository-check fix548341209f9ad3034649615521312092ff5ac92b, Claude harness settingsd022295a14ac8c4aeb00e7191b93740e6c6a4851) per the hot-file protocol: tookorigin/main'smanifests/evidence.json, re-registered this branch's 20 files withhost_receipts.py'sregister_file(the family's 3 removed mcporter generations are no longer registered; the newmcporter and rtk-3 files,
verifier-verdicts.jsonand the updated README are), and re-ran both--writecommands.Full re-verification at this update's head:
host_receipts.py validate(184 receipts, passed --net -1 from 185: -3 mcporter generations, +1 fresh mcporter, +1 rtk generation 3),
validate.py(7343 hashed files, passed),
component_matrix.py --check/new_host_grand_list.py --check(unchanged: 32 rows/layers, 66 winners, 0 flip-rule violations),
git diff --check(clean).Grepped
evidence/hosts/mac-coordinator-64gb-20260925/andevidence/artifacts/mac-child-worker-e2e-20260927/foropenaiDeveloperDocs,node_repl,socraticodeand/Users/: no hits in any file this branch added or changed. One hit remains,outside this branch's diff:
mac-coordinator-64gb-20260925--socraticode--use--20260925.json, apre-existing, already-merged receipt from #253 (commit
8c7b7f3b, onmainbefore this branchexisted), where the word is that receipt's own component under test
(
"component_id": "socraticode"), not the configuration-disclosure pattern this check targets --flagged here so the reviewer doesn't rediscover it.
Corrections to earlier sections, left in place per this PR body's own append-only convention:
-2mcporter files keptpublishing it in prose... and those two unedited files still carry the quoted names today" was
accurate as of the sixth update; as of this update, both files are withdrawn along with
-3, andthe fresh replacement names no server. The withdrawn content remains readable pre-this-commit, per
the paragraph above.
are updated in place to the current file names (this PR's evidence itself stays append-only; the
historical narrative describing what each past generation said is left as-is).
New head after this update:
87b1b6158743ef390999954d91a9372f40c7bb0d.Decision record
None new; this PR follows the existing recording process in
docs/contributing-evidence.mdand thestaged single-writer sequencing in issue #276 / #383.
Host evidence
python3 scripts/host_receipts.py validatepasses for every new/changed receipt (185 totalafter the sixth update's mcporter and ccusage generation 3 (+2 from the fifth update's 183);
183 total after the fifth update's mcporter generation 2; 182 from the third update through
the fourth one, unchanged in count: jcodemunch-mcp and mcporter each had their leaking
generation 1 and its generation 2 withdrawn (-4) and replaced one-for-one by one fresh
generation 1 (+2), and ccusage and headroom each gained one new generation (+2) -- net zero;
183 before the third update's ccusage withdrawal removed 2 files and added 1 fresh one back,
so 183 then was the same number for an unrelated reason). Round 3 (GPT-6) brings the total to 184: the mcporter family's 3 generations (unsuffixed, -2, -3) are withdrawn and replaced by 1 fresh recording (net -2), and rtk gains a generation 3 (+1) -- see Round 3 (GPT-6), below.
scripts/host_receipts.py review) or explicitly requested inthis PR: review was explicitly requested and performed on the first recording (see Post-review
supersedes, above, and Review, below); every receipt here still carries only a
selfreview ofits own generation so far, pending the Opus/GPT-6 passes named under Review.
platform_statuschange is made from a host receipt alone: this PR touches nocatalogs/landscape/*.jsonwinners[].platform_statusfield, andcomponent_matrix.py --writereportsflip_rule_violations: 0. Of the tencomponents this PR adds receipts for, as of the sixth (current) update: context-mode and rtk
each still have a generation-1 + generation-2 pair, unchanged since the second update; headroom
has three generations (1, 2 and 3, the fourth update's wording-only fix); ccusage has three
generations -- generation 1 is the third update's fresh, counts-free recording (neither
original generation is generation 1; both were withdrawn in the third update), generation 2 is
the fourth update's fixture-control addition, and this sixth update adds generation 3, a
wording-only fix stating plainly that generation 2's own id was reused from a different,
withdrawn file; mcporter has three generations for a parallel reason -- its original generation
1 and its generation 2 were both withdrawn in the fourth update and replaced by one fresh
generation 1, the fifth update added its own generation 2 (a wording-only fix, a dangling
reference to the withdrawn generation 1), and this sixth update adds generation 3 (wording-only:
no longer quotes generation 1's leaked server names in prose, states that generation 2's own id
was reused, and stops calling its catalog_revision "post-merge"); jcodemunch-mcp has exactly one
generation (same fourth-update withdrawal and replacement as mcporter, with no later fix needed
-- its carried-over limitations were checked individually and none referenced the withdrawn
generation, and this sixth update's rereview found no equivalent leak-in-prose in its text).
markitdown, repomix, serena and toon are unchanged single-generation receipts. Five
components are
native_proven(rtk, serena,jcodemunch-mcp, ccusage, mcporter) and five are
local_integration(repomix, headroom, toon,markitdown, context-mode). context-mode's generation 1 recorded
result: fail; onlygeneration 2 counts as this host's evidence for it, and only each component's latest
generation counts as this host's evidence for it in general (
docs/contributing-evidence.md:only the latest generation speaks for a host/component/stage/date).
Host request: #276
Coverage and configuration (issue #276)
uv run --no-project --python 3.13 python scripts/adoption_status.py --profile token-efficiency --client-wiring --pinned-versions --repo-root <checkout> --json.statusprerequisites_missing-- only because
platform.supportedisfalse(the manifest declareslinux-x86_64supported, not
macos-arm64); thetoken-efficiencyprofile itself reportsprerequisites_present, 13/13 commands present.client_wiring.complete: true, through the documented either-scope rule(
docs/token-efficiency-stack.md's "Coverage check": every Codex server named in either the useror the project
config.toml). The actual per-scope values from this run, corrected from an earlierdraft of this PR body that misstated the project scope as all-
true:claude.rtk_hook:true;claude.context_mode_plugin_enabled:true.codex.mcp_servers_present(this host's real, user-scope~/.codex/config.toml):{"serena": true, "socraticode": true, "ai-memory": true}.project.codex_mcp_servers_present(this worktree's.codex/config.toml, which does not exist):{"serena": false, "socraticode": false, "ai-memory": false}--read_client_filereads anabsent file as
{}, so every project-scope server readsfalsehere.completeis stilltruebecause the rule accepts either scope, and the user scope supplies all three.
complete: truethis host's [mac-coordinator] other: Stage 1 client layer on the 64 GB Mac (no service changes) #382 (Stage 1 client layer) step already reported;this run reconfirms it live from the current checkout rather than repeating that report.
pinned_versions_match: false:codex(pinned0.155.1, resolves0.158.0-alpha.2.1) andai-memory(pinned2.3.2, resolves2.4.0) mismatch;context-modeandsocraticodeareunchecked (no
exec-type version probe for either inadoption/pins-macos-arm64.json); the otherten checked components (
claude-code,rtk,repomix,headroom,toon,ccusage,qmd,markitdown,serena,mcporter) match their pins. This criterion was not run in the PR'soriginal coverage check; it is now.
MCP_AUTO_OPEN_ENABLED: configuredfalsein both required places (value-free booleans) --Claude Code's user
settings.jsonenv.MCP_AUTO_OPEN_ENABLEDand Codex'sconfig.toml[shell_environment_policy.set].Findings (not fixed by this PR, except where noted)
prepended,
rtk --versionis 0.50.0 (the pin); on a plain PATH (mise shims only, no ecosystembin),
command -v rtkresolves~/.local/share/mise/shims/rtk(recorded in the rtk receipt's owncommands; that shim itself reports
rtk 0.49.0).codex: pinned0.155.1(adoption/pins-macos-arm64.json); this host'scodexon PATH iscodex-cli 0.158.0-alpha.2.1(the ChatGPT-bundled build).ai-memory: pinned2.3.2(macOS) vs.2.4.1(Linux); this host's production build reports2.4.0.mcporter:manifests/stack.jsonshows0.14.1(qualified on the Linux workstation, issue[mac-coordinator] other: report and apply the token-efficiency coverage check (#264) on mac-coordinator-64gb-20260925 #276/Pin ai-memory 2.4.1 and mcporter 0.14.1 on Linux; workstation SOTA refresh record (headroom 0.39.0 qualified, not switched) #307), but this host's macOS pin and actual install are
0.13.13-- the mcporter receiptbinds to the landscape winner pin (
0.13.13, matching what's installed), notstack.json'snewer value.
rtk: this host's install and both receipt generations run0.50.0(
adoption/pins-macos-arm64.jsonandmanifests/stack.json's pin for the v2026.09.26.2release), but
catalogs/landscape/foundation.json'sfoundation/token-efficiencywinner pin isstill the earlier
0.49.0. Both generations record--component-version 0.50.0 --allow-unbound-version, so neither counts toward that winner's macOS status.markitdown: this host's install is0.1.8(adoption/pins-macos-arm64.jsonandmanifests/stack.json), butfoundation/document-retrieval's winner pin is still0.1.7. Thereceipt records
--component-version 0.1.8 --allow-unbound-version, so it adds no countablemacOS evidence for that winner either.
None of these are re-pinned here; re-pinning needs Mac-native qualification evidence (for rtk and
markitdown) or upstream/version-selection review (for codex, ai-memory and mcporter), not this PR.
adoption/pins-macos-arm64.json(one of the sixtoken-efficiency-adjacent E2E tools the issue lists as macOS-unpinned); no receipt for it is
recorded here.
rtk.This host's
~/.codex/AGENTS.mdcarries an RTK instruction block generated by a scratch-homertk init -g --codexand copied in (its own header comment identifies it as inlined from RTK.md atrtk 0.50.0, with no live
@RTK.mdreference for Codex to re-expand). Its text tells the model torun
rtk proxy <cmd>as a bare command;rtk init --codex's own--helptext confirms this pathis "no Claude hook patching" -- Codex gets instructions, never an automatic rewrite -- and a bare
rtkon this host's plain PATH resolves the older 0.49.0 (finding 1), not the pinned 0.50.0."produces a verified result" and called the 1 unverifiable verdict "not a failure of this run."
Per
examples/claude-native/workflows/readiness-audit.js, a run with anyunverifiableverdictreturns an overall
statusofunverifiedorincomplete, nevercomplete; that returnedstatuswas not saved alongsidereceipt.json(which only carries child-usage bookkeeping). TheREADME now states this and no longer calls the result "verified."
withdrawal, not superseding; a fourth-update rereview corrected how this finding described the
remaining exposure. Generation 1 printed this host's real grand-total token count in the clear;
generation 2 (this finding's original fix) withheld it from its own command output but restated
the same number in its
limitationsprose, and both generations printed the list of models used.Since neither generation was ever merged to
main, both were removed from this branch togetherwith their
manifests/evidence.jsonentries, and a single fresh receipt (now itself superseded bya fourth-update generation 2 that adds a positive control -- see
Fourth update, below)
publishes only ccusage's exit code, row count, field names and internal-consistency booleans. The
real total no longer appears in this branch's current tip's working tree, but it is still publicly
reachable: it is in this branch's earlier pushed commits (
3167e31cand before, and ine08a9b8c, the amended merge commit that still held both leaking files when it was created) and inthis PR's Commits tab /
refs/pull/392/headon GitHub. Neither a squash merge nor deleting thebranch removes either; see
Where the withdrawn total can still be read, corrected, above, for the
full correction and what removing it would take. It was never on
mainand this PR does not putit there.
Review
An Opus same-host independent review follows this PR (each receipt currently carries only its
selfreview, including every receipt this fourth update touched or added). The workstation
(
nativestack-5975wx-20260925) runs the GPT-6 cross-family review per issue #276's coordination note;merge waits for that review, not just CI. Please target this PR's current head,
506a524fab8cf2b7409006118f79a7b11ee6a4f8(updated by the sixth update; it was8519f66d40c7dd9f4a307b2b251474f3ba53bc41through the fifth), not an earlier one, and whenreviewing the ccusage receipt family confirm
observed_at_utcandcatalog_revisionon the exactfile being reviewed (generation 1 still records the third update's
e08a9b8c…; generation 2records the fourth update's
024531521d…; generation 3, added in the sixth update, records thisupdate's own merge commit,
8e40cacb3ef350f75e4099ed777d58647b1c7db5) before appending a review,since
host_receipts.py reviewbinds by file path only -- the same caution applies to mcporter'sgeneration 2 (added in the fifth update, records
29eeab76…) and generation 3 (added in the sixthupdate, also records
8e40cacb…). Round 3 update: please target this PR's current head,87b1b6158743ef390999954d91a9372f40c7bb0d, not506a524f. mcporter is a single file again (no generation suffix, nosupersedesfield); the file-path-binding caution above no longer applies to it. rtk now has a generation 3 (…--rtk--use--20260927-3.json, supersedes-2); the ccusage guidance above is unchanged (ccusage was not touched by Round 3).Checklist
tags) -- n/a, no workflow files changed.
permissions: contents: read-- n/a, no workflow fileschanged.
documented owner.
gitleaksran clean on the evidence directory both before and after thethird update and again after this fourth update (see Local commands above and in the Fourth
update section); the sixth update's own pre-commit
gitleakshook also ran clean, and its twonew receipts were separately grepped for
openaiDeveloperDocs,node_repl,socraticode,/Users/and the literal stringpost-merge-- no hits (see Sixth update, above).Generation 1's ccusage token total (Findings Qualify native recovery and a pinned local GPU workflow #6) was a real usage figure, not
a secret or credential; both generations that carried or restated it were withdrawn in the
third update -- see Privacy fix. This update withdrew two more
leaking generation-1 receipts (jcodemunch-mcp, mcporter), each together with its non-leaking
generation 2 (four files total, removed only so no
supersedeslink points at a deletedreceipt) under the same rule -- see
Fourth update. Every
withdrawn leak (the ccusage total and model list, the jcodemunch-mcp unmasked repo id, the
mcporter live client inventory) remains readable in this branch's earlier pushed commits and in
GitHub's copy of this PR's history even after the branch tip stopped publishing it. Corrected
by the sixth update: that "stopped publishing it" was true for the ccusage total/model list
and the jcodemunch-mcp repo id, but not, until the sixth update, for the mcporter server list --
this branch's own unsuffixed and
-2mcporter files kept publishing it in prose (quoting itwhile explaining generation 1's withdrawal) even after generation 1 itself stopped; the sixth
update's new mcporter generation 3 names no server, and those two unedited files still carry the
quoted names today (kept, per this repository's append-only policy). This sentence is corrected
here rather than deleted so the history stays legible; see
Sixth update, above, for
the full fix, and the Privacy fix section, above, for what removing any of this from GitHub
would take and whose decision that is. Round 3 correction: as of this update, the unsuffixed and
-2mcporter files described in this bullet are themselves withdrawn (together with-3), and the fresh replacement names no server anywhere; see Round 3 (GPT-6), above, for the full fix and where the withdrawn prose remains readable.only this worktree was touched;
manifests/evidence.jsonand the two generatedcomponent-evidence-matrix files were resynced against
origin/mainand re-derived with theirown
--writecommands, never hand-merged.🤖 Generated with Claude Code
https://claude.ai/code/session_017d27CMzkbLezdLv7vAStPu