# Independent pass2 auditor transcript

Audited [#25267](https://git.cafe/pingdotgg/t3code/pulls/25267) read-only in /home/ubuntu/wt/pr-25267 on 2026-10-26 UTC.
HEAD daf6e30653a135e15e7c3f7d8cda1a5f8369ddb5; base f88b33a16de988f86782343b348631d11432ddf2.
Original submission e0a39360d55d4533b4b06d00fe8a1c44500d54b0.

Downloaded and read all seven supplied public artifacts via curl. Each matches its corresponding /tmp/ev-25267-public file byte-for-byte. Extracted the uploaded reproduction bundle and verified every SHA256SUMS entry. Frozen base-cache.ts exactly equals git show of the pinned base cache source. final-regression.test.ts exactly equals the checkout test: SHA256 7f643cb44feb2c2d9860afc0ec5e6cab2c0207fdba809d438dc19100b7a35d66.

Read complete two-file diff against pinned base, unchanged detachStackFrame helper, real reactor sweep and persistedRead boundary. Production change materializes caller stack frames at get and invalidate, preserving existing cache/revision/locking/error paths. Original-to-final changes in these files are comment wording and replacing three GC passes with one. No source edits were made.

Reproduction uses uploaded scripts with ONLY scratch-path substitutions: /tmp/ev-25267-artifacts -> /tmp/ev-25267-audit-evidence/run and /tmp/ev-25267 -> /tmp/ev-25267-audit. Checkout path and pinned SHA unchanged; no probe, transport, completion, GC, assertion, or test logic modified. The original and adapted script copies remain available locally.

Launch: T3CODE_DEV_SEED=0 NODE_OPTIONS='--import=/tmp/ev-25267-audit-evidence/run/instrument.mjs' vp run dev:server --no-seed --home-dir /tmp/ev-25267-audit --host 127.0.0.1
Actual server Node v26.12.1 (vp selected project runtime; ambient node is v24.22.1). Fresh nonexistent audit home, no seed, no live userdata access, no copied credentials. Inspector bound loopback. Runner 1699368; server 1699456, confirmed cwd /home/ubuntu/wt/pr-25267/apps/server and port owner through ss. Driver 1700299 exited normally. Launch/test/heap-reader commands also finished.

Fixture: one synthetic project, five threads, five distinct manual PR links with initially null snapshots; zero provider agents. Deterministic summary and null-stack forge transport only; real reactor, service, SQLite event/projection state and filesystem cache. Each round awaited persisted non-null link snapshot update THEN real reactor.drain. Each capture releases inspector object group and uses a separate HeapProfiler.collectGarbage request before WeakRef dereference, followed by SIGUSR2 snapshot and completed-write log. No sleep/polling used for sweep completion. Probes hold only WeakRefs to actual groups Maps.

Independent run completed in 44.357 seconds; final measurement uptime 36.379 seconds. All five requested rounds completed promptly without resuming or rereading old keys; one startup empty all-sweep, no additional timer sweep at the final checkpoint. Five summary reads, five actual null-stack reads, five invalidations, ten get calls, five persisted snapshots.

| Checkpoint | Requested complete | All complete | Active | Retained completed Maps | Summary/stack reads |
|---|---:|---:|---:|---:|---:|
| 0 | 0 | 1 | 0 | 0 | 0/0 |
| 1 | 1 | 2 | 0 | 1 | 1/1 |
| 3 | 3 | 4 | 0 | 1 | 3/3 |
| 5 | 5 | 6 | 0 | 1 | 5/5 |

Only first requested sweep Map survives; later four Maps released while server/cache remain alive. Uploaded heap-path.mjs independently run against final audit heap: exactly one probe weak target strongly reachable, via GC global handles -> Database -> context.prepareCache -> map.backing -> EntryImpl.fiber -> fiber.cache.stackFrame -> lazy stack closures -> context.groups -> Map. Ten strongly reachable distinct hashed PR read-request keys remain. This is one demonstrated path, not exhaustive exclusion of all paths. Absolute zero is NOT proven and is contradicted by the observed survivor. RSS is not a production stability measurement.

Independent same-test controls: from apps/server, vp test run src/pullRequest/PullRequestReadCache.test.ts => 8/8 pass, exit 0. Same command with uploaded base-test.config.ts adapted only for scratch path substitutes exact frozen base cache implementation: 7/8 pass, retention regression fails actual 5 expected 0, exit 1. Same final test file in both. Existing behavior guards pass both controls. Supplied check:changed log ends all pass; not independently rerun, and remote CI is for original submission, not audited local head.

Cleanup: SIGTERM only captured runner and validated descendants 1699368, 1699374, 1699402, 1699415, 1699450, 1699456. All six confirmed absent under /proc; port 14813 closed. Driver and heap reader completed normally. Audit home removed after evidence uploads; raw auth logs/inspector metadata/heaps are not published. Worktree clean and pinned head unchanged. No commits, pushes, PR comments, watches, merge, browser or client use. PR registered to this thread as required by harness.

FRICTION: transport|Python urllib download received HTTP 403; curl succeeded for all supplied artifacts|use curl and compare downloaded bytes/hashes.
FRICTION: runtime|ambient Node v24 differs from project Node v26|record server metadata from vp-managed process rather than ambient node version.
FRICTION: attribution|GitCafe PR head/checks still identify original submission, not local final head|bind proof to exact local SHA and rerun landing gates after publishing it.

Limits: no live forge/auth, non-null stack, client, remote/relay/tunnel, multi-hour, capacity or pruning proof. These are not required for this narrow unchanged-contract server cache boundary fix. No missing scoped proof rows; no demand to fix independent SQLite cache path in this PR.
