# Issue 21755 runtime reproduction

Base: 70e5e384da. Linux x86_64, Node runtime, T3 web dev server, Chrome collaborative browser, 1280×800, no emulation.

Isolated worktree /home/ubuntu/wt/issue-21755, isolated .t3 state seeded read-only by dev runner. CODEX_HOME=/tmp/issue-21755/codex.

Fixtures: sessions/2026/10/21/rollout-plain.jsonl and rollout-compressed.jsonl.zst. Each contains session_meta with a distinct existing cwd, a user event and an assistant response. Both freshly written at 2026-10-21 22:39 UTC, inside the intended 30-day window. Compressed fixture generated with node:zlib zstdCompressSync.

Attempt 1: `CODEX_HOME=/tmp/issue-21755/codex vp run dev`, web 8066/server 16106. Pair; /welcome → Continue → Continue → Other folders. Observed plain-project count 1; compressed-project absent. Screenshot: [runtime capture](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/4b04fda66ea4ddc7/browser-screenshot-localhost-mvip4ls5-9e87d3b7.png)

Attempt 2: Select none; select plain-project; Import 1 project. Observed Settled (1) containing Import plain history fixture. The imported thread is initially settled, so a wait for its title before expanding Settled timed out.

Attempt 3 (control/workaround): decompress rollout-compressed.jsonl.zst into rollout-compressed.jsonl preserving mtime. Reopen /welcome → Continue → Continue → Other folders. Observed compressed-project count 1 alongside plain-project count 1. Screenshot: [runtime capture](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/6c260e4b6bdfcdb1/browser-screenshot-localhost-mvip74f8-d87f4150.png)

Removed control .jsonl after attempt 3 so after-fix verification uses compressed-only fixture again.

Desktop/macOS not exercised here. No provider account or running provider turn is required for scanner import.

Red proof at 23ab0127fd: focused AgentSessionScanner suite 2 failed, 53 passed. Discovery expected candidate but received []; recentThreads expected codex-compressed with Review this code / Looks good but received [].

After fix: 1b9d71afe4. Restarted same dev app with CODEX_HOME fixture. Confirmed fixture directory contains only rollout-plain.jsonl and rollout-compressed.jsonl.zst, no decompressed workaround file. Reopened /welcome → Continue → Continue → Other folders. compressed-project now appears with count 1; plain-project remains count 1. Selected only compressed-project, imported, expanded Settled (2), opened Import compressed history fixture. DOM contains user message Import compressed history fixture and assistant compressed history reply. Import worked without a provider login; unauthenticated warning applies to starting a future provider turn, not reading history. No turn was submitted.

After discovery capture: [runtime capture](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/e38f9b3abac32d6d/browser-screenshot-localhost-mvirb1wy-8fb3b870.png)
After imported conversation capture: [runtime capture](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/b0f1665a602e4195/browser-screenshot-localhost-mvirbj6z-1d5b0d38.png)
Rendering: Chrome 154.0.0.0 Linux, 1280×800 CSS pixels, devicePixelRatio 2, no emulation, default font scaling, light theme.
Green: all 55 scanner tests pass. Scope: only server AgentSessionScanner.ts and its existing test file. No rendering code modified. Desktop/Electron and macOS unverified.


Evidence packaging notes (test sub-agent): This transcript records the primary agent's integrated app run; the packaging agent did not launch a server or browser. Baseline app run was at [70e5e384da](https://git.cafe/pingdotgg/t3code/commit/70e5e384dab96a1d1e4a253ee5a9415ed5d8ce30); after app run was at [1b9d71afe4](https://git.cafe/pingdotgg/t3code/commit/1b9d71afe4eddd753566974945b61a0dab1bbb2e). Final merge head is [6053165ce2](https://git.cafe/pingdotgg/t3code/commit/6053165ce2bb536cf9bd957809c398bd12b41ad7); scanner implementation and tests are byte-identical to the after app run.

What else changed in the runtime captures: list discovery count and imported history become visible through existing rendering. Other seeded threads, settled counts, and elapsed-time drift are supplemental context, not pixel proof. No rendering code changed in this fix. The visual matrix has zero rows; no viewport/theme sweeps or recordings are required by the proof audit.

Plain control was imported before the fix and remains listed with count 1 after the fix; the after run did not repeat a new plain import. Synthetic Codex-format zstd frames were used, not data from a real long-lived account. Desktop/Electron on macOS is unverified; Windows, mobile, other browsers, remote/relay/tunnel and multi-environment paths were not exercised. Import requires no provider account: the unauthenticated warning concerns future turns, and no turn was submitted.
