# Final-head server evidence for PR 25267

PR: [#25267](https://git.cafe/pingdotgg/t3code/pulls/25267).
HEAD: daf6e30653a135e15e7c3f7d8cda1a5f8369ddb5; base: f88b33a16de988f86782343b348631d11432ddf2.
Test SHA-256: 7f643cb44feb2c2d9860afc0ec5e6cab2c0207fdba809d438dc19100b7a35d66.
ROWS: 7/7 matrix rows captured; 4/4 requested checkpoints captured; 5/5 requested synthetic sweeps completed. Absolute-zero runtime acceptance remains unmet.

TEST: From apps/server, `vp test run src/pullRequest/PullRequestReadCache.test.ts`. Patched: 8/8 pass, exit 0. Same final test with base implementation supplied by temporary Vite pre-load plugin: 7/8 pass, retention assertion fails actual 5 / expected 0, exit 1. No worktree source was edited. Supplied check:changed log passed; it was not rerun in this evidence session.

ENVIRONMENT: Linux x86_64, machine fs-17, Node v26.12.1. Fresh owned /tmp/ev-25267, --no-seed, T3CODE_DEV_SEED=0, loopback host, server port 14813. Real reactor, PullRequestService, SQLite projection/event store, filesystem PR cache. Deterministic forge transport returns five synthetic PR summaries and null stacks, and is explicitly substituted at the provider-registry transport boundary. No live forge reads/writes or copied credentials. One synthetic project rooted at the checkout, five threads, five distinct manual links with null initial snapshots, zero provider agents started.

COMMAND: `T3CODE_DEV_SEED=0 NODE_OPTIONS='--import=/tmp/ev-25267-artifacts/instrument.mjs' vp run dev:server --no-seed --home-dir /tmp/ev-25267 --host 127.0.0.1`.
PROCESS: Captured runner PID 1687133; actual confirmed port-owner server PID 1687227, cwd /home/ubuntu/wt/pr-25267/apps/server. Inspector bound loopback on this process only. All PIDs and their ancestry are in cleanup.json; all disappeared and server port closed.

COUNT METHOD: In-memory Node module hook registers WeakRefs to the actual `groups` Maps allocated by PullRequestSyncReactor.sweep. Probe stores no strong Map references. `completed` is set after normal sweep body return and sampling follows real reactor.drain. Each successful round awaited the persisted non-null thread.pull-request-link-updated event, then worker drain. Each capture releases inspector object-group references, crosses a CDP job boundary and runs HeapProfiler.collectGarbage before dereferencing. SIGUSR2 writes a local heap snapshot, and the driver awaits the server's completed-write log. Cache and server remain alive throughout measurement. Published heap-path.mjs follows each probe WeakRef's weak target and computes shortest strong root paths while excluding all weak edges; no full heap is published.

CAPTURE round=0: active=0, retained_completed_groups=0, completed_requested=0, completed_all=3, summary_reads=0, stack_reads=0, invalidations=0, cache_gets=0, uptime_s=160.520, heap_used_bytes=185292936, rss_bytes=1159888896, local_snapshot=server-1687227-2026-10-26T03-22-58.837Z.heapsnapshot.
CAPTURE round=1: active=0, retained_completed_groups=1, completed_requested=1, completed_all=4, summary_reads=1, stack_reads=1, invalidations=1, cache_gets=2, uptime_s=169.270, heap_used_bytes=186177808, rss_bytes=1399042048, local_snapshot=server-1687227-2026-10-26T03-23-07.582Z.heapsnapshot.
CAPTURE round=3: active=0, retained_completed_groups=1, completed_requested=3, completed_all=8, summary_reads=3, stack_reads=3, invalidations=3, cache_gets=6, uptime_s=279.014, heap_used_bytes=186853488, rss_bytes=1301659648, local_snapshot=server-1687227-2026-10-26T03-24-57.326Z.heapsnapshot.
CAPTURE round=5: active=0, retained_completed_groups=1, completed_requested=5, completed_all=10, summary_reads=5, stack_reads=5, invalidations=5, cache_gets=10, uptime_s=286.659, heap_used_bytes=187269552, rss_bytes=1404903424, local_snapshot=server-1687227-2026-10-26T03-25-04.970Z.heapsnapshot.

RUNTIME: Final totals are 5 successful requested sweeps, 5 successful summaries, 5 successful null stack reads, 5 actual PR-cache invalidations, 10 actual PR-cache get calls, 5 persisted snapshots. Five timer sweeps also completed by checkpoint 5; no extra transport reads. Actual groups per requested round grew 1/2/3/4/5. Only the first requested sweep's Map survives; subsequent four have been collected. Total instrumented run about 294 seconds. Filesystem cache holds 10 PR entry files plus revisions; no prior PR keys were reread. Final heap residency query finds 10 strongly reachable request objects with 10 distinct hashed keys, corresponding to the ten PR cache files. TTL expiration did not evict those request keys; the retaining-path output contains the enumeration.

OBSERVATION: Both round-1 and final heap queries find a real strong retaining path: GC global handles -> Database -> closure/context.prepareCache -> map.backing -> EntryImpl.fiber -> fiber.cache.stackFrame -> parent/lazy-stack closures -> closure context.groups -> actual Map. The query does not prove this is the only path. No retained map is subtracted or dismissed as measurement noise. Absolute zero retained groups was not established; this server proof is qualified accordingly.

FRICTION: The first link attempt used invalid source='linked'; the event store rejected it and it contributed no successful sweep. Corrected driver uses 'manual'. Initial zero assertion stopped after checkpoint 1; resumed same owned server at round 2 after identifying the survivor. Runtime JSON's resumed seed line corrects the original driver's static links:0 to the actual 1 link already persisted. Three startup/empty timer sweeps precede the retained first requested sweep; two later timer sweeps read no PR keys.
FRICTION: Capture/investigation crossed the one-minute timer and 60-second value TTL, but no earlier PR keys were reread. Files and in-memory request residency are reported separately, not inferred from RSS.
UNVERIFIED: Live forge/auth integration, non-null stacks/stack UI, actions/mutations, other refresh entry points, browser/desktop/mobile/relay/tunnel E2E, multi-hour plateau, 512-entry capacity, pruning, and absence of other retaining paths. Snapshot overhead makes these RSS figures unsuitable for production memory comparison.

CLEANUP: SIGTERM only the recorded runner and its recorded descendant PIDs, after confirming server cwd and port ownership. Every recorded PID disappeared and port 14813 closed. Worktree remains clean at captured HEAD. No PR state/comment/watch/push/merge action. No live userdata read/copied/written. No raw authentication log, inspector address, database, or heap dump is in the upload set.
