# Server-only evidence: issue24460

Proof audit pass1 fixture matrix: `[]`. Covered rows: **0/0**. No render changes; required proof is the red regression plus native runtime transcript.

## Runtime observation

Before code `8176b58931`: outgoing `thread/fork` request 4 has no `excludeTurns`; its correlated response contains one historical turn. The forked native thread then completes a continuation with `FORK-CONTEXT-24460`.

After code `325c7af9f4470e224124fa703507ec6471c11473`: outgoing request 4 sends `excludeTurns: true` and `lastTurnId: 01a16f96-3fac-76a0-9299-544ecd1837b2`. Its correlated response identifies native thread `01a16f96-fd88-70c2-bd6b-56a3a398c05d` with `turns: []`. That forked thread completes its continuation with the same marker.

Both captures used a real development server and Chromium web client on Linux x86_64, Codex CLI 0.163.0, model gpt-6-astra. These environment details and the manual procedure were supplied by the lead; this capture step inspected the original protocol logs without starting a browser or server.

Manual UI procedure used by the lead:
1. Create a fresh source thread and send: `Reply with exactly FORK-CONTEXT-24460. Do not use tools or edit files.`
2. Wait for the source response to complete.
3. Fork at that completed response.
4. Send a follow-up asking the fork to repeat the prior marker.
5. Wait for completion and correlate the native fork request, response, and continuation by request ID and native thread ID.

The before and after sources are fresh, distinct threads with identical one-turn marker content. A failed synthetic experiment invalidated an older source; that source is excluded from this evidence.

## Regression evidence

`red-regression.txt` records the lead-supplied red report at code `184fa0f980`: replay cursor 5 rejects a fork frame missing `excludeTurns`; 1 failed, 80 skipped. It is a supplied report, not raw terminal output recovered here.

Lead-reported green at code `325c7af9f4`: all 81 adapter tests pass; typecheck passes; lint has two pre-existing warnings. Those broader results were not rerun here. `green-regression.txt` is the fresh focused regression output captured in this step; its command is recorded in `verification.txt`.

## Sanitization and limits

`before-runtime.ndjson` and `after-runtime.ndjson` are allowlisted summaries of decoded native frames, not byte-for-byte wire captures. They retain timestamps, request ID, native thread and turn correlation, model, code SHA, history count, empty after-history, and the intentional test marker. Historical message bodies are represented only by a boolean marker check. Duplicate frames and unrelated events are removed. MCP configuration, headers, credentials, local cwd, and unrelated/private conversation text are omitted.

`extract_evidence.py` is the exact extraction script. It reads originals locally and asserts the three-frame correlation and expected before/after history shape. Original logs and the lead's less selective sanitized files are never uploaded.

The private 590 MB history was unavailable. A synthetic rollout-only item was ignored by this Codex version. **The large-history hang was not reproduced.** This package demonstrates the changed outbound flag, history-free fork response, and retained continuation context for a real one-turn source. It does not establish memory/latency bounds, behavior on a large production history, or coverage across other providers, clients, and connection modes.

## FRICTION

The lead's before transcript contained a repeated request and an unrelated completed turn. Direct extraction from the originals removed that ambiguity and restored request-ID correlation. Logs use a timestamp/NTIVE prefix rather than plain NDJSON, so the extractor strips that prefix before decoding. Concurrent fixture expectation edits belong to the fix agent; this evidence step neither edits nor validates those integration fixtures. No browser/server launch, implementation edit, checkout, commit, forge write, merge, or delegation was performed.
