# Runtime evidence for [#32880](https://git.cafe/pingdotgg/t3code/pull/32880)

Node v26.12.1; Linux 6.8.0-117-generic x86_64; synthetic Codex home, schema per Codex 0.163.0. Installed binary: codex-cli 0.163.0.

Before [fa2f4ff2a2](https://git.cafe/pingdotgg/t3code/commit/fa2f4ff2a2bac5ac92e07749f6b83b0003d642a0); after [df3ffc1249](https://git.cafe/pingdotgg/t3code/commit/df3ffc1249ca06ef43aaebe6a534f96034354700).

The isolated Codex app-server initialized and accepted a turn, then returned 401 Unauthorized because the synthetic home has no credentials. No real Codex home was read. The fallback SQL schema was extracted from the database that codex-cli 0.163.0 created in that isolated probe. All conversations here are synthetic; no application server or live T3 state was used.

## R08-relative: R08, R14

Assigned root rejected: relative

Fixture: **synthetic Codex home, schema per Codex 0.163.0**. P and Q are ordinary directories. Viewport/theme: N/A. Real filesystem, subprocess runner and scanner; only settings, project-store records, host home and clock are injected.

Seed command: `python3 /tmp/lead-32880-r1/evidence-capture/seed-fixtures.py`. The fixture below records exact JSONL content, timestamps, thread assignments and root insertion order. Read-only database inspection is included in each output.

```json
{
  "name": "R08-relative",
  "rows": [
    "R08",
    "R14"
  ],
  "description": "Assigned root rejected: relative",
  "home": "<fakehome>",
  "now": "2026-11-10T12:00:00.000Z",
  "roots": {
    "P": "<fakehome>/code/project",
    "Q": "<fakehome>/code/other"
  },
  "files": [
    {
      "path": "<fakehome>/.codex/sessions/2026/11/10/rollout-2026-11-10T10-00-00-019a5f00-0000-7000-8000-000000000008.jsonl",
      "threadId": "019a5f00-0000-7000-8000-000000000008",
      "rolloutId": "019a5f00-0000-7000-8000-000000000008",
      "cwd": "<fakehome>/Documents/Codex/2026-11-08/new-chat",
      "mtimeMs": 1794311999000,
      "records": [
        "{\"timestamp\":\"2026-11-10T12:00:00.000Z\",\"type\":\"session_meta\",\"payload\":{\"id\":\"019a5f00-0000-7000-8000-000000000008\",\"cwd\":\"<fakehome>/Documents/Codex/2026-11-08/new-chat\"}}",
        "{\"timestamp\":\"2026-11-10T12:00:00.000Z\",\"type\":\"event_msg\",\"payload\":{\"type\":\"user_message\",\"message\":\"R08 mapped invalid destination\"}}"
      ]
    }
  ],
  "assignments": [
    {
      "threadId": "019a5f00-0000-7000-8000-000000000008",
      "projectId": "019a5f00-0000-7000-8000-0000000186a1",
      "cwd": "<fakehome>/Documents/Codex/2026-11-08/new-chat"
    }
  ],
  "rootInsertionOrder": [
    {
      "projectId": "019a5f00-0000-7000-8000-0000000186a1",
      "position": 0,
      "path": "relative-project"
    }
  ]
}
```

Commands, before then after:

```sh
cd /home/user/wt/pr-32880-before/apps/server
HOME='<fakehome>' CODEX_HOME='<fakehome>/.codex' T3CODE_DEV_SEED=0 /home/user/.local/share/vite-plus/js_runtime/node/26.12.1/bin/node --experimental-import-meta-resolve /tmp/lead-32880-r1/evidence-capture/scanner-driver.mjs /tmp/lead-32880-r1/evidence-capture/fixtures-2026-11-10T10-55-07.415040+00-00/R08-relative/fixture.json before

cd /home/user/wt/pr-32880-after/apps/server
HOME='<fakehome>' CODEX_HOME='<fakehome>/.codex' T3CODE_DEV_SEED=0 /home/user/.local/share/vite-plus/js_runtime/node/26.12.1/bin/node --experimental-import-meta-resolve /tmp/lead-32880-r1/evidence-capture/scanner-driver.mjs /tmp/lead-32880-r1/evidence-capture/fixtures-2026-11-10T10-55-07.415040+00-00/R08-relative/fixture.json after
```

Each invocation builds a warm scanner, calls scan then recent(P)/recent(Q), and builds a separate cold scanner that starts with recent(P). Additional calls retain their event order. Each invocation writes a fresh timestamped run directory; both sides consume identical fixture bytes.

<table><tr><th>Before <a href="https://git.cafe/pingdotgg/t3code/commit/fa2f4ff2a2bac5ac92e07749f6b83b0003d642a0">fa2f4ff2a2bac5ac92e07749f6b83b0003d642a0</a></th><th>After <a href="https://git.cafe/pingdotgg/t3code/commit/df3ffc1249ca06ef43aaebe6a534f96034354700">df3ffc1249ca06ef43aaebe6a534f96034354700</a></th></tr><tr><td><pre>environment
{
  &quot;side&quot;: &quot;before&quot;,
  &quot;sha&quot;: &quot;fa2f4ff2a2bac5ac92e07749f6b83b0003d642a0&quot;,
  &quot;blob&quot;: &quot;dc67bd9387e04b91fa61d34ea47929c056256796&quot;,
  &quot;node&quot;: &quot;v26.12.1&quot;,
  &quot;os&quot;: &quot;linux&quot;,
  &quot;arch&quot;: &quot;x64&quot;,
  &quot;fixture&quot;: &quot;R08-relative&quot;,
  &quot;label&quot;: &quot;synthetic Codex home, schema per Codex 0.163.0&quot;,
  &quot;clock&quot;: &quot;2026-11-10T12:00:00.000Z&quot;,
  &quot;substitutions&quot;: [
    &quot;ServerSettings.layerTest: explicit synthetic provider homes&quot;,
    &quot;ServerConfig.layerTest: scratch-only state directory&quot;,
    &quot;ProjectStoreV2.listShells: synthetic persisted projects&quot;,
    &quot;HostProcess.HomeDirectory: synthetic home&quot;,
    &quot;Clock: fixed current time; real sleep retained&quot;
  ],
  &quot;realServices&quot;: [
    &quot;AgentSessionScanner&quot;,
    &quot;ProcessRunner&quot;,
    &quot;NodeServices FileSystem/Path/ChildProcess&quot;
  ]
}

fixture.database.readOnly
{
  &quot;home&quot;: &quot;&lt;fakehome&gt;/.codex&quot;,
  &quot;threadCount&quot;: 1,
  &quot;fixtureThreads&quot;: [
    {
      &quot;id&quot;: &quot;019a5f00-0000-7000-8000-000000000008&quot;,
      &quot;cwd&quot;: &quot;&lt;fakehome&gt;/Documents/Codex/2026-11-08/new-chat&quot;,
      &quot;project_id&quot;: &quot;019a5f00-0000-7000-8000-0000000186a1&quot;,
      &quot;rollout_path&quot;: &quot;&lt;fakehome&gt;/.codex/sessions/2026/11/10/rollout-2026-11-10T10-00-00-019a5f00-0000-7000-8000-000000000008.jsonl&quot;
    }
  ],
  &quot;rootsInInsertionOrder&quot;: [
    {
      &quot;rowid&quot;: 1,
      &quot;project_id&quot;: &quot;019a5f00-0000-7000-8000-0000000186a1&quot;,
      &quot;position&quot;: 0,
      &quot;path&quot;: &quot;relative-project&quot;
    }
  ]
}

warm.scanner.created
{
  &quot;instanceNumber&quot;: 1,
  &quot;distinctFromPriorInstances&quot;: true,
  &quot;firstCall&quot;: &quot;scan&quot;
}

warm.scan
{
  &quot;candidates&quot;: [],
  &quot;scannedAt&quot;: &quot;2026-11-10T12:00:00.000Z&quot;
}

warm.recent(P)
[]

warm.recent(Q)
[]

cold.scanner.created
{
  &quot;instanceNumber&quot;: 2,
  &quot;distinctFromPriorInstances&quot;: true,
  &quot;firstCall&quot;: &quot;recentThreads(P)&quot;
}

cold.recent(P)
[]

cold.recent(Q)
[]</pre></td><td><pre>environment
{
  &quot;side&quot;: &quot;after&quot;,
  &quot;sha&quot;: &quot;df3ffc1249ca06ef43aaebe6a534f96034354700&quot;,
  &quot;blob&quot;: &quot;1b32de22a8878fdf07db29403cd9cedb9692ea7d&quot;,
  &quot;node&quot;: &quot;v26.12.1&quot;,
  &quot;os&quot;: &quot;linux&quot;,
  &quot;arch&quot;: &quot;x64&quot;,
  &quot;fixture&quot;: &quot;R08-relative&quot;,
  &quot;label&quot;: &quot;synthetic Codex home, schema per Codex 0.163.0&quot;,
  &quot;clock&quot;: &quot;2026-11-10T12:00:00.000Z&quot;,
  &quot;substitutions&quot;: [
    &quot;ServerSettings.layerTest: explicit synthetic provider homes&quot;,
    &quot;ServerConfig.layerTest: scratch-only state directory&quot;,
    &quot;ProjectStoreV2.listShells: synthetic persisted projects&quot;,
    &quot;HostProcess.HomeDirectory: synthetic home&quot;,
    &quot;Clock: fixed current time; real sleep retained&quot;
  ],
  &quot;realServices&quot;: [
    &quot;AgentSessionScanner&quot;,
    &quot;ProcessRunner&quot;,
    &quot;NodeServices FileSystem/Path/ChildProcess&quot;
  ]
}

fixture.database.readOnly
{
  &quot;home&quot;: &quot;&lt;fakehome&gt;/.codex&quot;,
  &quot;threadCount&quot;: 1,
  &quot;fixtureThreads&quot;: [
    {
      &quot;id&quot;: &quot;019a5f00-0000-7000-8000-000000000008&quot;,
      &quot;cwd&quot;: &quot;&lt;fakehome&gt;/Documents/Codex/2026-11-08/new-chat&quot;,
      &quot;project_id&quot;: &quot;019a5f00-0000-7000-8000-0000000186a1&quot;,
      &quot;rollout_path&quot;: &quot;&lt;fakehome&gt;/.codex/sessions/2026/11/10/rollout-2026-11-10T10-00-00-019a5f00-0000-7000-8000-000000000008.jsonl&quot;
    }
  ],
  &quot;rootsInInsertionOrder&quot;: [
    {
      &quot;rowid&quot;: 1,
      &quot;project_id&quot;: &quot;019a5f00-0000-7000-8000-0000000186a1&quot;,
      &quot;position&quot;: 0,
      &quot;path&quot;: &quot;relative-project&quot;
    }
  ]
}

warm.scanner.created
{
  &quot;instanceNumber&quot;: 1,
  &quot;distinctFromPriorInstances&quot;: true,
  &quot;firstCall&quot;: &quot;scan&quot;
}

warm.scan
{
  &quot;candidates&quot;: [],
  &quot;scannedAt&quot;: &quot;2026-11-10T12:00:00.000Z&quot;
}

warm.recent(P)
[]

warm.recent(Q)
[]

cold.scanner.created
{
  &quot;instanceNumber&quot;: 2,
  &quot;distinctFromPriorInstances&quot;: true,
  &quot;firstCall&quot;: &quot;recentThreads(P)&quot;
}

cold.recent(P)
[]

cold.recent(Q)
[]</pre></td></tr></table>

Run receipt: both exit 0; fixture SHA-256 maps match between sides and before/after each invocation. Warm and cold stable outcomes match exactly, including source identities and messages.

## R08-excluded: R08, R14

Assigned root rejected: excluded

Fixture: **synthetic Codex home, schema per Codex 0.163.0**. P and Q are ordinary directories. Viewport/theme: N/A. Real filesystem, subprocess runner and scanner; only settings, project-store records, host home and clock are injected.

Seed command: `python3 /tmp/lead-32880-r1/evidence-capture/seed-fixtures.py`. The fixture below records exact JSONL content, timestamps, thread assignments and root insertion order. Read-only database inspection is included in each output.

```json
{
  "name": "R08-excluded",
  "rows": [
    "R08",
    "R14"
  ],
  "description": "Assigned root rejected: excluded",
  "home": "<fakehome>",
  "now": "2026-11-10T12:00:00.000Z",
  "roots": {
    "P": "<fakehome>/code/project",
    "Q": "<fakehome>/code/other",
    "destination": "<fakehome>/Documents/Codex/2026-11-08/new-chat"
  },
  "files": [
    {
      "path": "<fakehome>/.codex/sessions/2026/11/10/rollout-2026-11-10T10-00-00-019a5f00-0000-7000-8000-000000000008.jsonl",
      "threadId": "019a5f00-0000-7000-8000-000000000008",
      "rolloutId": "019a5f00-0000-7000-8000-000000000008",
      "cwd": "<fakehome>/Documents/Codex/2026-11-08/new-chat",
      "mtimeMs": 1794311999000,
      "records": [
        "{\"timestamp\":\"2026-11-10T12:00:00.000Z\",\"type\":\"session_meta\",\"payload\":{\"id\":\"019a5f00-0000-7000-8000-000000000008\",\"cwd\":\"<fakehome>/Documents/Codex/2026-11-08/new-chat\"}}",
        "{\"timestamp\":\"2026-11-10T12:00:00.000Z\",\"type\":\"event_msg\",\"payload\":{\"type\":\"user_message\",\"message\":\"R08 mapped invalid destination\"}}"
      ]
    }
  ],
  "assignments": [
    {
      "threadId": "019a5f00-0000-7000-8000-000000000008",
      "projectId": "019a5f00-0000-7000-8000-0000000186a1",
      "cwd": "<fakehome>/Documents/Codex/2026-11-08/new-chat"
    }
  ],
  "rootInsertionOrder": [
    {
      "projectId": "019a5f00-0000-7000-8000-0000000186a1",
      "position": 0,
      "path": "<fakehome>/Documents/Codex/2026-11-08/new-chat"
    }
  ]
}
```

Commands, before then after:

```sh
cd /home/user/wt/pr-32880-before/apps/server
HOME='<fakehome>' CODEX_HOME='<fakehome>/.codex' T3CODE_DEV_SEED=0 /home/user/.local/share/vite-plus/js_runtime/node/26.12.1/bin/node --experimental-import-meta-resolve /tmp/lead-32880-r1/evidence-capture/scanner-driver.mjs /tmp/lead-32880-r1/evidence-capture/fixtures-2026-11-10T10-55-07.415040+00-00/R08-excluded/fixture.json before

cd /home/user/wt/pr-32880-after/apps/server
HOME='<fakehome>' CODEX_HOME='<fakehome>/.codex' T3CODE_DEV_SEED=0 /home/user/.local/share/vite-plus/js_runtime/node/26.12.1/bin/node --experimental-import-meta-resolve /tmp/lead-32880-r1/evidence-capture/scanner-driver.mjs /tmp/lead-32880-r1/evidence-capture/fixtures-2026-11-10T10-55-07.415040+00-00/R08-excluded/fixture.json after
```

Each invocation builds a warm scanner, calls scan then recent(P)/recent(Q), and builds a separate cold scanner that starts with recent(P). Additional calls retain their event order. Each invocation writes a fresh timestamped run directory; both sides consume identical fixture bytes.

<table><tr><th>Before <a href="https://git.cafe/pingdotgg/t3code/commit/fa2f4ff2a2bac5ac92e07749f6b83b0003d642a0">fa2f4ff2a2bac5ac92e07749f6b83b0003d642a0</a></th><th>After <a href="https://git.cafe/pingdotgg/t3code/commit/df3ffc1249ca06ef43aaebe6a534f96034354700">df3ffc1249ca06ef43aaebe6a534f96034354700</a></th></tr><tr><td><pre>environment
{
  &quot;side&quot;: &quot;before&quot;,
  &quot;sha&quot;: &quot;fa2f4ff2a2bac5ac92e07749f6b83b0003d642a0&quot;,
  &quot;blob&quot;: &quot;dc67bd9387e04b91fa61d34ea47929c056256796&quot;,
  &quot;node&quot;: &quot;v26.12.1&quot;,
  &quot;os&quot;: &quot;linux&quot;,
  &quot;arch&quot;: &quot;x64&quot;,
  &quot;fixture&quot;: &quot;R08-excluded&quot;,
  &quot;label&quot;: &quot;synthetic Codex home, schema per Codex 0.163.0&quot;,
  &quot;clock&quot;: &quot;2026-11-10T12:00:00.000Z&quot;,
  &quot;substitutions&quot;: [
    &quot;ServerSettings.layerTest: explicit synthetic provider homes&quot;,
    &quot;ServerConfig.layerTest: scratch-only state directory&quot;,
    &quot;ProjectStoreV2.listShells: synthetic persisted projects&quot;,
    &quot;HostProcess.HomeDirectory: synthetic home&quot;,
    &quot;Clock: fixed current time; real sleep retained&quot;
  ],
  &quot;realServices&quot;: [
    &quot;AgentSessionScanner&quot;,
    &quot;ProcessRunner&quot;,
    &quot;NodeServices FileSystem/Path/ChildProcess&quot;
  ]
}

fixture.database.readOnly
{
  &quot;home&quot;: &quot;&lt;fakehome&gt;/.codex&quot;,
  &quot;threadCount&quot;: 1,
  &quot;fixtureThreads&quot;: [
    {
      &quot;id&quot;: &quot;019a5f00-0000-7000-8000-000000000008&quot;,
      &quot;cwd&quot;: &quot;&lt;fakehome&gt;/Documents/Codex/2026-11-08/new-chat&quot;,
      &quot;project_id&quot;: &quot;019a5f00-0000-7000-8000-0000000186a1&quot;,
      &quot;rollout_path&quot;: &quot;&lt;fakehome&gt;/.codex/sessions/2026/11/10/rollout-2026-11-10T10-00-00-019a5f00-0000-7000-8000-000000000008.jsonl&quot;
    }
  ],
  &quot;rootsInInsertionOrder&quot;: [
    {
      &quot;rowid&quot;: 1,
      &quot;project_id&quot;: &quot;019a5f00-0000-7000-8000-0000000186a1&quot;,
      &quot;position&quot;: 0,
      &quot;path&quot;: &quot;&lt;fakehome&gt;/Documents/Codex/2026-11-08/new-chat&quot;
    }
  ]
}

warm.scanner.created
{
  &quot;instanceNumber&quot;: 1,
  &quot;distinctFromPriorInstances&quot;: true,
  &quot;firstCall&quot;: &quot;scan&quot;
}

warm.scan
{
  &quot;candidates&quot;: [],
  &quot;scannedAt&quot;: &quot;2026-11-10T12:00:00.000Z&quot;
}

warm.recent(P)
[]

warm.recent(Q)
[]

warm.recent(destination)
[]

cold.scanner.created
{
  &quot;instanceNumber&quot;: 2,
  &quot;distinctFromPriorInstances&quot;: true,
  &quot;firstCall&quot;: &quot;recentThreads(P)&quot;
}

cold.recent(P)
[]

cold.recent(Q)
[]

cold.recent(destination)
[]</pre></td><td><pre>environment
{
  &quot;side&quot;: &quot;after&quot;,
  &quot;sha&quot;: &quot;df3ffc1249ca06ef43aaebe6a534f96034354700&quot;,
  &quot;blob&quot;: &quot;1b32de22a8878fdf07db29403cd9cedb9692ea7d&quot;,
  &quot;node&quot;: &quot;v26.12.1&quot;,
  &quot;os&quot;: &quot;linux&quot;,
  &quot;arch&quot;: &quot;x64&quot;,
  &quot;fixture&quot;: &quot;R08-excluded&quot;,
  &quot;label&quot;: &quot;synthetic Codex home, schema per Codex 0.163.0&quot;,
  &quot;clock&quot;: &quot;2026-11-10T12:00:00.000Z&quot;,
  &quot;substitutions&quot;: [
    &quot;ServerSettings.layerTest: explicit synthetic provider homes&quot;,
    &quot;ServerConfig.layerTest: scratch-only state directory&quot;,
    &quot;ProjectStoreV2.listShells: synthetic persisted projects&quot;,
    &quot;HostProcess.HomeDirectory: synthetic home&quot;,
    &quot;Clock: fixed current time; real sleep retained&quot;
  ],
  &quot;realServices&quot;: [
    &quot;AgentSessionScanner&quot;,
    &quot;ProcessRunner&quot;,
    &quot;NodeServices FileSystem/Path/ChildProcess&quot;
  ]
}

fixture.database.readOnly
{
  &quot;home&quot;: &quot;&lt;fakehome&gt;/.codex&quot;,
  &quot;threadCount&quot;: 1,
  &quot;fixtureThreads&quot;: [
    {
      &quot;id&quot;: &quot;019a5f00-0000-7000-8000-000000000008&quot;,
      &quot;cwd&quot;: &quot;&lt;fakehome&gt;/Documents/Codex/2026-11-08/new-chat&quot;,
      &quot;project_id&quot;: &quot;019a5f00-0000-7000-8000-0000000186a1&quot;,
      &quot;rollout_path&quot;: &quot;&lt;fakehome&gt;/.codex/sessions/2026/11/10/rollout-2026-11-10T10-00-00-019a5f00-0000-7000-8000-000000000008.jsonl&quot;
    }
  ],
  &quot;rootsInInsertionOrder&quot;: [
    {
      &quot;rowid&quot;: 1,
      &quot;project_id&quot;: &quot;019a5f00-0000-7000-8000-0000000186a1&quot;,
      &quot;position&quot;: 0,
      &quot;path&quot;: &quot;&lt;fakehome&gt;/Documents/Codex/2026-11-08/new-chat&quot;
    }
  ]
}

warm.scanner.created
{
  &quot;instanceNumber&quot;: 1,
  &quot;distinctFromPriorInstances&quot;: true,
  &quot;firstCall&quot;: &quot;scan&quot;
}

warm.scan
{
  &quot;candidates&quot;: [],
  &quot;scannedAt&quot;: &quot;2026-11-10T12:00:00.000Z&quot;
}

warm.recent(P)
[]

warm.recent(Q)
[]

warm.recent(destination)
[]

cold.scanner.created
{
  &quot;instanceNumber&quot;: 2,
  &quot;distinctFromPriorInstances&quot;: true,
  &quot;firstCall&quot;: &quot;recentThreads(P)&quot;
}

cold.recent(P)
[]

cold.recent(Q)
[]

cold.recent(destination)
[]</pre></td></tr></table>

Run receipt: both exit 0; fixture SHA-256 maps match between sides and before/after each invocation. Warm and cold stable outcomes match exactly, including source identities and messages.

## R08-symlink-excluded: R08, R14

Assigned root rejected: symlink-excluded

Fixture: **synthetic Codex home, schema per Codex 0.163.0**. P and Q are ordinary directories. Viewport/theme: N/A. Real filesystem, subprocess runner and scanner; only settings, project-store records, host home and clock are injected.

Seed command: `python3 /tmp/lead-32880-r1/evidence-capture/seed-fixtures.py`. The fixture below records exact JSONL content, timestamps, thread assignments and root insertion order. Read-only database inspection is included in each output.

```json
{
  "name": "R08-symlink-excluded",
  "rows": [
    "R08",
    "R14"
  ],
  "description": "Assigned root rejected: symlink-excluded",
  "home": "<fakehome>",
  "now": "2026-11-10T12:00:00.000Z",
  "roots": {
    "P": "<fakehome>/code/project",
    "Q": "<fakehome>/code/other",
    "destination": "<fakehome>/code/disguised-scratch"
  },
  "files": [
    {
      "path": "<fakehome>/.codex/sessions/2026/11/10/rollout-2026-11-10T10-00-00-019a5f00-0000-7000-8000-000000000008.jsonl",
      "threadId": "019a5f00-0000-7000-8000-000000000008",
      "rolloutId": "019a5f00-0000-7000-8000-000000000008",
      "cwd": "<fakehome>/Documents/Codex/2026-11-08/new-chat",
      "mtimeMs": 1794311999000,
      "records": [
        "{\"timestamp\":\"2026-11-10T12:00:00.000Z\",\"type\":\"session_meta\",\"payload\":{\"id\":\"019a5f00-0000-7000-8000-000000000008\",\"cwd\":\"<fakehome>/Documents/Codex/2026-11-08/new-chat\"}}",
        "{\"timestamp\":\"2026-11-10T12:00:00.000Z\",\"type\":\"event_msg\",\"payload\":{\"type\":\"user_message\",\"message\":\"R08 mapped invalid destination\"}}"
      ]
    }
  ],
  "assignments": [
    {
      "threadId": "019a5f00-0000-7000-8000-000000000008",
      "projectId": "019a5f00-0000-7000-8000-0000000186a1",
      "cwd": "<fakehome>/Documents/Codex/2026-11-08/new-chat"
    }
  ],
  "rootInsertionOrder": [
    {
      "projectId": "019a5f00-0000-7000-8000-0000000186a1",
      "position": 0,
      "path": "<fakehome>/code/disguised-scratch"
    }
  ]
}
```

Commands, before then after:

```sh
cd /home/user/wt/pr-32880-before/apps/server
HOME='<fakehome>' CODEX_HOME='<fakehome>/.codex' T3CODE_DEV_SEED=0 /home/user/.local/share/vite-plus/js_runtime/node/26.12.1/bin/node --experimental-import-meta-resolve /tmp/lead-32880-r1/evidence-capture/scanner-driver.mjs /tmp/lead-32880-r1/evidence-capture/fixtures-2026-11-10T10-55-07.415040+00-00/R08-symlink-excluded/fixture.json before

cd /home/user/wt/pr-32880-after/apps/server
HOME='<fakehome>' CODEX_HOME='<fakehome>/.codex' T3CODE_DEV_SEED=0 /home/user/.local/share/vite-plus/js_runtime/node/26.12.1/bin/node --experimental-import-meta-resolve /tmp/lead-32880-r1/evidence-capture/scanner-driver.mjs /tmp/lead-32880-r1/evidence-capture/fixtures-2026-11-10T10-55-07.415040+00-00/R08-symlink-excluded/fixture.json after
```

Each invocation builds a warm scanner, calls scan then recent(P)/recent(Q), and builds a separate cold scanner that starts with recent(P). Additional calls retain their event order. Each invocation writes a fresh timestamped run directory; both sides consume identical fixture bytes.

<table><tr><th>Before <a href="https://git.cafe/pingdotgg/t3code/commit/fa2f4ff2a2bac5ac92e07749f6b83b0003d642a0">fa2f4ff2a2bac5ac92e07749f6b83b0003d642a0</a></th><th>After <a href="https://git.cafe/pingdotgg/t3code/commit/df3ffc1249ca06ef43aaebe6a534f96034354700">df3ffc1249ca06ef43aaebe6a534f96034354700</a></th></tr><tr><td><pre>environment
{
  &quot;side&quot;: &quot;before&quot;,
  &quot;sha&quot;: &quot;fa2f4ff2a2bac5ac92e07749f6b83b0003d642a0&quot;,
  &quot;blob&quot;: &quot;dc67bd9387e04b91fa61d34ea47929c056256796&quot;,
  &quot;node&quot;: &quot;v26.12.1&quot;,
  &quot;os&quot;: &quot;linux&quot;,
  &quot;arch&quot;: &quot;x64&quot;,
  &quot;fixture&quot;: &quot;R08-symlink-excluded&quot;,
  &quot;label&quot;: &quot;synthetic Codex home, schema per Codex 0.163.0&quot;,
  &quot;clock&quot;: &quot;2026-11-10T12:00:00.000Z&quot;,
  &quot;substitutions&quot;: [
    &quot;ServerSettings.layerTest: explicit synthetic provider homes&quot;,
    &quot;ServerConfig.layerTest: scratch-only state directory&quot;,
    &quot;ProjectStoreV2.listShells: synthetic persisted projects&quot;,
    &quot;HostProcess.HomeDirectory: synthetic home&quot;,
    &quot;Clock: fixed current time; real sleep retained&quot;
  ],
  &quot;realServices&quot;: [
    &quot;AgentSessionScanner&quot;,
    &quot;ProcessRunner&quot;,
    &quot;NodeServices FileSystem/Path/ChildProcess&quot;
  ]
}

fixture.database.readOnly
{
  &quot;home&quot;: &quot;&lt;fakehome&gt;/.codex&quot;,
  &quot;threadCount&quot;: 1,
  &quot;fixtureThreads&quot;: [
    {
      &quot;id&quot;: &quot;019a5f00-0000-7000-8000-000000000008&quot;,
      &quot;cwd&quot;: &quot;&lt;fakehome&gt;/Documents/Codex/2026-11-08/new-chat&quot;,
      &quot;project_id&quot;: &quot;019a5f00-0000-7000-8000-0000000186a1&quot;,
      &quot;rollout_path&quot;: &quot;&lt;fakehome&gt;/.codex/sessions/2026/11/10/rollout-2026-11-10T10-00-00-019a5f00-0000-7000-8000-000000000008.jsonl&quot;
    }
  ],
  &quot;rootsInInsertionOrder&quot;: [
    {
      &quot;rowid&quot;: 1,
      &quot;project_id&quot;: &quot;019a5f00-0000-7000-8000-0000000186a1&quot;,
      &quot;position&quot;: 0,
      &quot;path&quot;: &quot;&lt;fakehome&gt;/code/disguised-scratch&quot;
    }
  ]
}

warm.scanner.created
{
  &quot;instanceNumber&quot;: 1,
  &quot;distinctFromPriorInstances&quot;: true,
  &quot;firstCall&quot;: &quot;scan&quot;
}

warm.scan
{
  &quot;candidates&quot;: [],
  &quot;scannedAt&quot;: &quot;2026-11-10T12:00:00.000Z&quot;
}

warm.recent(P)
[]

warm.recent(Q)
[]

warm.recent(destination)
[]

cold.scanner.created
{
  &quot;instanceNumber&quot;: 2,
  &quot;distinctFromPriorInstances&quot;: true,
  &quot;firstCall&quot;: &quot;recentThreads(P)&quot;
}

cold.recent(P)
[]

cold.recent(Q)
[]

cold.recent(destination)
[]</pre></td><td><pre>environment
{
  &quot;side&quot;: &quot;after&quot;,
  &quot;sha&quot;: &quot;df3ffc1249ca06ef43aaebe6a534f96034354700&quot;,
  &quot;blob&quot;: &quot;1b32de22a8878fdf07db29403cd9cedb9692ea7d&quot;,
  &quot;node&quot;: &quot;v26.12.1&quot;,
  &quot;os&quot;: &quot;linux&quot;,
  &quot;arch&quot;: &quot;x64&quot;,
  &quot;fixture&quot;: &quot;R08-symlink-excluded&quot;,
  &quot;label&quot;: &quot;synthetic Codex home, schema per Codex 0.163.0&quot;,
  &quot;clock&quot;: &quot;2026-11-10T12:00:00.000Z&quot;,
  &quot;substitutions&quot;: [
    &quot;ServerSettings.layerTest: explicit synthetic provider homes&quot;,
    &quot;ServerConfig.layerTest: scratch-only state directory&quot;,
    &quot;ProjectStoreV2.listShells: synthetic persisted projects&quot;,
    &quot;HostProcess.HomeDirectory: synthetic home&quot;,
    &quot;Clock: fixed current time; real sleep retained&quot;
  ],
  &quot;realServices&quot;: [
    &quot;AgentSessionScanner&quot;,
    &quot;ProcessRunner&quot;,
    &quot;NodeServices FileSystem/Path/ChildProcess&quot;
  ]
}

fixture.database.readOnly
{
  &quot;home&quot;: &quot;&lt;fakehome&gt;/.codex&quot;,
  &quot;threadCount&quot;: 1,
  &quot;fixtureThreads&quot;: [
    {
      &quot;id&quot;: &quot;019a5f00-0000-7000-8000-000000000008&quot;,
      &quot;cwd&quot;: &quot;&lt;fakehome&gt;/Documents/Codex/2026-11-08/new-chat&quot;,
      &quot;project_id&quot;: &quot;019a5f00-0000-7000-8000-0000000186a1&quot;,
      &quot;rollout_path&quot;: &quot;&lt;fakehome&gt;/.codex/sessions/2026/11/10/rollout-2026-11-10T10-00-00-019a5f00-0000-7000-8000-000000000008.jsonl&quot;
    }
  ],
  &quot;rootsInInsertionOrder&quot;: [
    {
      &quot;rowid&quot;: 1,
      &quot;project_id&quot;: &quot;019a5f00-0000-7000-8000-0000000186a1&quot;,
      &quot;position&quot;: 0,
      &quot;path&quot;: &quot;&lt;fakehome&gt;/code/disguised-scratch&quot;
    }
  ]
}

warm.scanner.created
{
  &quot;instanceNumber&quot;: 1,
  &quot;distinctFromPriorInstances&quot;: true,
  &quot;firstCall&quot;: &quot;scan&quot;
}

warm.scan
{
  &quot;candidates&quot;: [],
  &quot;scannedAt&quot;: &quot;2026-11-10T12:00:00.000Z&quot;
}

warm.recent(P)
[]

warm.recent(Q)
[]

warm.recent(destination)
[]

cold.scanner.created
{
  &quot;instanceNumber&quot;: 2,
  &quot;distinctFromPriorInstances&quot;: true,
  &quot;firstCall&quot;: &quot;recentThreads(P)&quot;
}

cold.recent(P)
[]

cold.recent(Q)
[]

cold.recent(destination)
[]</pre></td></tr></table>

Run receipt: both exit 0; fixture SHA-256 maps match between sides and before/after each invocation. Warm and cold stable outcomes match exactly, including source identities and messages.

## R09-absent: R09, R14

Mapped destination absent precedes valid P; scanner and direct recent have different validation

Fixture: **synthetic Codex home, schema per Codex 0.163.0**. P and Q are ordinary directories. Viewport/theme: N/A. Real filesystem, subprocess runner and scanner; only settings, project-store records, host home and clock are injected.

Seed command: `python3 /tmp/lead-32880-r1/evidence-capture/seed-fixtures.py`. The fixture below records exact JSONL content, timestamps, thread assignments and root insertion order. Read-only database inspection is included in each output.

```json
{
  "name": "R09-absent",
  "rows": [
    "R09",
    "R14"
  ],
  "description": "Mapped destination absent precedes valid P; scanner and direct recent have different validation",
  "home": "<fakehome>",
  "now": "2026-11-10T12:00:00.000Z",
  "roots": {
    "P": "<fakehome>/code/project",
    "Q": "<fakehome>/code/other",
    "destination": "<fakehome>/code/destination"
  },
  "files": [
    {
      "path": "<fakehome>/.codex/sessions/2026/11/10/rollout-2026-11-10T10-00-00-019a5f00-0000-7000-8000-000000000009.jsonl",
      "threadId": "019a5f00-0000-7000-8000-000000000009",
      "rolloutId": "019a5f00-0000-7000-8000-000000000009",
      "cwd": "<fakehome>/Documents/Codex/2026-11-08/new-chat",
      "mtimeMs": 1794311999000,
      "records": [
        "{\"timestamp\":\"2026-11-10T12:00:00.000Z\",\"type\":\"session_meta\",\"payload\":{\"id\":\"019a5f00-0000-7000-8000-000000000009\",\"cwd\":\"<fakehome>/Documents/Codex/2026-11-08/new-chat\"}}",
        "{\"timestamp\":\"2026-11-10T12:00:00.000Z\",\"type\":\"event_msg\",\"payload\":{\"type\":\"user_message\",\"message\":\"R09 direct recent destination\"}}"
      ]
    }
  ],
  "assignments": [
    {
      "threadId": "019a5f00-0000-7000-8000-000000000009",
      "projectId": "019a5f00-0000-7000-8000-0000000186a1",
      "cwd": "<fakehome>/Documents/Codex/2026-11-08/new-chat"
    }
  ],
  "rootInsertionOrder": [
    {
      "projectId": "019a5f00-0000-7000-8000-0000000186a1",
      "position": 0,
      "path": "<fakehome>/code/destination"
    },
    {
      "projectId": "019a5f00-0000-7000-8000-0000000186a1",
      "position": 1,
      "path": "<fakehome>/code/project"
    }
  ]
}
```

Commands, before then after:

```sh
cd /home/user/wt/pr-32880-before/apps/server
HOME='<fakehome>' CODEX_HOME='<fakehome>/.codex' T3CODE_DEV_SEED=0 /home/user/.local/share/vite-plus/js_runtime/node/26.12.1/bin/node --experimental-import-meta-resolve /tmp/lead-32880-r1/evidence-capture/scanner-driver.mjs /tmp/lead-32880-r1/evidence-capture/fixtures-2026-11-10T10-55-07.415040+00-00/R09-absent/fixture.json before

cd /home/user/wt/pr-32880-after/apps/server
HOME='<fakehome>' CODEX_HOME='<fakehome>/.codex' T3CODE_DEV_SEED=0 /home/user/.local/share/vite-plus/js_runtime/node/26.12.1/bin/node --experimental-import-meta-resolve /tmp/lead-32880-r1/evidence-capture/scanner-driver.mjs /tmp/lead-32880-r1/evidence-capture/fixtures-2026-11-10T10-55-07.415040+00-00/R09-absent/fixture.json after
```

Each invocation builds a warm scanner, calls scan then recent(P)/recent(Q), and builds a separate cold scanner that starts with recent(P). Additional calls retain their event order. Each invocation writes a fresh timestamped run directory; both sides consume identical fixture bytes.

<table><tr><th>Before <a href="https://git.cafe/pingdotgg/t3code/commit/fa2f4ff2a2bac5ac92e07749f6b83b0003d642a0">fa2f4ff2a2bac5ac92e07749f6b83b0003d642a0</a></th><th>After <a href="https://git.cafe/pingdotgg/t3code/commit/df3ffc1249ca06ef43aaebe6a534f96034354700">df3ffc1249ca06ef43aaebe6a534f96034354700</a></th></tr><tr><td><pre>environment
{
  &quot;side&quot;: &quot;before&quot;,
  &quot;sha&quot;: &quot;fa2f4ff2a2bac5ac92e07749f6b83b0003d642a0&quot;,
  &quot;blob&quot;: &quot;dc67bd9387e04b91fa61d34ea47929c056256796&quot;,
  &quot;node&quot;: &quot;v26.12.1&quot;,
  &quot;os&quot;: &quot;linux&quot;,
  &quot;arch&quot;: &quot;x64&quot;,
  &quot;fixture&quot;: &quot;R09-absent&quot;,
  &quot;label&quot;: &quot;synthetic Codex home, schema per Codex 0.163.0&quot;,
  &quot;clock&quot;: &quot;2026-11-10T12:00:00.000Z&quot;,
  &quot;substitutions&quot;: [
    &quot;ServerSettings.layerTest: explicit synthetic provider homes&quot;,
    &quot;ServerConfig.layerTest: scratch-only state directory&quot;,
    &quot;ProjectStoreV2.listShells: synthetic persisted projects&quot;,
    &quot;HostProcess.HomeDirectory: synthetic home&quot;,
    &quot;Clock: fixed current time; real sleep retained&quot;
  ],
  &quot;realServices&quot;: [
    &quot;AgentSessionScanner&quot;,
    &quot;ProcessRunner&quot;,
    &quot;NodeServices FileSystem/Path/ChildProcess&quot;
  ]
}

fixture.database.readOnly
{
  &quot;home&quot;: &quot;&lt;fakehome&gt;/.codex&quot;,
  &quot;threadCount&quot;: 1,
  &quot;fixtureThreads&quot;: [
    {
      &quot;id&quot;: &quot;019a5f00-0000-7000-8000-000000000009&quot;,
      &quot;cwd&quot;: &quot;&lt;fakehome&gt;/Documents/Codex/2026-11-08/new-chat&quot;,
      &quot;project_id&quot;: &quot;019a5f00-0000-7000-8000-0000000186a1&quot;,
      &quot;rollout_path&quot;: &quot;&lt;fakehome&gt;/.codex/sessions/2026/11/10/rollout-2026-11-10T10-00-00-019a5f00-0000-7000-8000-000000000009.jsonl&quot;
    }
  ],
  &quot;rootsInInsertionOrder&quot;: [
    {
      &quot;rowid&quot;: 1,
      &quot;project_id&quot;: &quot;019a5f00-0000-7000-8000-0000000186a1&quot;,
      &quot;position&quot;: 0,
      &quot;path&quot;: &quot;&lt;fakehome&gt;/code/destination&quot;
    },
    {
      &quot;rowid&quot;: 2,
      &quot;project_id&quot;: &quot;019a5f00-0000-7000-8000-0000000186a1&quot;,
      &quot;position&quot;: 1,
      &quot;path&quot;: &quot;&lt;fakehome&gt;/code/project&quot;
    }
  ]
}

warm.scanner.created
{
  &quot;instanceNumber&quot;: 1,
  &quot;distinctFromPriorInstances&quot;: true,
  &quot;firstCall&quot;: &quot;scan&quot;
}

warm.scan
{
  &quot;candidates&quot;: [],
  &quot;scannedAt&quot;: &quot;2026-11-10T12:00:00.000Z&quot;
}

warm.recent(P)
[]

warm.recent(Q)
[]

warm.recent(destination)
[]

cold.scanner.created
{
  &quot;instanceNumber&quot;: 2,
  &quot;distinctFromPriorInstances&quot;: true,
  &quot;firstCall&quot;: &quot;recentThreads(P)&quot;
}

cold.recent(P)
[]

cold.recent(Q)
[]

cold.recent(destination)
[]</pre></td><td><pre>environment
{
  &quot;side&quot;: &quot;after&quot;,
  &quot;sha&quot;: &quot;df3ffc1249ca06ef43aaebe6a534f96034354700&quot;,
  &quot;blob&quot;: &quot;1b32de22a8878fdf07db29403cd9cedb9692ea7d&quot;,
  &quot;node&quot;: &quot;v26.12.1&quot;,
  &quot;os&quot;: &quot;linux&quot;,
  &quot;arch&quot;: &quot;x64&quot;,
  &quot;fixture&quot;: &quot;R09-absent&quot;,
  &quot;label&quot;: &quot;synthetic Codex home, schema per Codex 0.163.0&quot;,
  &quot;clock&quot;: &quot;2026-11-10T12:00:00.000Z&quot;,
  &quot;substitutions&quot;: [
    &quot;ServerSettings.layerTest: explicit synthetic provider homes&quot;,
    &quot;ServerConfig.layerTest: scratch-only state directory&quot;,
    &quot;ProjectStoreV2.listShells: synthetic persisted projects&quot;,
    &quot;HostProcess.HomeDirectory: synthetic home&quot;,
    &quot;Clock: fixed current time; real sleep retained&quot;
  ],
  &quot;realServices&quot;: [
    &quot;AgentSessionScanner&quot;,
    &quot;ProcessRunner&quot;,
    &quot;NodeServices FileSystem/Path/ChildProcess&quot;
  ]
}

fixture.database.readOnly
{
  &quot;home&quot;: &quot;&lt;fakehome&gt;/.codex&quot;,
  &quot;threadCount&quot;: 1,
  &quot;fixtureThreads&quot;: [
    {
      &quot;id&quot;: &quot;019a5f00-0000-7000-8000-000000000009&quot;,
      &quot;cwd&quot;: &quot;&lt;fakehome&gt;/Documents/Codex/2026-11-08/new-chat&quot;,
      &quot;project_id&quot;: &quot;019a5f00-0000-7000-8000-0000000186a1&quot;,
      &quot;rollout_path&quot;: &quot;&lt;fakehome&gt;/.codex/sessions/2026/11/10/rollout-2026-11-10T10-00-00-019a5f00-0000-7000-8000-000000000009.jsonl&quot;
    }
  ],
  &quot;rootsInInsertionOrder&quot;: [
    {
      &quot;rowid&quot;: 1,
      &quot;project_id&quot;: &quot;019a5f00-0000-7000-8000-0000000186a1&quot;,
      &quot;position&quot;: 0,
      &quot;path&quot;: &quot;&lt;fakehome&gt;/code/destination&quot;
    },
    {
      &quot;rowid&quot;: 2,
      &quot;project_id&quot;: &quot;019a5f00-0000-7000-8000-0000000186a1&quot;,
      &quot;position&quot;: 1,
      &quot;path&quot;: &quot;&lt;fakehome&gt;/code/project&quot;
    }
  ]
}

warm.scanner.created
{
  &quot;instanceNumber&quot;: 1,
  &quot;distinctFromPriorInstances&quot;: true,
  &quot;firstCall&quot;: &quot;scan&quot;
}

warm.scan
{
  &quot;candidates&quot;: [],
  &quot;scannedAt&quot;: &quot;2026-11-10T12:00:00.000Z&quot;
}

warm.recent(P)
[]

warm.recent(Q)
[]

warm.recent(destination)
[
  {
    &quot;tag&quot;: &quot;Importable&quot;,
    &quot;id&quot;: &quot;019a5f00-0000-7000-8000-000000000009&quot;,
    &quot;provider&quot;: &quot;codex&quot;,
    &quot;providerInstanceId&quot;: &quot;codex&quot;,
    &quot;file&quot;: &quot;&lt;fakehome&gt;/.codex/sessions/2026/11/10/rollout-2026-11-10T10-00-00-019a5f00-0000-7000-8000-000000000009.jsonl&quot;,
    &quot;identity&quot;: {
      &quot;filePath&quot;: &quot;&lt;fakehome&gt;/.codex/sessions/2026/11/10/rollout-2026-11-10T10-00-00-019a5f00-0000-7000-8000-000000000009.jsonl&quot;,
      &quot;size&quot;: 397,
      &quot;mtimeMs&quot;: 1794311999000,
      &quot;device&quot;: 64769,
      &quot;inode&quot;: &quot;2075091&quot;,
      &quot;birthtimeMs&quot;: 1794308107484,
      &quot;provider&quot;: &quot;codex&quot;,
      &quot;providerInstanceId&quot;: &quot;codex&quot;,
      &quot;providerSessionId&quot;: &quot;019a5f00-0000-7000-8000-000000000009&quot;
    },
    &quot;title&quot;: &quot;R09 direct recent destination&quot;,
    &quot;messages&quot;: [
      {
        &quot;role&quot;: &quot;user&quot;,
        &quot;text&quot;: &quot;R09 direct recent destination&quot;
      }
    ]
  }
]

cold.scanner.created
{
  &quot;instanceNumber&quot;: 2,
  &quot;distinctFromPriorInstances&quot;: true,
  &quot;firstCall&quot;: &quot;recentThreads(P)&quot;
}

cold.recent(P)
[]

cold.recent(Q)
[]

cold.recent(destination)
[
  {
    &quot;tag&quot;: &quot;Importable&quot;,
    &quot;id&quot;: &quot;019a5f00-0000-7000-8000-000000000009&quot;,
    &quot;provider&quot;: &quot;codex&quot;,
    &quot;providerInstanceId&quot;: &quot;codex&quot;,
    &quot;file&quot;: &quot;&lt;fakehome&gt;/.codex/sessions/2026/11/10/rollout-2026-11-10T10-00-00-019a5f00-0000-7000-8000-000000000009.jsonl&quot;,
    &quot;identity&quot;: {
      &quot;filePath&quot;: &quot;&lt;fakehome&gt;/.codex/sessions/2026/11/10/rollout-2026-11-10T10-00-00-019a5f00-0000-7000-8000-000000000009.jsonl&quot;,
      &quot;size&quot;: 397,
      &quot;mtimeMs&quot;: 1794311999000,
      &quot;device&quot;: 64769,
      &quot;inode&quot;: &quot;2075091&quot;,
      &quot;birthtimeMs&quot;: 1794308107484,
      &quot;provider&quot;: &quot;codex&quot;,
      &quot;providerInstanceId&quot;: &quot;codex&quot;,
      &quot;providerSessionId&quot;: &quot;019a5f00-0000-7000-8000-000000000009&quot;
    },
    &quot;title&quot;: &quot;R09 direct recent destination&quot;,
    &quot;messages&quot;: [
      {
        &quot;role&quot;: &quot;user&quot;,
        &quot;text&quot;: &quot;R09 direct recent destination&quot;
      }
    ]
  }
]</pre></td></tr></table>

Run receipt: both exit 0; fixture SHA-256 maps match between sides and before/after each invocation. Warm and cold stable outcomes match exactly, including source identities and messages.

## R09-file: R09, R14

Mapped destination file precedes valid P; scanner and direct recent have different validation

Fixture: **synthetic Codex home, schema per Codex 0.163.0**. P and Q are ordinary directories. Viewport/theme: N/A. Real filesystem, subprocess runner and scanner; only settings, project-store records, host home and clock are injected.

Seed command: `python3 /tmp/lead-32880-r1/evidence-capture/seed-fixtures.py`. The fixture below records exact JSONL content, timestamps, thread assignments and root insertion order. Read-only database inspection is included in each output.

```json
{
  "name": "R09-file",
  "rows": [
    "R09",
    "R14"
  ],
  "description": "Mapped destination file precedes valid P; scanner and direct recent have different validation",
  "home": "<fakehome>",
  "now": "2026-11-10T12:00:00.000Z",
  "roots": {
    "P": "<fakehome>/code/project",
    "Q": "<fakehome>/code/other",
    "destination": "<fakehome>/code/destination"
  },
  "files": [
    {
      "path": "<fakehome>/.codex/sessions/2026/11/10/rollout-2026-11-10T10-00-00-019a5f00-0000-7000-8000-000000000009.jsonl",
      "threadId": "019a5f00-0000-7000-8000-000000000009",
      "rolloutId": "019a5f00-0000-7000-8000-000000000009",
      "cwd": "<fakehome>/Documents/Codex/2026-11-08/new-chat",
      "mtimeMs": 1794311999000,
      "records": [
        "{\"timestamp\":\"2026-11-10T12:00:00.000Z\",\"type\":\"session_meta\",\"payload\":{\"id\":\"019a5f00-0000-7000-8000-000000000009\",\"cwd\":\"<fakehome>/Documents/Codex/2026-11-08/new-chat\"}}",
        "{\"timestamp\":\"2026-11-10T12:00:00.000Z\",\"type\":\"event_msg\",\"payload\":{\"type\":\"user_message\",\"message\":\"R09 direct recent destination\"}}"
      ]
    }
  ],
  "assignments": [
    {
      "threadId": "019a5f00-0000-7000-8000-000000000009",
      "projectId": "019a5f00-0000-7000-8000-0000000186a1",
      "cwd": "<fakehome>/Documents/Codex/2026-11-08/new-chat"
    }
  ],
  "rootInsertionOrder": [
    {
      "projectId": "019a5f00-0000-7000-8000-0000000186a1",
      "position": 0,
      "path": "<fakehome>/code/destination"
    },
    {
      "projectId": "019a5f00-0000-7000-8000-0000000186a1",
      "position": 1,
      "path": "<fakehome>/code/project"
    }
  ]
}
```

Commands, before then after:

```sh
cd /home/user/wt/pr-32880-before/apps/server
HOME='<fakehome>' CODEX_HOME='<fakehome>/.codex' T3CODE_DEV_SEED=0 /home/user/.local/share/vite-plus/js_runtime/node/26.12.1/bin/node --experimental-import-meta-resolve /tmp/lead-32880-r1/evidence-capture/scanner-driver.mjs /tmp/lead-32880-r1/evidence-capture/fixtures-2026-11-10T10-55-07.415040+00-00/R09-file/fixture.json before

cd /home/user/wt/pr-32880-after/apps/server
HOME='<fakehome>' CODEX_HOME='<fakehome>/.codex' T3CODE_DEV_SEED=0 /home/user/.local/share/vite-plus/js_runtime/node/26.12.1/bin/node --experimental-import-meta-resolve /tmp/lead-32880-r1/evidence-capture/scanner-driver.mjs /tmp/lead-32880-r1/evidence-capture/fixtures-2026-11-10T10-55-07.415040+00-00/R09-file/fixture.json after
```

Each invocation builds a warm scanner, calls scan then recent(P)/recent(Q), and builds a separate cold scanner that starts with recent(P). Additional calls retain their event order. Each invocation writes a fresh timestamped run directory; both sides consume identical fixture bytes.

<table><tr><th>Before <a href="https://git.cafe/pingdotgg/t3code/commit/fa2f4ff2a2bac5ac92e07749f6b83b0003d642a0">fa2f4ff2a2bac5ac92e07749f6b83b0003d642a0</a></th><th>After <a href="https://git.cafe/pingdotgg/t3code/commit/df3ffc1249ca06ef43aaebe6a534f96034354700">df3ffc1249ca06ef43aaebe6a534f96034354700</a></th></tr><tr><td><pre>environment
{
  &quot;side&quot;: &quot;before&quot;,
  &quot;sha&quot;: &quot;fa2f4ff2a2bac5ac92e07749f6b83b0003d642a0&quot;,
  &quot;blob&quot;: &quot;dc67bd9387e04b91fa61d34ea47929c056256796&quot;,
  &quot;node&quot;: &quot;v26.12.1&quot;,
  &quot;os&quot;: &quot;linux&quot;,
  &quot;arch&quot;: &quot;x64&quot;,
  &quot;fixture&quot;: &quot;R09-file&quot;,
  &quot;label&quot;: &quot;synthetic Codex home, schema per Codex 0.163.0&quot;,
  &quot;clock&quot;: &quot;2026-11-10T12:00:00.000Z&quot;,
  &quot;substitutions&quot;: [
    &quot;ServerSettings.layerTest: explicit synthetic provider homes&quot;,
    &quot;ServerConfig.layerTest: scratch-only state directory&quot;,
    &quot;ProjectStoreV2.listShells: synthetic persisted projects&quot;,
    &quot;HostProcess.HomeDirectory: synthetic home&quot;,
    &quot;Clock: fixed current time; real sleep retained&quot;
  ],
  &quot;realServices&quot;: [
    &quot;AgentSessionScanner&quot;,
    &quot;ProcessRunner&quot;,
    &quot;NodeServices FileSystem/Path/ChildProcess&quot;
  ]
}

fixture.database.readOnly
{
  &quot;home&quot;: &quot;&lt;fakehome&gt;/.codex&quot;,
  &quot;threadCount&quot;: 1,
  &quot;fixtureThreads&quot;: [
    {
      &quot;id&quot;: &quot;019a5f00-0000-7000-8000-000000000009&quot;,
      &quot;cwd&quot;: &quot;&lt;fakehome&gt;/Documents/Codex/2026-11-08/new-chat&quot;,
      &quot;project_id&quot;: &quot;019a5f00-0000-7000-8000-0000000186a1&quot;,
      &quot;rollout_path&quot;: &quot;&lt;fakehome&gt;/.codex/sessions/2026/11/10/rollout-2026-11-10T10-00-00-019a5f00-0000-7000-8000-000000000009.jsonl&quot;
    }
  ],
  &quot;rootsInInsertionOrder&quot;: [
    {
      &quot;rowid&quot;: 1,
      &quot;project_id&quot;: &quot;019a5f00-0000-7000-8000-0000000186a1&quot;,
      &quot;position&quot;: 0,
      &quot;path&quot;: &quot;&lt;fakehome&gt;/code/destination&quot;
    },
    {
      &quot;rowid&quot;: 2,
      &quot;project_id&quot;: &quot;019a5f00-0000-7000-8000-0000000186a1&quot;,
      &quot;position&quot;: 1,
      &quot;path&quot;: &quot;&lt;fakehome&gt;/code/project&quot;
    }
  ]
}

warm.scanner.created
{
  &quot;instanceNumber&quot;: 1,
  &quot;distinctFromPriorInstances&quot;: true,
  &quot;firstCall&quot;: &quot;scan&quot;
}

warm.scan
{
  &quot;candidates&quot;: [],
  &quot;scannedAt&quot;: &quot;2026-11-10T12:00:00.000Z&quot;
}

warm.recent(P)
[]

warm.recent(Q)
[]

warm.recent(destination)
[]

cold.scanner.created
{
  &quot;instanceNumber&quot;: 2,
  &quot;distinctFromPriorInstances&quot;: true,
  &quot;firstCall&quot;: &quot;recentThreads(P)&quot;
}

cold.recent(P)
[]

cold.recent(Q)
[]

cold.recent(destination)
[]</pre></td><td><pre>environment
{
  &quot;side&quot;: &quot;after&quot;,
  &quot;sha&quot;: &quot;df3ffc1249ca06ef43aaebe6a534f96034354700&quot;,
  &quot;blob&quot;: &quot;1b32de22a8878fdf07db29403cd9cedb9692ea7d&quot;,
  &quot;node&quot;: &quot;v26.12.1&quot;,
  &quot;os&quot;: &quot;linux&quot;,
  &quot;arch&quot;: &quot;x64&quot;,
  &quot;fixture&quot;: &quot;R09-file&quot;,
  &quot;label&quot;: &quot;synthetic Codex home, schema per Codex 0.163.0&quot;,
  &quot;clock&quot;: &quot;2026-11-10T12:00:00.000Z&quot;,
  &quot;substitutions&quot;: [
    &quot;ServerSettings.layerTest: explicit synthetic provider homes&quot;,
    &quot;ServerConfig.layerTest: scratch-only state directory&quot;,
    &quot;ProjectStoreV2.listShells: synthetic persisted projects&quot;,
    &quot;HostProcess.HomeDirectory: synthetic home&quot;,
    &quot;Clock: fixed current time; real sleep retained&quot;
  ],
  &quot;realServices&quot;: [
    &quot;AgentSessionScanner&quot;,
    &quot;ProcessRunner&quot;,
    &quot;NodeServices FileSystem/Path/ChildProcess&quot;
  ]
}

fixture.database.readOnly
{
  &quot;home&quot;: &quot;&lt;fakehome&gt;/.codex&quot;,
  &quot;threadCount&quot;: 1,
  &quot;fixtureThreads&quot;: [
    {
      &quot;id&quot;: &quot;019a5f00-0000-7000-8000-000000000009&quot;,
      &quot;cwd&quot;: &quot;&lt;fakehome&gt;/Documents/Codex/2026-11-08/new-chat&quot;,
      &quot;project_id&quot;: &quot;019a5f00-0000-7000-8000-0000000186a1&quot;,
      &quot;rollout_path&quot;: &quot;&lt;fakehome&gt;/.codex/sessions/2026/11/10/rollout-2026-11-10T10-00-00-019a5f00-0000-7000-8000-000000000009.jsonl&quot;
    }
  ],
  &quot;rootsInInsertionOrder&quot;: [
    {
      &quot;rowid&quot;: 1,
      &quot;project_id&quot;: &quot;019a5f00-0000-7000-8000-0000000186a1&quot;,
      &quot;position&quot;: 0,
      &quot;path&quot;: &quot;&lt;fakehome&gt;/code/destination&quot;
    },
    {
      &quot;rowid&quot;: 2,
      &quot;project_id&quot;: &quot;019a5f00-0000-7000-8000-0000000186a1&quot;,
      &quot;position&quot;: 1,
      &quot;path&quot;: &quot;&lt;fakehome&gt;/code/project&quot;
    }
  ]
}

warm.scanner.created
{
  &quot;instanceNumber&quot;: 1,
  &quot;distinctFromPriorInstances&quot;: true,
  &quot;firstCall&quot;: &quot;scan&quot;
}

warm.scan
{
  &quot;candidates&quot;: [],
  &quot;scannedAt&quot;: &quot;2026-11-10T12:00:00.000Z&quot;
}

warm.recent(P)
[]

warm.recent(Q)
[]

warm.recent(destination)
[
  {
    &quot;tag&quot;: &quot;Importable&quot;,
    &quot;id&quot;: &quot;019a5f00-0000-7000-8000-000000000009&quot;,
    &quot;provider&quot;: &quot;codex&quot;,
    &quot;providerInstanceId&quot;: &quot;codex&quot;,
    &quot;file&quot;: &quot;&lt;fakehome&gt;/.codex/sessions/2026/11/10/rollout-2026-11-10T10-00-00-019a5f00-0000-7000-8000-000000000009.jsonl&quot;,
    &quot;identity&quot;: {
      &quot;filePath&quot;: &quot;&lt;fakehome&gt;/.codex/sessions/2026/11/10/rollout-2026-11-10T10-00-00-019a5f00-0000-7000-8000-000000000009.jsonl&quot;,
      &quot;size&quot;: 395,
      &quot;mtimeMs&quot;: 1794311999000,
      &quot;device&quot;: 64769,
      &quot;inode&quot;: &quot;2075111&quot;,
      &quot;birthtimeMs&quot;: 1794308107491,
      &quot;provider&quot;: &quot;codex&quot;,
      &quot;providerInstanceId&quot;: &quot;codex&quot;,
      &quot;providerSessionId&quot;: &quot;019a5f00-0000-7000-8000-000000000009&quot;
    },
    &quot;title&quot;: &quot;R09 direct recent destination&quot;,
    &quot;messages&quot;: [
      {
        &quot;role&quot;: &quot;user&quot;,
        &quot;text&quot;: &quot;R09 direct recent destination&quot;
      }
    ]
  }
]

cold.scanner.created
{
  &quot;instanceNumber&quot;: 2,
  &quot;distinctFromPriorInstances&quot;: true,
  &quot;firstCall&quot;: &quot;recentThreads(P)&quot;
}

cold.recent(P)
[]

cold.recent(Q)
[]

cold.recent(destination)
[
  {
    &quot;tag&quot;: &quot;Importable&quot;,
    &quot;id&quot;: &quot;019a5f00-0000-7000-8000-000000000009&quot;,
    &quot;provider&quot;: &quot;codex&quot;,
    &quot;providerInstanceId&quot;: &quot;codex&quot;,
    &quot;file&quot;: &quot;&lt;fakehome&gt;/.codex/sessions/2026/11/10/rollout-2026-11-10T10-00-00-019a5f00-0000-7000-8000-000000000009.jsonl&quot;,
    &quot;identity&quot;: {
      &quot;filePath&quot;: &quot;&lt;fakehome&gt;/.codex/sessions/2026/11/10/rollout-2026-11-10T10-00-00-019a5f00-0000-7000-8000-000000000009.jsonl&quot;,
      &quot;size&quot;: 395,
      &quot;mtimeMs&quot;: 1794311999000,
      &quot;device&quot;: 64769,
      &quot;inode&quot;: &quot;2075111&quot;,
      &quot;birthtimeMs&quot;: 1794308107491,
      &quot;provider&quot;: &quot;codex&quot;,
      &quot;providerInstanceId&quot;: &quot;codex&quot;,
      &quot;providerSessionId&quot;: &quot;019a5f00-0000-7000-8000-000000000009&quot;
    },
    &quot;title&quot;: &quot;R09 direct recent destination&quot;,
    &quot;messages&quot;: [
      {
        &quot;role&quot;: &quot;user&quot;,
        &quot;text&quot;: &quot;R09 direct recent destination&quot;
      }
    ]
  }
]</pre></td></tr></table>

Run receipt: both exit 0; fixture SHA-256 maps match between sides and before/after each invocation. Warm and cold stable outcomes match exactly, including source identities and messages.

## R09-linked-worktree: R09, R14

Mapped destination linked-worktree precedes valid P; scanner and direct recent have different validation

Fixture: **synthetic Codex home, schema per Codex 0.163.0**. P and Q are ordinary directories. Viewport/theme: N/A. Real filesystem, subprocess runner and scanner; only settings, project-store records, host home and clock are injected.

Seed command: `python3 /tmp/lead-32880-r1/evidence-capture/seed-fixtures.py`. The fixture below records exact JSONL content, timestamps, thread assignments and root insertion order. Read-only database inspection is included in each output.

```json
{
  "name": "R09-linked-worktree",
  "rows": [
    "R09",
    "R14"
  ],
  "description": "Mapped destination linked-worktree precedes valid P; scanner and direct recent have different validation",
  "home": "<fakehome>",
  "now": "2026-11-10T12:00:00.000Z",
  "roots": {
    "P": "<fakehome>/code/project",
    "Q": "<fakehome>/code/other",
    "destination": "<fakehome>/code/destination"
  },
  "files": [
    {
      "path": "<fakehome>/.codex/sessions/2026/11/10/rollout-2026-11-10T10-00-00-019a5f00-0000-7000-8000-000000000009.jsonl",
      "threadId": "019a5f00-0000-7000-8000-000000000009",
      "rolloutId": "019a5f00-0000-7000-8000-000000000009",
      "cwd": "<fakehome>/Documents/Codex/2026-11-08/new-chat",
      "mtimeMs": 1794311999000,
      "records": [
        "{\"timestamp\":\"2026-11-10T12:00:00.000Z\",\"type\":\"session_meta\",\"payload\":{\"id\":\"019a5f00-0000-7000-8000-000000000009\",\"cwd\":\"<fakehome>/Documents/Codex/2026-11-08/new-chat\"}}",
        "{\"timestamp\":\"2026-11-10T12:00:00.000Z\",\"type\":\"event_msg\",\"payload\":{\"type\":\"user_message\",\"message\":\"R09 direct recent destination\"}}"
      ]
    }
  ],
  "assignments": [
    {
      "threadId": "019a5f00-0000-7000-8000-000000000009",
      "projectId": "019a5f00-0000-7000-8000-0000000186a1",
      "cwd": "<fakehome>/Documents/Codex/2026-11-08/new-chat"
    }
  ],
  "rootInsertionOrder": [
    {
      "projectId": "019a5f00-0000-7000-8000-0000000186a1",
      "position": 0,
      "path": "<fakehome>/code/destination"
    },
    {
      "projectId": "019a5f00-0000-7000-8000-0000000186a1",
      "position": 1,
      "path": "<fakehome>/code/project"
    }
  ]
}
```

Commands, before then after:

```sh
cd /home/user/wt/pr-32880-before/apps/server
HOME='<fakehome>' CODEX_HOME='<fakehome>/.codex' T3CODE_DEV_SEED=0 /home/user/.local/share/vite-plus/js_runtime/node/26.12.1/bin/node --experimental-import-meta-resolve /tmp/lead-32880-r1/evidence-capture/scanner-driver.mjs /tmp/lead-32880-r1/evidence-capture/fixtures-2026-11-10T10-55-07.415040+00-00/R09-linked-worktree/fixture.json before

cd /home/user/wt/pr-32880-after/apps/server
HOME='<fakehome>' CODEX_HOME='<fakehome>/.codex' T3CODE_DEV_SEED=0 /home/user/.local/share/vite-plus/js_runtime/node/26.12.1/bin/node --experimental-import-meta-resolve /tmp/lead-32880-r1/evidence-capture/scanner-driver.mjs /tmp/lead-32880-r1/evidence-capture/fixtures-2026-11-10T10-55-07.415040+00-00/R09-linked-worktree/fixture.json after
```

Each invocation builds a warm scanner, calls scan then recent(P)/recent(Q), and builds a separate cold scanner that starts with recent(P). Additional calls retain their event order. Each invocation writes a fresh timestamped run directory; both sides consume identical fixture bytes.

<table><tr><th>Before <a href="https://git.cafe/pingdotgg/t3code/commit/fa2f4ff2a2bac5ac92e07749f6b83b0003d642a0">fa2f4ff2a2bac5ac92e07749f6b83b0003d642a0</a></th><th>After <a href="https://git.cafe/pingdotgg/t3code/commit/df3ffc1249ca06ef43aaebe6a534f96034354700">df3ffc1249ca06ef43aaebe6a534f96034354700</a></th></tr><tr><td><pre>environment
{
  &quot;side&quot;: &quot;before&quot;,
  &quot;sha&quot;: &quot;fa2f4ff2a2bac5ac92e07749f6b83b0003d642a0&quot;,
  &quot;blob&quot;: &quot;dc67bd9387e04b91fa61d34ea47929c056256796&quot;,
  &quot;node&quot;: &quot;v26.12.1&quot;,
  &quot;os&quot;: &quot;linux&quot;,
  &quot;arch&quot;: &quot;x64&quot;,
  &quot;fixture&quot;: &quot;R09-linked-worktree&quot;,
  &quot;label&quot;: &quot;synthetic Codex home, schema per Codex 0.163.0&quot;,
  &quot;clock&quot;: &quot;2026-11-10T12:00:00.000Z&quot;,
  &quot;substitutions&quot;: [
    &quot;ServerSettings.layerTest: explicit synthetic provider homes&quot;,
    &quot;ServerConfig.layerTest: scratch-only state directory&quot;,
    &quot;ProjectStoreV2.listShells: synthetic persisted projects&quot;,
    &quot;HostProcess.HomeDirectory: synthetic home&quot;,
    &quot;Clock: fixed current time; real sleep retained&quot;
  ],
  &quot;realServices&quot;: [
    &quot;AgentSessionScanner&quot;,
    &quot;ProcessRunner&quot;,
    &quot;NodeServices FileSystem/Path/ChildProcess&quot;
  ]
}

fixture.database.readOnly
{
  &quot;home&quot;: &quot;&lt;fakehome&gt;/.codex&quot;,
  &quot;threadCount&quot;: 1,
  &quot;fixtureThreads&quot;: [
    {
      &quot;id&quot;: &quot;019a5f00-0000-7000-8000-000000000009&quot;,
      &quot;cwd&quot;: &quot;&lt;fakehome&gt;/Documents/Codex/2026-11-08/new-chat&quot;,
      &quot;project_id&quot;: &quot;019a5f00-0000-7000-8000-0000000186a1&quot;,
      &quot;rollout_path&quot;: &quot;&lt;fakehome&gt;/.codex/sessions/2026/11/10/rollout-2026-11-10T10-00-00-019a5f00-0000-7000-8000-000000000009.jsonl&quot;
    }
  ],
  &quot;rootsInInsertionOrder&quot;: [
    {
      &quot;rowid&quot;: 1,
      &quot;project_id&quot;: &quot;019a5f00-0000-7000-8000-0000000186a1&quot;,
      &quot;position&quot;: 0,
      &quot;path&quot;: &quot;&lt;fakehome&gt;/code/destination&quot;
    },
    {
      &quot;rowid&quot;: 2,
      &quot;project_id&quot;: &quot;019a5f00-0000-7000-8000-0000000186a1&quot;,
      &quot;position&quot;: 1,
      &quot;path&quot;: &quot;&lt;fakehome&gt;/code/project&quot;
    }
  ]
}

warm.scanner.created
{
  &quot;instanceNumber&quot;: 1,
  &quot;distinctFromPriorInstances&quot;: true,
  &quot;firstCall&quot;: &quot;scan&quot;
}

warm.scan
{
  &quot;candidates&quot;: [],
  &quot;scannedAt&quot;: &quot;2026-11-10T12:00:00.000Z&quot;
}

warm.recent(P)
[]

warm.recent(Q)
[]

warm.recent(destination)
[]

cold.scanner.created
{
  &quot;instanceNumber&quot;: 2,
  &quot;distinctFromPriorInstances&quot;: true,
  &quot;firstCall&quot;: &quot;recentThreads(P)&quot;
}

cold.recent(P)
[]

cold.recent(Q)
[]

cold.recent(destination)
[]</pre></td><td><pre>environment
{
  &quot;side&quot;: &quot;after&quot;,
  &quot;sha&quot;: &quot;df3ffc1249ca06ef43aaebe6a534f96034354700&quot;,
  &quot;blob&quot;: &quot;1b32de22a8878fdf07db29403cd9cedb9692ea7d&quot;,
  &quot;node&quot;: &quot;v26.12.1&quot;,
  &quot;os&quot;: &quot;linux&quot;,
  &quot;arch&quot;: &quot;x64&quot;,
  &quot;fixture&quot;: &quot;R09-linked-worktree&quot;,
  &quot;label&quot;: &quot;synthetic Codex home, schema per Codex 0.163.0&quot;,
  &quot;clock&quot;: &quot;2026-11-10T12:00:00.000Z&quot;,
  &quot;substitutions&quot;: [
    &quot;ServerSettings.layerTest: explicit synthetic provider homes&quot;,
    &quot;ServerConfig.layerTest: scratch-only state directory&quot;,
    &quot;ProjectStoreV2.listShells: synthetic persisted projects&quot;,
    &quot;HostProcess.HomeDirectory: synthetic home&quot;,
    &quot;Clock: fixed current time; real sleep retained&quot;
  ],
  &quot;realServices&quot;: [
    &quot;AgentSessionScanner&quot;,
    &quot;ProcessRunner&quot;,
    &quot;NodeServices FileSystem/Path/ChildProcess&quot;
  ]
}

fixture.database.readOnly
{
  &quot;home&quot;: &quot;&lt;fakehome&gt;/.codex&quot;,
  &quot;threadCount&quot;: 1,
  &quot;fixtureThreads&quot;: [
    {
      &quot;id&quot;: &quot;019a5f00-0000-7000-8000-000000000009&quot;,
      &quot;cwd&quot;: &quot;&lt;fakehome&gt;/Documents/Codex/2026-11-08/new-chat&quot;,
      &quot;project_id&quot;: &quot;019a5f00-0000-7000-8000-0000000186a1&quot;,
      &quot;rollout_path&quot;: &quot;&lt;fakehome&gt;/.codex/sessions/2026/11/10/rollout-2026-11-10T10-00-00-019a5f00-0000-7000-8000-000000000009.jsonl&quot;
    }
  ],
  &quot;rootsInInsertionOrder&quot;: [
    {
      &quot;rowid&quot;: 1,
      &quot;project_id&quot;: &quot;019a5f00-0000-7000-8000-0000000186a1&quot;,
      &quot;position&quot;: 0,
      &quot;path&quot;: &quot;&lt;fakehome&gt;/code/destination&quot;
    },
    {
      &quot;rowid&quot;: 2,
      &quot;project_id&quot;: &quot;019a5f00-0000-7000-8000-0000000186a1&quot;,
      &quot;position&quot;: 1,
      &quot;path&quot;: &quot;&lt;fakehome&gt;/code/project&quot;
    }
  ]
}

warm.scanner.created
{
  &quot;instanceNumber&quot;: 1,
  &quot;distinctFromPriorInstances&quot;: true,
  &quot;firstCall&quot;: &quot;scan&quot;
}

warm.scan
{
  &quot;candidates&quot;: [],
  &quot;scannedAt&quot;: &quot;2026-11-10T12:00:00.000Z&quot;
}

warm.recent(P)
[]

warm.recent(Q)
[]

warm.recent(destination)
[
  {
    &quot;tag&quot;: &quot;Importable&quot;,
    &quot;id&quot;: &quot;019a5f00-0000-7000-8000-000000000009&quot;,
    &quot;provider&quot;: &quot;codex&quot;,
    &quot;providerInstanceId&quot;: &quot;codex&quot;,
    &quot;file&quot;: &quot;&lt;fakehome&gt;/.codex/sessions/2026/11/10/rollout-2026-11-10T10-00-00-019a5f00-0000-7000-8000-000000000009.jsonl&quot;,
    &quot;identity&quot;: {
      &quot;filePath&quot;: &quot;&lt;fakehome&gt;/.codex/sessions/2026/11/10/rollout-2026-11-10T10-00-00-019a5f00-0000-7000-8000-000000000009.jsonl&quot;,
      &quot;size&quot;: 406,
      &quot;mtimeMs&quot;: 1794311999000,
      &quot;device&quot;: 64769,
      &quot;inode&quot;: &quot;2075138&quot;,
      &quot;birthtimeMs&quot;: 1794308107498,
      &quot;provider&quot;: &quot;codex&quot;,
      &quot;providerInstanceId&quot;: &quot;codex&quot;,
      &quot;providerSessionId&quot;: &quot;019a5f00-0000-7000-8000-000000000009&quot;
    },
    &quot;title&quot;: &quot;R09 direct recent destination&quot;,
    &quot;messages&quot;: [
      {
        &quot;role&quot;: &quot;user&quot;,
        &quot;text&quot;: &quot;R09 direct recent destination&quot;
      }
    ]
  }
]

cold.scanner.created
{
  &quot;instanceNumber&quot;: 2,
  &quot;distinctFromPriorInstances&quot;: true,
  &quot;firstCall&quot;: &quot;recentThreads(P)&quot;
}

cold.recent(P)
[]

cold.recent(Q)
[]

cold.recent(destination)
[
  {
    &quot;tag&quot;: &quot;Importable&quot;,
    &quot;id&quot;: &quot;019a5f00-0000-7000-8000-000000000009&quot;,
    &quot;provider&quot;: &quot;codex&quot;,
    &quot;providerInstanceId&quot;: &quot;codex&quot;,
    &quot;file&quot;: &quot;&lt;fakehome&gt;/.codex/sessions/2026/11/10/rollout-2026-11-10T10-00-00-019a5f00-0000-7000-8000-000000000009.jsonl&quot;,
    &quot;identity&quot;: {
      &quot;filePath&quot;: &quot;&lt;fakehome&gt;/.codex/sessions/2026/11/10/rollout-2026-11-10T10-00-00-019a5f00-0000-7000-8000-000000000009.jsonl&quot;,
      &quot;size&quot;: 406,
      &quot;mtimeMs&quot;: 1794311999000,
      &quot;device&quot;: 64769,
      &quot;inode&quot;: &quot;2075138&quot;,
      &quot;birthtimeMs&quot;: 1794308107498,
      &quot;provider&quot;: &quot;codex&quot;,
      &quot;providerInstanceId&quot;: &quot;codex&quot;,
      &quot;providerSessionId&quot;: &quot;019a5f00-0000-7000-8000-000000000009&quot;
    },
    &quot;title&quot;: &quot;R09 direct recent destination&quot;,
    &quot;messages&quot;: [
      {
        &quot;role&quot;: &quot;user&quot;,
        &quot;text&quot;: &quot;R09 direct recent destination&quot;
      }
    ]
  }
]</pre></td></tr></table>

Run receipt: both exit 0; fixture SHA-256 maps match between sides and before/after each invocation. Warm and cold stable outcomes match exactly, including source identities and messages.

## R10-homes: R10, R14

Same thread UUID in distinct homes maps independently; alias scanned once, disabled home omitted, Claude and Pi controls

Fixture: **synthetic Codex home, schema per Codex 0.163.0**. P and Q are ordinary directories. Viewport/theme: N/A. Real filesystem, subprocess runner and scanner; only settings, project-store records, host home and clock are injected.

Seed command: `python3 /tmp/lead-32880-r1/evidence-capture/seed-fixtures.py`. The fixture below records exact JSONL content, timestamps, thread assignments and root insertion order. Read-only database inspection is included in each output.

```json
{
  "name": "R10-homes",
  "rows": [
    "R10",
    "R14"
  ],
  "description": "Same thread UUID in distinct homes maps independently; alias scanned once, disabled home omitted, Claude and Pi controls",
  "home": "<fakehome>",
  "now": "2026-11-10T12:00:00.000Z",
  "roots": {
    "P": "<fakehome>/code/project",
    "Q": "<fakehome>/code/other"
  },
  "files": [
    {
      "path": "<fakehome>/.codex/sessions/2026/11/10/rollout-2026-11-10T10-00-00-019a5f00-0000-7000-8000-00000000000a.jsonl",
      "threadId": "019a5f00-0000-7000-8000-00000000000a",
      "rolloutId": "019a5f00-0000-7000-8000-00000000000a",
      "cwd": "<fakehome>/Documents/Codex/2026-11-08/new-chat",
      "mtimeMs": 1794311999000,
      "records": [
        "{\"timestamp\":\"2026-11-10T12:00:00.000Z\",\"type\":\"session_meta\",\"payload\":{\"id\":\"019a5f00-0000-7000-8000-00000000000a\",\"cwd\":\"<fakehome>/Documents/Codex/2026-11-08/new-chat\"}}",
        "{\"timestamp\":\"2026-11-10T12:00:00.000Z\",\"type\":\"event_msg\",\"payload\":{\"type\":\"user_message\",\"message\":\"R10 primary home maps P\"}}"
      ]
    },
    {
      "path": "<fakehome>/.codex-work/sessions/2026/11/10/rollout-2026-11-10T10-00-00-019a5f00-0000-7000-8000-00000000000a.jsonl",
      "threadId": "019a5f00-0000-7000-8000-00000000000a",
      "rolloutId": "019a5f00-0000-7000-8000-00000000000a",
      "cwd": "<fakehome>/Documents/Codex/2026-11-08/new-chat",
      "mtimeMs": 1794311999000,
      "records": [
        "{\"timestamp\":\"2026-11-10T12:00:00.000Z\",\"type\":\"session_meta\",\"payload\":{\"id\":\"019a5f00-0000-7000-8000-00000000000a\",\"cwd\":\"<fakehome>/Documents/Codex/2026-11-08/new-chat\"}}",
        "{\"timestamp\":\"2026-11-10T12:00:00.000Z\",\"type\":\"event_msg\",\"payload\":{\"type\":\"user_message\",\"message\":\"R10 other home maps Q\"}}"
      ]
    },
    {
      "path": "<fakehome>/.codex-disabled/sessions/2026/11/10/rollout-2026-11-10T10-00-00-019a5f00-0000-7000-8000-00000000000b.jsonl",
      "threadId": "019a5f00-0000-7000-8000-00000000000b",
      "rolloutId": "019a5f00-0000-7000-8000-00000000000b",
      "cwd": "<fakehome>/code/other",
      "mtimeMs": 1794311999000,
      "records": [
        "{\"timestamp\":\"2026-11-10T12:00:00.000Z\",\"type\":\"session_meta\",\"payload\":{\"id\":\"019a5f00-0000-7000-8000-00000000000b\",\"cwd\":\"<fakehome>/code/other\"}}",
        "{\"timestamp\":\"2026-11-10T12:00:00.000Z\",\"type\":\"event_msg\",\"payload\":{\"type\":\"user_message\",\"message\":\"R10 disabled should not appear\"}}"
      ]
    }
  ],
  "assignments": [
    {
      "threadId": "019a5f00-0000-7000-8000-00000000000a",
      "projectId": "019a5f00-0000-7000-8000-0000000186a1",
      "cwd": "<fakehome>/Documents/Codex/2026-11-08/new-chat"
    }
  ],
  "rootInsertionOrder": [
    {
      "projectId": "019a5f00-0000-7000-8000-0000000186a1",
      "position": 0,
      "path": "<fakehome>/code/project"
    }
  ],
  "providerInstances": {
    "codex-alias": {
      "driver": "codex",
      "config": {
        "homePath": "<fakehome>/.codex-alias"
      }
    },
    "codex-work": {
      "driver": "codex",
      "config": {
        "homePath": "<fakehome>/.codex-work"
      }
    },
    "codex-disabled": {
      "driver": "codex",
      "enabled": false,
      "config": {
        "homePath": "<fakehome>/.codex-disabled"
      }
    }
  }
}
```

Commands, before then after:

```sh
cd /home/user/wt/pr-32880-before/apps/server
HOME='<fakehome>' CODEX_HOME='<fakehome>/.codex' T3CODE_DEV_SEED=0 /home/user/.local/share/vite-plus/js_runtime/node/26.12.1/bin/node --experimental-import-meta-resolve /tmp/lead-32880-r1/evidence-capture/scanner-driver.mjs /tmp/lead-32880-r1/evidence-capture/fixtures-2026-11-10T10-55-07.415040+00-00/R10-homes/fixture.json before

cd /home/user/wt/pr-32880-after/apps/server
HOME='<fakehome>' CODEX_HOME='<fakehome>/.codex' T3CODE_DEV_SEED=0 /home/user/.local/share/vite-plus/js_runtime/node/26.12.1/bin/node --experimental-import-meta-resolve /tmp/lead-32880-r1/evidence-capture/scanner-driver.mjs /tmp/lead-32880-r1/evidence-capture/fixtures-2026-11-10T10-55-07.415040+00-00/R10-homes/fixture.json after
```

Each invocation builds a warm scanner, calls scan then recent(P)/recent(Q), and builds a separate cold scanner that starts with recent(P). Additional calls retain their event order. Each invocation writes a fresh timestamped run directory; both sides consume identical fixture bytes.

<table><tr><th>Before <a href="https://git.cafe/pingdotgg/t3code/commit/fa2f4ff2a2bac5ac92e07749f6b83b0003d642a0">fa2f4ff2a2bac5ac92e07749f6b83b0003d642a0</a></th><th>After <a href="https://git.cafe/pingdotgg/t3code/commit/df3ffc1249ca06ef43aaebe6a534f96034354700">df3ffc1249ca06ef43aaebe6a534f96034354700</a></th></tr><tr><td><pre>environment
{
  &quot;side&quot;: &quot;before&quot;,
  &quot;sha&quot;: &quot;fa2f4ff2a2bac5ac92e07749f6b83b0003d642a0&quot;,
  &quot;blob&quot;: &quot;dc67bd9387e04b91fa61d34ea47929c056256796&quot;,
  &quot;node&quot;: &quot;v26.12.1&quot;,
  &quot;os&quot;: &quot;linux&quot;,
  &quot;arch&quot;: &quot;x64&quot;,
  &quot;fixture&quot;: &quot;R10-homes&quot;,
  &quot;label&quot;: &quot;synthetic Codex home, schema per Codex 0.163.0&quot;,
  &quot;clock&quot;: &quot;2026-11-10T12:00:00.000Z&quot;,
  &quot;substitutions&quot;: [
    &quot;ServerSettings.layerTest: explicit synthetic provider homes&quot;,
    &quot;ServerConfig.layerTest: scratch-only state directory&quot;,
    &quot;ProjectStoreV2.listShells: synthetic persisted projects&quot;,
    &quot;HostProcess.HomeDirectory: synthetic home&quot;,
    &quot;Clock: fixed current time; real sleep retained&quot;
  ],
  &quot;realServices&quot;: [
    &quot;AgentSessionScanner&quot;,
    &quot;ProcessRunner&quot;,
    &quot;NodeServices FileSystem/Path/ChildProcess&quot;
  ]
}

fixture.database.readOnly
{
  &quot;home&quot;: &quot;&lt;fakehome&gt;/.codex&quot;,
  &quot;threadCount&quot;: 1,
  &quot;fixtureThreads&quot;: [
    {
      &quot;id&quot;: &quot;019a5f00-0000-7000-8000-00000000000a&quot;,
      &quot;cwd&quot;: &quot;&lt;fakehome&gt;/Documents/Codex/2026-11-08/new-chat&quot;,
      &quot;project_id&quot;: &quot;019a5f00-0000-7000-8000-0000000186a1&quot;,
      &quot;rollout_path&quot;: &quot;&lt;fakehome&gt;/.codex/sessions/2026/11/10/rollout-2026-11-10T10-00-00-019a5f00-0000-7000-8000-00000000000a.jsonl&quot;
    }
  ],
  &quot;rootsInInsertionOrder&quot;: [
    {
      &quot;rowid&quot;: 1,
      &quot;project_id&quot;: &quot;019a5f00-0000-7000-8000-0000000186a1&quot;,
      &quot;position&quot;: 0,
      &quot;path&quot;: &quot;&lt;fakehome&gt;/code/project&quot;
    }
  ]
}

fixture.database.readOnly
{
  &quot;home&quot;: &quot;&lt;fakehome&gt;/.codex-alias&quot;,
  &quot;threadCount&quot;: 1,
  &quot;fixtureThreads&quot;: [
    {
      &quot;id&quot;: &quot;019a5f00-0000-7000-8000-00000000000a&quot;,
      &quot;cwd&quot;: &quot;&lt;fakehome&gt;/Documents/Codex/2026-11-08/new-chat&quot;,
      &quot;project_id&quot;: &quot;019a5f00-0000-7000-8000-0000000186a1&quot;,
      &quot;rollout_path&quot;: &quot;&lt;fakehome&gt;/.codex/sessions/2026/11/10/rollout-2026-11-10T10-00-00-019a5f00-0000-7000-8000-00000000000a.jsonl&quot;
    }
  ],
  &quot;rootsInInsertionOrder&quot;: [
    {
      &quot;rowid&quot;: 1,
      &quot;project_id&quot;: &quot;019a5f00-0000-7000-8000-0000000186a1&quot;,
      &quot;position&quot;: 0,
      &quot;path&quot;: &quot;&lt;fakehome&gt;/code/project&quot;
    }
  ]
}

fixture.database.readOnly
{
  &quot;home&quot;: &quot;&lt;fakehome&gt;/.codex-work&quot;,
  &quot;threadCount&quot;: 1,
  &quot;fixtureThreads&quot;: [
    {
      &quot;id&quot;: &quot;019a5f00-0000-7000-8000-00000000000a&quot;,
      &quot;cwd&quot;: &quot;&lt;fakehome&gt;/Documents/Codex/2026-11-08/new-chat&quot;,
      &quot;project_id&quot;: &quot;019a5f00-0000-7000-8000-0000000186a2&quot;,
      &quot;rollout_path&quot;: &quot;&lt;fakehome&gt;/.codex-work/sessions/2026/11/10/rollout-2026-11-10T10-00-00-019a5f00-0000-7000-8000-00000000000a.jsonl&quot;
    }
  ],
  &quot;rootsInInsertionOrder&quot;: [
    {
      &quot;rowid&quot;: 1,
      &quot;project_id&quot;: &quot;019a5f00-0000-7000-8000-0000000186a2&quot;,
      &quot;position&quot;: 0,
      &quot;path&quot;: &quot;&lt;fakehome&gt;/code/other&quot;
    }
  ]
}

fixture.database.readOnly.failure
{
  &quot;home&quot;: &quot;&lt;fakehome&gt;/.codex-disabled&quot;,
  &quot;code&quot;: &quot;ERR_SQLITE_ERROR&quot;,
  &quot;message&quot;: &quot;unable to open database file&quot;
}

warm.scanner.created
{
  &quot;instanceNumber&quot;: 1,
  &quot;distinctFromPriorInstances&quot;: true,
  &quot;firstCall&quot;: &quot;scan&quot;
}

warm.scan
{
  &quot;candidates&quot;: [
    {
      &quot;path&quot;: &quot;&lt;fakehome&gt;/code/project&quot;,
      &quot;title&quot;: &quot;project&quot;,
      &quot;sources&quot;: [
        &quot;claudeAgent&quot;
      ],
      &quot;threadCount&quot;: 1,
      &quot;lastActiveAt&quot;: &quot;2026-11-10T11:59:58.000Z&quot;,
      &quot;alreadyImported&quot;: false,
      &quot;git&quot;: null
    },
    {
      &quot;path&quot;: &quot;&lt;fakehome&gt;/code/other&quot;,
      &quot;title&quot;: &quot;other&quot;,
      &quot;sources&quot;: [
        &quot;pi&quot;
      ],
      &quot;threadCount&quot;: 1,
      &quot;lastActiveAt&quot;: &quot;2026-11-10T11:59:57.000Z&quot;,
      &quot;alreadyImported&quot;: false,
      &quot;git&quot;: null
    }
  ],
  &quot;scannedAt&quot;: &quot;2026-11-10T12:00:00.000Z&quot;
}

warm.recent(P)
[
  {
    &quot;tag&quot;: &quot;Importable&quot;,
    &quot;id&quot;: &quot;claude-control&quot;,
    &quot;provider&quot;: &quot;claudeAgent&quot;,
    &quot;providerInstanceId&quot;: &quot;claudeAgent&quot;,
    &quot;file&quot;: &quot;&lt;fakehome&gt;/.claude/projects/synthetic/claude-control.jsonl&quot;,
    &quot;identity&quot;: {
      &quot;filePath&quot;: &quot;&lt;fakehome&gt;/.claude/projects/synthetic/claude-control.jsonl&quot;,
      &quot;size&quot;: 261,
      &quot;mtimeMs&quot;: 1794311998000,
      &quot;device&quot;: 64769,
      &quot;inode&quot;: &quot;2075174&quot;,
      &quot;birthtimeMs&quot;: 1794308107510,
      &quot;provider&quot;: &quot;claudeAgent&quot;,
      &quot;providerInstanceId&quot;: &quot;claudeAgent&quot;,
      &quot;providerSessionId&quot;: &quot;claude-control&quot;
    },
    &quot;title&quot;: &quot;R10 Claude preserved&quot;,
    &quot;messages&quot;: [
      {
        &quot;role&quot;: &quot;user&quot;,
        &quot;text&quot;: &quot;R10 Claude preserved&quot;
      }
    ]
  }
]

warm.recent(Q)
[
  {
    &quot;tag&quot;: &quot;Importable&quot;,
    &quot;id&quot;: &quot;pi-control&quot;,
    &quot;provider&quot;: &quot;pi&quot;,
    &quot;providerInstanceId&quot;: &quot;pi&quot;,
    &quot;file&quot;: &quot;&lt;fakehome&gt;/.pi/sessions/synthetic/pi-control.jsonl&quot;,
    &quot;identity&quot;: {
      &quot;filePath&quot;: &quot;&lt;fakehome&gt;/.pi/sessions/synthetic/pi-control.jsonl&quot;,
      &quot;size&quot;: 375,
      &quot;mtimeMs&quot;: 1794311997000,
      &quot;device&quot;: 64769,
      &quot;inode&quot;: &quot;2075177&quot;,
      &quot;birthtimeMs&quot;: 1794308107510,
      &quot;provider&quot;: &quot;pi&quot;,
      &quot;providerInstanceId&quot;: &quot;pi&quot;,
      &quot;providerSessionId&quot;: &quot;pi-control&quot;
    },
    &quot;title&quot;: &quot;R10 Pi preserved&quot;,
    &quot;messages&quot;: [
      {
        &quot;role&quot;: &quot;user&quot;,
        &quot;text&quot;: &quot;R10 Pi preserved&quot;
      }
    ]
  }
]

cold.scanner.created
{
  &quot;instanceNumber&quot;: 2,
  &quot;distinctFromPriorInstances&quot;: true,
  &quot;firstCall&quot;: &quot;recentThreads(P)&quot;
}

cold.recent(P)
[
  {
    &quot;tag&quot;: &quot;Importable&quot;,
    &quot;id&quot;: &quot;claude-control&quot;,
    &quot;provider&quot;: &quot;claudeAgent&quot;,
    &quot;providerInstanceId&quot;: &quot;claudeAgent&quot;,
    &quot;file&quot;: &quot;&lt;fakehome&gt;/.claude/projects/synthetic/claude-control.jsonl&quot;,
    &quot;identity&quot;: {
      &quot;filePath&quot;: &quot;&lt;fakehome&gt;/.claude/projects/synthetic/claude-control.jsonl&quot;,
      &quot;size&quot;: 261,
      &quot;mtimeMs&quot;: 1794311998000,
      &quot;device&quot;: 64769,
      &quot;inode&quot;: &quot;2075174&quot;,
      &quot;birthtimeMs&quot;: 1794308107510,
      &quot;provider&quot;: &quot;claudeAgent&quot;,
      &quot;providerInstanceId&quot;: &quot;claudeAgent&quot;,
      &quot;providerSessionId&quot;: &quot;claude-control&quot;
    },
    &quot;title&quot;: &quot;R10 Claude preserved&quot;,
    &quot;messages&quot;: [
      {
        &quot;role&quot;: &quot;user&quot;,
        &quot;text&quot;: &quot;R10 Claude preserved&quot;
      }
    ]
  }
]

cold.recent(Q)
[
  {
    &quot;tag&quot;: &quot;Importable&quot;,
    &quot;id&quot;: &quot;pi-control&quot;,
    &quot;provider&quot;: &quot;pi&quot;,
    &quot;providerInstanceId&quot;: &quot;pi&quot;,
    &quot;file&quot;: &quot;&lt;fakehome&gt;/.pi/sessions/synthetic/pi-control.jsonl&quot;,
    &quot;identity&quot;: {
      &quot;filePath&quot;: &quot;&lt;fakehome&gt;/.pi/sessions/synthetic/pi-control.jsonl&quot;,
      &quot;size&quot;: 375,
      &quot;mtimeMs&quot;: 1794311997000,
      &quot;device&quot;: 64769,
      &quot;inode&quot;: &quot;2075177&quot;,
      &quot;birthtimeMs&quot;: 1794308107510,
      &quot;provider&quot;: &quot;pi&quot;,
      &quot;providerInstanceId&quot;: &quot;pi&quot;,
      &quot;providerSessionId&quot;: &quot;pi-control&quot;
    },
    &quot;title&quot;: &quot;R10 Pi preserved&quot;,
    &quot;messages&quot;: [
      {
        &quot;role&quot;: &quot;user&quot;,
        &quot;text&quot;: &quot;R10 Pi preserved&quot;
      }
    ]
  }
]</pre></td><td><pre>environment
{
  &quot;side&quot;: &quot;after&quot;,
  &quot;sha&quot;: &quot;df3ffc1249ca06ef43aaebe6a534f96034354700&quot;,
  &quot;blob&quot;: &quot;1b32de22a8878fdf07db29403cd9cedb9692ea7d&quot;,
  &quot;node&quot;: &quot;v26.12.1&quot;,
  &quot;os&quot;: &quot;linux&quot;,
  &quot;arch&quot;: &quot;x64&quot;,
  &quot;fixture&quot;: &quot;R10-homes&quot;,
  &quot;label&quot;: &quot;synthetic Codex home, schema per Codex 0.163.0&quot;,
  &quot;clock&quot;: &quot;2026-11-10T12:00:00.000Z&quot;,
  &quot;substitutions&quot;: [
    &quot;ServerSettings.layerTest: explicit synthetic provider homes&quot;,
    &quot;ServerConfig.layerTest: scratch-only state directory&quot;,
    &quot;ProjectStoreV2.listShells: synthetic persisted projects&quot;,
    &quot;HostProcess.HomeDirectory: synthetic home&quot;,
    &quot;Clock: fixed current time; real sleep retained&quot;
  ],
  &quot;realServices&quot;: [
    &quot;AgentSessionScanner&quot;,
    &quot;ProcessRunner&quot;,
    &quot;NodeServices FileSystem/Path/ChildProcess&quot;
  ]
}

fixture.database.readOnly
{
  &quot;home&quot;: &quot;&lt;fakehome&gt;/.codex&quot;,
  &quot;threadCount&quot;: 1,
  &quot;fixtureThreads&quot;: [
    {
      &quot;id&quot;: &quot;019a5f00-0000-7000-8000-00000000000a&quot;,
      &quot;cwd&quot;: &quot;&lt;fakehome&gt;/Documents/Codex/2026-11-08/new-chat&quot;,
      &quot;project_id&quot;: &quot;019a5f00-0000-7000-8000-0000000186a1&quot;,
      &quot;rollout_path&quot;: &quot;&lt;fakehome&gt;/.codex/sessions/2026/11/10/rollout-2026-11-10T10-00-00-019a5f00-0000-7000-8000-00000000000a.jsonl&quot;
    }
  ],
  &quot;rootsInInsertionOrder&quot;: [
    {
      &quot;rowid&quot;: 1,
      &quot;project_id&quot;: &quot;019a5f00-0000-7000-8000-0000000186a1&quot;,
      &quot;position&quot;: 0,
      &quot;path&quot;: &quot;&lt;fakehome&gt;/code/project&quot;
    }
  ]
}

fixture.database.readOnly
{
  &quot;home&quot;: &quot;&lt;fakehome&gt;/.codex-alias&quot;,
  &quot;threadCount&quot;: 1,
  &quot;fixtureThreads&quot;: [
    {
      &quot;id&quot;: &quot;019a5f00-0000-7000-8000-00000000000a&quot;,
      &quot;cwd&quot;: &quot;&lt;fakehome&gt;/Documents/Codex/2026-11-08/new-chat&quot;,
      &quot;project_id&quot;: &quot;019a5f00-0000-7000-8000-0000000186a1&quot;,
      &quot;rollout_path&quot;: &quot;&lt;fakehome&gt;/.codex/sessions/2026/11/10/rollout-2026-11-10T10-00-00-019a5f00-0000-7000-8000-00000000000a.jsonl&quot;
    }
  ],
  &quot;rootsInInsertionOrder&quot;: [
    {
      &quot;rowid&quot;: 1,
      &quot;project_id&quot;: &quot;019a5f00-0000-7000-8000-0000000186a1&quot;,
      &quot;position&quot;: 0,
      &quot;path&quot;: &quot;&lt;fakehome&gt;/code/project&quot;
    }
  ]
}

fixture.database.readOnly
{
  &quot;home&quot;: &quot;&lt;fakehome&gt;/.codex-work&quot;,
  &quot;threadCount&quot;: 1,
  &quot;fixtureThreads&quot;: [
    {
      &quot;id&quot;: &quot;019a5f00-0000-7000-8000-00000000000a&quot;,
      &quot;cwd&quot;: &quot;&lt;fakehome&gt;/Documents/Codex/2026-11-08/new-chat&quot;,
      &quot;project_id&quot;: &quot;019a5f00-0000-7000-8000-0000000186a2&quot;,
      &quot;rollout_path&quot;: &quot;&lt;fakehome&gt;/.codex-work/sessions/2026/11/10/rollout-2026-11-10T10-00-00-019a5f00-0000-7000-8000-00000000000a.jsonl&quot;
    }
  ],
  &quot;rootsInInsertionOrder&quot;: [
    {
      &quot;rowid&quot;: 1,
      &quot;project_id&quot;: &quot;019a5f00-0000-7000-8000-0000000186a2&quot;,
      &quot;position&quot;: 0,
      &quot;path&quot;: &quot;&lt;fakehome&gt;/code/other&quot;
    }
  ]
}

fixture.database.readOnly.failure
{
  &quot;home&quot;: &quot;&lt;fakehome&gt;/.codex-disabled&quot;,
  &quot;code&quot;: &quot;ERR_SQLITE_ERROR&quot;,
  &quot;message&quot;: &quot;unable to open database file&quot;
}

warm.scanner.created
{
  &quot;instanceNumber&quot;: 1,
  &quot;distinctFromPriorInstances&quot;: true,
  &quot;firstCall&quot;: &quot;scan&quot;
}

warm.scan
{
  &quot;candidates&quot;: [
    {
      &quot;path&quot;: &quot;&lt;fakehome&gt;/code/other&quot;,
      &quot;title&quot;: &quot;other&quot;,
      &quot;sources&quot;: [
        &quot;codex&quot;,
        &quot;pi&quot;
      ],
      &quot;threadCount&quot;: 2,
      &quot;lastActiveAt&quot;: &quot;2026-11-10T11:59:59.000Z&quot;,
      &quot;alreadyImported&quot;: false,
      &quot;git&quot;: null
    },
    {
      &quot;path&quot;: &quot;&lt;fakehome&gt;/code/project&quot;,
      &quot;title&quot;: &quot;project&quot;,
      &quot;sources&quot;: [
        &quot;claudeAgent&quot;,
        &quot;codex&quot;
      ],
      &quot;threadCount&quot;: 2,
      &quot;lastActiveAt&quot;: &quot;2026-11-10T11:59:59.000Z&quot;,
      &quot;alreadyImported&quot;: false,
      &quot;git&quot;: null
    }
  ],
  &quot;scannedAt&quot;: &quot;2026-11-10T12:00:00.000Z&quot;
}

warm.recent(P)
[
  {
    &quot;tag&quot;: &quot;Importable&quot;,
    &quot;id&quot;: &quot;019a5f00-0000-7000-8000-00000000000a&quot;,
    &quot;provider&quot;: &quot;codex&quot;,
    &quot;providerInstanceId&quot;: &quot;codex&quot;,
    &quot;file&quot;: &quot;&lt;fakehome&gt;/.codex/sessions/2026/11/10/rollout-2026-11-10T10-00-00-019a5f00-0000-7000-8000-00000000000a.jsonl&quot;,
    &quot;identity&quot;: {
      &quot;filePath&quot;: &quot;&lt;fakehome&gt;/.codex/sessions/2026/11/10/rollout-2026-11-10T10-00-00-019a5f00-0000-7000-8000-00000000000a.jsonl&quot;,
      &quot;size&quot;: 390,
      &quot;mtimeMs&quot;: 1794311999000,
      &quot;device&quot;: 64769,
      &quot;inode&quot;: &quot;2075157&quot;,
      &quot;birthtimeMs&quot;: 1794308107505,
      &quot;provider&quot;: &quot;codex&quot;,
      &quot;providerInstanceId&quot;: &quot;codex&quot;,
      &quot;providerSessionId&quot;: &quot;019a5f00-0000-7000-8000-00000000000a&quot;
    },
    &quot;title&quot;: &quot;R10 primary home maps P&quot;,
    &quot;messages&quot;: [
      {
        &quot;role&quot;: &quot;user&quot;,
        &quot;text&quot;: &quot;R10 primary home maps P&quot;
      }
    ]
  },
  {
    &quot;tag&quot;: &quot;Importable&quot;,
    &quot;id&quot;: &quot;claude-control&quot;,
    &quot;provider&quot;: &quot;claudeAgent&quot;,
    &quot;providerInstanceId&quot;: &quot;claudeAgent&quot;,
    &quot;file&quot;: &quot;&lt;fakehome&gt;/.claude/projects/synthetic/claude-control.jsonl&quot;,
    &quot;identity&quot;: {
      &quot;filePath&quot;: &quot;&lt;fakehome&gt;/.claude/projects/synthetic/claude-control.jsonl&quot;,
      &quot;size&quot;: 261,
      &quot;mtimeMs&quot;: 1794311998000,
      &quot;device&quot;: 64769,
      &quot;inode&quot;: &quot;2075174&quot;,
      &quot;birthtimeMs&quot;: 1794308107510,
      &quot;provider&quot;: &quot;claudeAgent&quot;,
      &quot;providerInstanceId&quot;: &quot;claudeAgent&quot;,
      &quot;providerSessionId&quot;: &quot;claude-control&quot;
    },
    &quot;title&quot;: &quot;R10 Claude preserved&quot;,
    &quot;messages&quot;: [
      {
        &quot;role&quot;: &quot;user&quot;,
        &quot;text&quot;: &quot;R10 Claude preserved&quot;
      }
    ]
  }
]

warm.recent(Q)
[
  {
    &quot;tag&quot;: &quot;Importable&quot;,
    &quot;id&quot;: &quot;019a5f00-0000-7000-8000-00000000000a&quot;,
    &quot;provider&quot;: &quot;codex&quot;,
    &quot;providerInstanceId&quot;: &quot;codex-work&quot;,
    &quot;file&quot;: &quot;&lt;fakehome&gt;/.codex-work/sessions/2026/11/10/rollout-2026-11-10T10-00-00-019a5f00-0000-7000-8000-00000000000a.jsonl&quot;,
    &quot;identity&quot;: {
      &quot;filePath&quot;: &quot;&lt;fakehome&gt;/.codex-work/sessions/2026/11/10/rollout-2026-11-10T10-00-00-019a5f00-0000-7000-8000-00000000000a.jsonl&quot;,
      &quot;size&quot;: 388,
      &quot;mtimeMs&quot;: 1794311999000,
      &quot;device&quot;: 64769,
      &quot;inode&quot;: &quot;2075165&quot;,
      &quot;birthtimeMs&quot;: 1794308107509,
      &quot;provider&quot;: &quot;codex&quot;,
      &quot;providerInstanceId&quot;: &quot;codex-work&quot;,
      &quot;providerSessionId&quot;: &quot;019a5f00-0000-7000-8000-00000000000a&quot;
    },
    &quot;title&quot;: &quot;R10 other home maps Q&quot;,
    &quot;messages&quot;: [
      {
        &quot;role&quot;: &quot;user&quot;,
        &quot;text&quot;: &quot;R10 other home maps Q&quot;
      }
    ]
  },
  {
    &quot;tag&quot;: &quot;Importable&quot;,
    &quot;id&quot;: &quot;pi-control&quot;,
    &quot;provider&quot;: &quot;pi&quot;,
    &quot;providerInstanceId&quot;: &quot;pi&quot;,
    &quot;file&quot;: &quot;&lt;fakehome&gt;/.pi/sessions/synthetic/pi-control.jsonl&quot;,
    &quot;identity&quot;: {
      &quot;filePath&quot;: &quot;&lt;fakehome&gt;/.pi/sessions/synthetic/pi-control.jsonl&quot;,
      &quot;size&quot;: 375,
      &quot;mtimeMs&quot;: 1794311997000,
      &quot;device&quot;: 64769,
      &quot;inode&quot;: &quot;2075177&quot;,
      &quot;birthtimeMs&quot;: 1794308107510,
      &quot;provider&quot;: &quot;pi&quot;,
      &quot;providerInstanceId&quot;: &quot;pi&quot;,
      &quot;providerSessionId&quot;: &quot;pi-control&quot;
    },
    &quot;title&quot;: &quot;R10 Pi preserved&quot;,
    &quot;messages&quot;: [
      {
        &quot;role&quot;: &quot;user&quot;,
        &quot;text&quot;: &quot;R10 Pi preserved&quot;
      }
    ]
  }
]

cold.scanner.created
{
  &quot;instanceNumber&quot;: 2,
  &quot;distinctFromPriorInstances&quot;: true,
  &quot;firstCall&quot;: &quot;recentThreads(P)&quot;
}

cold.recent(P)
[
  {
    &quot;tag&quot;: &quot;Importable&quot;,
    &quot;id&quot;: &quot;019a5f00-0000-7000-8000-00000000000a&quot;,
    &quot;provider&quot;: &quot;codex&quot;,
    &quot;providerInstanceId&quot;: &quot;codex&quot;,
    &quot;file&quot;: &quot;&lt;fakehome&gt;/.codex/sessions/2026/11/10/rollout-2026-11-10T10-00-00-019a5f00-0000-7000-8000-00000000000a.jsonl&quot;,
    &quot;identity&quot;: {
      &quot;filePath&quot;: &quot;&lt;fakehome&gt;/.codex/sessions/2026/11/10/rollout-2026-11-10T10-00-00-019a5f00-0000-7000-8000-00000000000a.jsonl&quot;,
      &quot;size&quot;: 390,
      &quot;mtimeMs&quot;: 1794311999000,
      &quot;device&quot;: 64769,
      &quot;inode&quot;: &quot;2075157&quot;,
      &quot;birthtimeMs&quot;: 1794308107505,
      &quot;provider&quot;: &quot;codex&quot;,
      &quot;providerInstanceId&quot;: &quot;codex&quot;,
      &quot;providerSessionId&quot;: &quot;019a5f00-0000-7000-8000-00000000000a&quot;
    },
    &quot;title&quot;: &quot;R10 primary home maps P&quot;,
    &quot;messages&quot;: [
      {
        &quot;role&quot;: &quot;user&quot;,
        &quot;text&quot;: &quot;R10 primary home maps P&quot;
      }
    ]
  },
  {
    &quot;tag&quot;: &quot;Importable&quot;,
    &quot;id&quot;: &quot;claude-control&quot;,
    &quot;provider&quot;: &quot;claudeAgent&quot;,
    &quot;providerInstanceId&quot;: &quot;claudeAgent&quot;,
    &quot;file&quot;: &quot;&lt;fakehome&gt;/.claude/projects/synthetic/claude-control.jsonl&quot;,
    &quot;identity&quot;: {
      &quot;filePath&quot;: &quot;&lt;fakehome&gt;/.claude/projects/synthetic/claude-control.jsonl&quot;,
      &quot;size&quot;: 261,
      &quot;mtimeMs&quot;: 1794311998000,
      &quot;device&quot;: 64769,
      &quot;inode&quot;: &quot;2075174&quot;,
      &quot;birthtimeMs&quot;: 1794308107510,
      &quot;provider&quot;: &quot;claudeAgent&quot;,
      &quot;providerInstanceId&quot;: &quot;claudeAgent&quot;,
      &quot;providerSessionId&quot;: &quot;claude-control&quot;
    },
    &quot;title&quot;: &quot;R10 Claude preserved&quot;,
    &quot;messages&quot;: [
      {
        &quot;role&quot;: &quot;user&quot;,
        &quot;text&quot;: &quot;R10 Claude preserved&quot;
      }
    ]
  }
]

cold.recent(Q)
[
  {
    &quot;tag&quot;: &quot;Importable&quot;,
    &quot;id&quot;: &quot;019a5f00-0000-7000-8000-00000000000a&quot;,
    &quot;provider&quot;: &quot;codex&quot;,
    &quot;providerInstanceId&quot;: &quot;codex-work&quot;,
    &quot;file&quot;: &quot;&lt;fakehome&gt;/.codex-work/sessions/2026/11/10/rollout-2026-11-10T10-00-00-019a5f00-0000-7000-8000-00000000000a.jsonl&quot;,
    &quot;identity&quot;: {
      &quot;filePath&quot;: &quot;&lt;fakehome&gt;/.codex-work/sessions/2026/11/10/rollout-2026-11-10T10-00-00-019a5f00-0000-7000-8000-00000000000a.jsonl&quot;,
      &quot;size&quot;: 388,
      &quot;mtimeMs&quot;: 1794311999000,
      &quot;device&quot;: 64769,
      &quot;inode&quot;: &quot;2075165&quot;,
      &quot;birthtimeMs&quot;: 1794308107509,
      &quot;provider&quot;: &quot;codex&quot;,
      &quot;providerInstanceId&quot;: &quot;codex-work&quot;,
      &quot;providerSessionId&quot;: &quot;019a5f00-0000-7000-8000-00000000000a&quot;
    },
    &quot;title&quot;: &quot;R10 other home maps Q&quot;,
    &quot;messages&quot;: [
      {
        &quot;role&quot;: &quot;user&quot;,
        &quot;text&quot;: &quot;R10 other home maps Q&quot;
      }
    ]
  },
  {
    &quot;tag&quot;: &quot;Importable&quot;,
    &quot;id&quot;: &quot;pi-control&quot;,
    &quot;provider&quot;: &quot;pi&quot;,
    &quot;providerInstanceId&quot;: &quot;pi&quot;,
    &quot;file&quot;: &quot;&lt;fakehome&gt;/.pi/sessions/synthetic/pi-control.jsonl&quot;,
    &quot;identity&quot;: {
      &quot;filePath&quot;: &quot;&lt;fakehome&gt;/.pi/sessions/synthetic/pi-control.jsonl&quot;,
      &quot;size&quot;: 375,
      &quot;mtimeMs&quot;: 1794311997000,
      &quot;device&quot;: 64769,
      &quot;inode&quot;: &quot;2075177&quot;,
      &quot;birthtimeMs&quot;: 1794308107510,
      &quot;provider&quot;: &quot;pi&quot;,
      &quot;providerInstanceId&quot;: &quot;pi&quot;,
      &quot;providerSessionId&quot;: &quot;pi-control&quot;
    },
    &quot;title&quot;: &quot;R10 Pi preserved&quot;,
    &quot;messages&quot;: [
      {
        &quot;role&quot;: &quot;user&quot;,
        &quot;text&quot;: &quot;R10 Pi preserved&quot;
      }
    ]
  }
]</pre></td></tr></table>

Run receipt: both exit 0; fixture SHA-256 maps match between sides and before/after each invocation. Warm and cold stable outcomes match exactly, including source identities and messages.

## R11-age: R11, R14

Fixed clock and exact cutoff; scan counts all three mapped sessions, recent accepts only exact 30-day cutoff

Fixture: **synthetic Codex home, schema per Codex 0.163.0**. P and Q are ordinary directories. Viewport/theme: N/A. Real filesystem, subprocess runner and scanner; only settings, project-store records, host home and clock are injected.

Seed command: `python3 /tmp/lead-32880-r1/evidence-capture/seed-fixtures.py`. The fixture below records exact JSONL content, timestamps, thread assignments and root insertion order. Read-only database inspection is included in each output.

```json
{
  "name": "R11-age",
  "rows": [
    "R11",
    "R14"
  ],
  "description": "Fixed clock and exact cutoff; scan counts all three mapped sessions, recent accepts only exact 30-day cutoff",
  "home": "<fakehome>",
  "now": "2026-11-10T12:00:00.000Z",
  "roots": {
    "P": "<fakehome>/code/project",
    "Q": "<fakehome>/code/other"
  },
  "files": [
    {
      "path": "<fakehome>/.codex/sessions/2026/11/10/rollout-2026-11-10T10-00-00-019a5f00-0000-7000-8000-00000000006f.jsonl",
      "threadId": "019a5f00-0000-7000-8000-00000000006f",
      "rolloutId": "019a5f00-0000-7000-8000-00000000006f",
      "cwd": "<fakehome>/Documents/Codex/2026-11-08/new-chat",
      "mtimeMs": 1791719999000,
      "records": [
        "{\"timestamp\":\"2026-11-10T12:00:00.000Z\",\"type\":\"session_meta\",\"payload\":{\"id\":\"019a5f00-0000-7000-8000-00000000006f\",\"cwd\":\"<fakehome>/Documents/Codex/2026-11-08/new-chat\"}}",
        "{\"timestamp\":\"2026-11-10T12:00:00.000Z\",\"type\":\"event_msg\",\"payload\":{\"type\":\"user_message\",\"message\":\"R11 older than cutoff\"}}"
      ]
    },
    {
      "path": "<fakehome>/.codex/sessions/2026/11/10/rollout-2026-11-10T10-00-00-019a5f00-0000-7000-8000-000000000070.jsonl",
      "threadId": "019a5f00-0000-7000-8000-000000000070",
      "rolloutId": "019a5f00-0000-7000-8000-000000000070",
      "cwd": "<fakehome>/Documents/Codex/2026-11-08/new-chat",
      "mtimeMs": 1794312001000,
      "records": [
        "{\"timestamp\":\"2026-11-10T12:00:00.000Z\",\"type\":\"session_meta\",\"payload\":{\"id\":\"019a5f00-0000-7000-8000-000000000070\",\"cwd\":\"<fakehome>/Documents/Codex/2026-11-08/new-chat\"}}",
        "{\"timestamp\":\"2026-11-10T12:00:00.000Z\",\"type\":\"event_msg\",\"payload\":{\"type\":\"user_message\",\"message\":\"R11 future mtime\"}}"
      ]
    },
    {
      "path": "<fakehome>/.codex/sessions/2026/11/10/rollout-2026-11-10T10-00-00-019a5f00-0000-7000-8000-000000000071.jsonl",
      "threadId": "019a5f00-0000-7000-8000-000000000071",
      "rolloutId": "019a5f00-0000-7000-8000-000000000071",
      "cwd": "<fakehome>/Documents/Codex/2026-11-08/new-chat",
      "mtimeMs": 1791720000000,
      "records": [
        "{\"timestamp\":\"2026-11-10T12:00:00.000Z\",\"type\":\"session_meta\",\"payload\":{\"id\":\"019a5f00-0000-7000-8000-000000000071\",\"cwd\":\"<fakehome>/Documents/Codex/2026-11-08/new-chat\"}}",
        "{\"timestamp\":\"2026-11-10T12:00:00.000Z\",\"type\":\"event_msg\",\"payload\":{\"type\":\"user_message\",\"message\":\"R11 exact cutoff inclusive\"}}"
      ]
    }
  ],
  "assignments": [
    {
      "threadId": "019a5f00-0000-7000-8000-00000000006f",
      "projectId": "019a5f00-0000-7000-8000-0000000186a1",
      "cwd": "<fakehome>/Documents/Codex/2026-11-08/new-chat"
    },
    {
      "threadId": "019a5f00-0000-7000-8000-000000000070",
      "projectId": "019a5f00-0000-7000-8000-0000000186a1",
      "cwd": "<fakehome>/Documents/Codex/2026-11-08/new-chat"
    },
    {
      "threadId": "019a5f00-0000-7000-8000-000000000071",
      "projectId": "019a5f00-0000-7000-8000-0000000186a1",
      "cwd": "<fakehome>/Documents/Codex/2026-11-08/new-chat"
    }
  ],
  "rootInsertionOrder": [
    {
      "projectId": "019a5f00-0000-7000-8000-0000000186a1",
      "position": 0,
      "path": "<fakehome>/code/project"
    }
  ]
}
```

Commands, before then after:

```sh
cd /home/user/wt/pr-32880-before/apps/server
HOME='<fakehome>' CODEX_HOME='<fakehome>/.codex' T3CODE_DEV_SEED=0 /home/user/.local/share/vite-plus/js_runtime/node/26.12.1/bin/node --experimental-import-meta-resolve /tmp/lead-32880-r1/evidence-capture/scanner-driver.mjs /tmp/lead-32880-r1/evidence-capture/fixtures-2026-11-10T10-55-07.415040+00-00/R11-age/fixture.json before

cd /home/user/wt/pr-32880-after/apps/server
HOME='<fakehome>' CODEX_HOME='<fakehome>/.codex' T3CODE_DEV_SEED=0 /home/user/.local/share/vite-plus/js_runtime/node/26.12.1/bin/node --experimental-import-meta-resolve /tmp/lead-32880-r1/evidence-capture/scanner-driver.mjs /tmp/lead-32880-r1/evidence-capture/fixtures-2026-11-10T10-55-07.415040+00-00/R11-age/fixture.json after
```

Each invocation builds a warm scanner, calls scan then recent(P)/recent(Q), and builds a separate cold scanner that starts with recent(P). Additional calls retain their event order. Each invocation writes a fresh timestamped run directory; both sides consume identical fixture bytes.

<table><tr><th>Before <a href="https://git.cafe/pingdotgg/t3code/commit/fa2f4ff2a2bac5ac92e07749f6b83b0003d642a0">fa2f4ff2a2bac5ac92e07749f6b83b0003d642a0</a></th><th>After <a href="https://git.cafe/pingdotgg/t3code/commit/df3ffc1249ca06ef43aaebe6a534f96034354700">df3ffc1249ca06ef43aaebe6a534f96034354700</a></th></tr><tr><td><pre>environment
{
  &quot;side&quot;: &quot;before&quot;,
  &quot;sha&quot;: &quot;fa2f4ff2a2bac5ac92e07749f6b83b0003d642a0&quot;,
  &quot;blob&quot;: &quot;dc67bd9387e04b91fa61d34ea47929c056256796&quot;,
  &quot;node&quot;: &quot;v26.12.1&quot;,
  &quot;os&quot;: &quot;linux&quot;,
  &quot;arch&quot;: &quot;x64&quot;,
  &quot;fixture&quot;: &quot;R11-age&quot;,
  &quot;label&quot;: &quot;synthetic Codex home, schema per Codex 0.163.0&quot;,
  &quot;clock&quot;: &quot;2026-11-10T12:00:00.000Z&quot;,
  &quot;substitutions&quot;: [
    &quot;ServerSettings.layerTest: explicit synthetic provider homes&quot;,
    &quot;ServerConfig.layerTest: scratch-only state directory&quot;,
    &quot;ProjectStoreV2.listShells: synthetic persisted projects&quot;,
    &quot;HostProcess.HomeDirectory: synthetic home&quot;,
    &quot;Clock: fixed current time; real sleep retained&quot;
  ],
  &quot;realServices&quot;: [
    &quot;AgentSessionScanner&quot;,
    &quot;ProcessRunner&quot;,
    &quot;NodeServices FileSystem/Path/ChildProcess&quot;
  ]
}

fixture.database.readOnly
{
  &quot;home&quot;: &quot;&lt;fakehome&gt;/.codex&quot;,
  &quot;threadCount&quot;: 3,
  &quot;fixtureThreads&quot;: [
    {
      &quot;id&quot;: &quot;019a5f00-0000-7000-8000-00000000006f&quot;,
      &quot;cwd&quot;: &quot;&lt;fakehome&gt;/Documents/Codex/2026-11-08/new-chat&quot;,
      &quot;project_id&quot;: &quot;019a5f00-0000-7000-8000-0000000186a1&quot;,
      &quot;rollout_path&quot;: &quot;&lt;fakehome&gt;/.codex/sessions/2026/11/10/rollout-2026-11-10T10-00-00-019a5f00-0000-7000-8000-00000000006f.jsonl&quot;
    },
    {
      &quot;id&quot;: &quot;019a5f00-0000-7000-8000-000000000070&quot;,
      &quot;cwd&quot;: &quot;&lt;fakehome&gt;/Documents/Codex/2026-11-08/new-chat&quot;,
      &quot;project_id&quot;: &quot;019a5f00-0000-7000-8000-0000000186a1&quot;,
      &quot;rollout_path&quot;: &quot;&lt;fakehome&gt;/.codex/sessions/2026/11/10/rollout-2026-11-10T10-00-00-019a5f00-0000-7000-8000-000000000070.jsonl&quot;
    },
    {
      &quot;id&quot;: &quot;019a5f00-0000-7000-8000-000000000071&quot;,
      &quot;cwd&quot;: &quot;&lt;fakehome&gt;/Documents/Codex/2026-11-08/new-chat&quot;,
      &quot;project_id&quot;: &quot;019a5f00-0000-7000-8000-0000000186a1&quot;,
      &quot;rollout_path&quot;: &quot;&lt;fakehome&gt;/.codex/sessions/2026/11/10/rollout-2026-11-10T10-00-00-019a5f00-0000-7000-8000-000000000071.jsonl&quot;
    }
  ],
  &quot;rootsInInsertionOrder&quot;: [
    {
      &quot;rowid&quot;: 1,
      &quot;project_id&quot;: &quot;019a5f00-0000-7000-8000-0000000186a1&quot;,
      &quot;position&quot;: 0,
      &quot;path&quot;: &quot;&lt;fakehome&gt;/code/project&quot;
    }
  ]
}

warm.scanner.created
{
  &quot;instanceNumber&quot;: 1,
  &quot;distinctFromPriorInstances&quot;: true,
  &quot;firstCall&quot;: &quot;scan&quot;
}

warm.scan
{
  &quot;candidates&quot;: [],
  &quot;scannedAt&quot;: &quot;2026-11-10T12:00:00.000Z&quot;
}

warm.recent(P)
[]

warm.recent(Q)
[]

cold.scanner.created
{
  &quot;instanceNumber&quot;: 2,
  &quot;distinctFromPriorInstances&quot;: true,
  &quot;firstCall&quot;: &quot;recentThreads(P)&quot;
}

cold.recent(P)
[]

cold.recent(Q)
[]</pre></td><td><pre>environment
{
  &quot;side&quot;: &quot;after&quot;,
  &quot;sha&quot;: &quot;df3ffc1249ca06ef43aaebe6a534f96034354700&quot;,
  &quot;blob&quot;: &quot;1b32de22a8878fdf07db29403cd9cedb9692ea7d&quot;,
  &quot;node&quot;: &quot;v26.12.1&quot;,
  &quot;os&quot;: &quot;linux&quot;,
  &quot;arch&quot;: &quot;x64&quot;,
  &quot;fixture&quot;: &quot;R11-age&quot;,
  &quot;label&quot;: &quot;synthetic Codex home, schema per Codex 0.163.0&quot;,
  &quot;clock&quot;: &quot;2026-11-10T12:00:00.000Z&quot;,
  &quot;substitutions&quot;: [
    &quot;ServerSettings.layerTest: explicit synthetic provider homes&quot;,
    &quot;ServerConfig.layerTest: scratch-only state directory&quot;,
    &quot;ProjectStoreV2.listShells: synthetic persisted projects&quot;,
    &quot;HostProcess.HomeDirectory: synthetic home&quot;,
    &quot;Clock: fixed current time; real sleep retained&quot;
  ],
  &quot;realServices&quot;: [
    &quot;AgentSessionScanner&quot;,
    &quot;ProcessRunner&quot;,
    &quot;NodeServices FileSystem/Path/ChildProcess&quot;
  ]
}

fixture.database.readOnly
{
  &quot;home&quot;: &quot;&lt;fakehome&gt;/.codex&quot;,
  &quot;threadCount&quot;: 3,
  &quot;fixtureThreads&quot;: [
    {
      &quot;id&quot;: &quot;019a5f00-0000-7000-8000-00000000006f&quot;,
      &quot;cwd&quot;: &quot;&lt;fakehome&gt;/Documents/Codex/2026-11-08/new-chat&quot;,
      &quot;project_id&quot;: &quot;019a5f00-0000-7000-8000-0000000186a1&quot;,
      &quot;rollout_path&quot;: &quot;&lt;fakehome&gt;/.codex/sessions/2026/11/10/rollout-2026-11-10T10-00-00-019a5f00-0000-7000-8000-00000000006f.jsonl&quot;
    },
    {
      &quot;id&quot;: &quot;019a5f00-0000-7000-8000-000000000070&quot;,
      &quot;cwd&quot;: &quot;&lt;fakehome&gt;/Documents/Codex/2026-11-08/new-chat&quot;,
      &quot;project_id&quot;: &quot;019a5f00-0000-7000-8000-0000000186a1&quot;,
      &quot;rollout_path&quot;: &quot;&lt;fakehome&gt;/.codex/sessions/2026/11/10/rollout-2026-11-10T10-00-00-019a5f00-0000-7000-8000-000000000070.jsonl&quot;
    },
    {
      &quot;id&quot;: &quot;019a5f00-0000-7000-8000-000000000071&quot;,
      &quot;cwd&quot;: &quot;&lt;fakehome&gt;/Documents/Codex/2026-11-08/new-chat&quot;,
      &quot;project_id&quot;: &quot;019a5f00-0000-7000-8000-0000000186a1&quot;,
      &quot;rollout_path&quot;: &quot;&lt;fakehome&gt;/.codex/sessions/2026/11/10/rollout-2026-11-10T10-00-00-019a5f00-0000-7000-8000-000000000071.jsonl&quot;
    }
  ],
  &quot;rootsInInsertionOrder&quot;: [
    {
      &quot;rowid&quot;: 1,
      &quot;project_id&quot;: &quot;019a5f00-0000-7000-8000-0000000186a1&quot;,
      &quot;position&quot;: 0,
      &quot;path&quot;: &quot;&lt;fakehome&gt;/code/project&quot;
    }
  ]
}

warm.scanner.created
{
  &quot;instanceNumber&quot;: 1,
  &quot;distinctFromPriorInstances&quot;: true,
  &quot;firstCall&quot;: &quot;scan&quot;
}

warm.scan
{
  &quot;candidates&quot;: [
    {
      &quot;path&quot;: &quot;&lt;fakehome&gt;/code/project&quot;,
      &quot;title&quot;: &quot;project&quot;,
      &quot;sources&quot;: [
        &quot;codex&quot;
      ],
      &quot;threadCount&quot;: 3,
      &quot;lastActiveAt&quot;: &quot;2026-11-10T12:00:01.000Z&quot;,
      &quot;alreadyImported&quot;: false,
      &quot;git&quot;: null
    }
  ],
  &quot;scannedAt&quot;: &quot;2026-11-10T12:00:00.000Z&quot;
}

warm.recent(P)
[
  {
    &quot;tag&quot;: &quot;Importable&quot;,
    &quot;id&quot;: &quot;019a5f00-0000-7000-8000-000000000071&quot;,
    &quot;provider&quot;: &quot;codex&quot;,
    &quot;providerInstanceId&quot;: &quot;codex&quot;,
    &quot;file&quot;: &quot;&lt;fakehome&gt;/.codex/sessions/2026/11/10/rollout-2026-11-10T10-00-00-019a5f00-0000-7000-8000-000000000071.jsonl&quot;,
    &quot;identity&quot;: {
      &quot;filePath&quot;: &quot;&lt;fakehome&gt;/.codex/sessions/2026/11/10/rollout-2026-11-10T10-00-00-019a5f00-0000-7000-8000-000000000071.jsonl&quot;,
      &quot;size&quot;: 391,
      &quot;mtimeMs&quot;: 1791720000000,
      &quot;device&quot;: 64769,
      &quot;inode&quot;: &quot;2075198&quot;,
      &quot;birthtimeMs&quot;: 1794308107516,
      &quot;provider&quot;: &quot;codex&quot;,
      &quot;providerInstanceId&quot;: &quot;codex&quot;,
      &quot;providerSessionId&quot;: &quot;019a5f00-0000-7000-8000-000000000071&quot;
    },
    &quot;title&quot;: &quot;R11 exact cutoff inclusive&quot;,
    &quot;messages&quot;: [
      {
        &quot;role&quot;: &quot;user&quot;,
        &quot;text&quot;: &quot;R11 exact cutoff inclusive&quot;
      }
    ]
  }
]

warm.recent(Q)
[]

cold.scanner.created
{
  &quot;instanceNumber&quot;: 2,
  &quot;distinctFromPriorInstances&quot;: true,
  &quot;firstCall&quot;: &quot;recentThreads(P)&quot;
}

cold.recent(P)
[
  {
    &quot;tag&quot;: &quot;Importable&quot;,
    &quot;id&quot;: &quot;019a5f00-0000-7000-8000-000000000071&quot;,
    &quot;provider&quot;: &quot;codex&quot;,
    &quot;providerInstanceId&quot;: &quot;codex&quot;,
    &quot;file&quot;: &quot;&lt;fakehome&gt;/.codex/sessions/2026/11/10/rollout-2026-11-10T10-00-00-019a5f00-0000-7000-8000-000000000071.jsonl&quot;,
    &quot;identity&quot;: {
      &quot;filePath&quot;: &quot;&lt;fakehome&gt;/.codex/sessions/2026/11/10/rollout-2026-11-10T10-00-00-019a5f00-0000-7000-8000-000000000071.jsonl&quot;,
      &quot;size&quot;: 391,
      &quot;mtimeMs&quot;: 1791720000000,
      &quot;device&quot;: 64769,
      &quot;inode&quot;: &quot;2075198&quot;,
      &quot;birthtimeMs&quot;: 1794308107516,
      &quot;provider&quot;: &quot;codex&quot;,
      &quot;providerInstanceId&quot;: &quot;codex&quot;,
      &quot;providerSessionId&quot;: &quot;019a5f00-0000-7000-8000-000000000071&quot;
    },
    &quot;title&quot;: &quot;R11 exact cutoff inclusive&quot;,
    &quot;messages&quot;: [
      {
        &quot;role&quot;: &quot;user&quot;,
        &quot;text&quot;: &quot;R11 exact cutoff inclusive&quot;
      }
    ]
  }
]

cold.recent(Q)
[]</pre></td></tr></table>

Run receipt: both exit 0; fixture SHA-256 maps match between sides and before/after each invocation. Warm and cold stable outcomes match exactly, including source identities and messages.

## R11-row-cap: R11, R14

Oldest thread is beyond 100000 joined rows; no new truncation flag

Fixture: **synthetic Codex home, schema per Codex 0.163.0**. P and Q are ordinary directories. Viewport/theme: N/A. Real filesystem, subprocess runner and scanner; only settings, project-store records, host home and clock are injected.

Seed command: `python3 /tmp/lead-32880-r1/evidence-capture/seed-fixtures.py`. The fixture below records exact JSONL content, timestamps, thread assignments and root insertion order. Read-only database inspection is included in each output.

```json
{
  "name": "R11-row-cap",
  "rows": [
    "R11",
    "R14"
  ],
  "description": "Oldest thread is beyond 100000 joined rows; no new truncation flag",
  "home": "<fakehome>",
  "now": "2026-11-10T12:00:00.000Z",
  "roots": {
    "P": "<fakehome>/code/project",
    "Q": "<fakehome>/code/other"
  },
  "files": [
    {
      "path": "<fakehome>/.codex/sessions/2026/11/10/rollout-2026-11-10T10-00-00-019a5f00-0000-7000-8000-000000000072.jsonl",
      "threadId": "019a5f00-0000-7000-8000-000000000072",
      "rolloutId": "019a5f00-0000-7000-8000-000000000072",
      "cwd": "<fakehome>/Documents/Codex/2026-11-08/new-chat",
      "mtimeMs": 1794311999000,
      "records": [
        "{\"timestamp\":\"2026-11-10T12:00:00.000Z\",\"type\":\"session_meta\",\"payload\":{\"id\":\"019a5f00-0000-7000-8000-000000000072\",\"cwd\":\"<fakehome>/Documents/Codex/2026-11-08/new-chat\"}}",
        "{\"timestamp\":\"2026-11-10T12:00:00.000Z\",\"type\":\"event_msg\",\"payload\":{\"type\":\"user_message\",\"message\":\"R11 beyond DB joined-row cap\"}}"
      ]
    }
  ],
  "assignments": [
    {
      "threadId": "019a5f00-0000-7000-8000-000000000072",
      "projectId": "019a5f00-0000-7000-8000-0000000186a1",
      "cwd": "<fakehome>/Documents/Codex/2026-11-08/new-chat"
    }
  ],
  "rootInsertionOrder": [
    {
      "projectId": "019a5f00-0000-7000-8000-0000000186a1",
      "position": 0,
      "path": "<fakehome>/code/project"
    }
  ],
  "rowCap": "100000 filler joined rows inserted after target; target rowid 1 is beyond LIMIT 100000"
}
```

Commands, before then after:

```sh
cd /home/user/wt/pr-32880-before/apps/server
HOME='<fakehome>' CODEX_HOME='<fakehome>/.codex' T3CODE_DEV_SEED=0 /home/user/.local/share/vite-plus/js_runtime/node/26.12.1/bin/node --experimental-import-meta-resolve /tmp/lead-32880-r1/evidence-capture/scanner-driver.mjs /tmp/lead-32880-r1/evidence-capture/fixtures-2026-11-10T10-55-07.415040+00-00/R11-row-cap/fixture.json before

cd /home/user/wt/pr-32880-after/apps/server
HOME='<fakehome>' CODEX_HOME='<fakehome>/.codex' T3CODE_DEV_SEED=0 /home/user/.local/share/vite-plus/js_runtime/node/26.12.1/bin/node --experimental-import-meta-resolve /tmp/lead-32880-r1/evidence-capture/scanner-driver.mjs /tmp/lead-32880-r1/evidence-capture/fixtures-2026-11-10T10-55-07.415040+00-00/R11-row-cap/fixture.json after
```

Each invocation builds a warm scanner, calls scan then recent(P)/recent(Q), and builds a separate cold scanner that starts with recent(P). Additional calls retain their event order. Each invocation writes a fresh timestamped run directory; both sides consume identical fixture bytes.

<table><tr><th>Before <a href="https://git.cafe/pingdotgg/t3code/commit/fa2f4ff2a2bac5ac92e07749f6b83b0003d642a0">fa2f4ff2a2bac5ac92e07749f6b83b0003d642a0</a></th><th>After <a href="https://git.cafe/pingdotgg/t3code/commit/df3ffc1249ca06ef43aaebe6a534f96034354700">df3ffc1249ca06ef43aaebe6a534f96034354700</a></th></tr><tr><td><pre>environment
{
  &quot;side&quot;: &quot;before&quot;,
  &quot;sha&quot;: &quot;fa2f4ff2a2bac5ac92e07749f6b83b0003d642a0&quot;,
  &quot;blob&quot;: &quot;dc67bd9387e04b91fa61d34ea47929c056256796&quot;,
  &quot;node&quot;: &quot;v26.12.1&quot;,
  &quot;os&quot;: &quot;linux&quot;,
  &quot;arch&quot;: &quot;x64&quot;,
  &quot;fixture&quot;: &quot;R11-row-cap&quot;,
  &quot;label&quot;: &quot;synthetic Codex home, schema per Codex 0.163.0&quot;,
  &quot;clock&quot;: &quot;2026-11-10T12:00:00.000Z&quot;,
  &quot;substitutions&quot;: [
    &quot;ServerSettings.layerTest: explicit synthetic provider homes&quot;,
    &quot;ServerConfig.layerTest: scratch-only state directory&quot;,
    &quot;ProjectStoreV2.listShells: synthetic persisted projects&quot;,
    &quot;HostProcess.HomeDirectory: synthetic home&quot;,
    &quot;Clock: fixed current time; real sleep retained&quot;
  ],
  &quot;realServices&quot;: [
    &quot;AgentSessionScanner&quot;,
    &quot;ProcessRunner&quot;,
    &quot;NodeServices FileSystem/Path/ChildProcess&quot;
  ]
}

fixture.database.readOnly
{
  &quot;home&quot;: &quot;&lt;fakehome&gt;/.codex&quot;,
  &quot;threadCount&quot;: 100001,
  &quot;fixtureThreads&quot;: [
    {
      &quot;id&quot;: &quot;019a5f00-0000-7000-8000-000000000072&quot;,
      &quot;cwd&quot;: &quot;&lt;fakehome&gt;/Documents/Codex/2026-11-08/new-chat&quot;,
      &quot;project_id&quot;: &quot;019a5f00-0000-7000-8000-0000000186a1&quot;,
      &quot;rollout_path&quot;: &quot;&lt;fakehome&gt;/.codex/sessions/2026/11/10/rollout-2026-11-10T10-00-00-019a5f00-0000-7000-8000-000000000072.jsonl&quot;
    }
  ],
  &quot;rootsInInsertionOrder&quot;: [
    {
      &quot;rowid&quot;: 1,
      &quot;project_id&quot;: &quot;019a5f00-0000-7000-8000-0000000186a1&quot;,
      &quot;position&quot;: 0,
      &quot;path&quot;: &quot;&lt;fakehome&gt;/code/project&quot;
    }
  ]
}

warm.scanner.created
{
  &quot;instanceNumber&quot;: 1,
  &quot;distinctFromPriorInstances&quot;: true,
  &quot;firstCall&quot;: &quot;scan&quot;
}

warm.scan
{
  &quot;candidates&quot;: [],
  &quot;scannedAt&quot;: &quot;2026-11-10T12:00:00.000Z&quot;
}

warm.recent(P)
[]

warm.recent(Q)
[]

cold.scanner.created
{
  &quot;instanceNumber&quot;: 2,
  &quot;distinctFromPriorInstances&quot;: true,
  &quot;firstCall&quot;: &quot;recentThreads(P)&quot;
}

cold.recent(P)
[]

cold.recent(Q)
[]</pre></td><td><pre>environment
{
  &quot;side&quot;: &quot;after&quot;,
  &quot;sha&quot;: &quot;df3ffc1249ca06ef43aaebe6a534f96034354700&quot;,
  &quot;blob&quot;: &quot;1b32de22a8878fdf07db29403cd9cedb9692ea7d&quot;,
  &quot;node&quot;: &quot;v26.12.1&quot;,
  &quot;os&quot;: &quot;linux&quot;,
  &quot;arch&quot;: &quot;x64&quot;,
  &quot;fixture&quot;: &quot;R11-row-cap&quot;,
  &quot;label&quot;: &quot;synthetic Codex home, schema per Codex 0.163.0&quot;,
  &quot;clock&quot;: &quot;2026-11-10T12:00:00.000Z&quot;,
  &quot;substitutions&quot;: [
    &quot;ServerSettings.layerTest: explicit synthetic provider homes&quot;,
    &quot;ServerConfig.layerTest: scratch-only state directory&quot;,
    &quot;ProjectStoreV2.listShells: synthetic persisted projects&quot;,
    &quot;HostProcess.HomeDirectory: synthetic home&quot;,
    &quot;Clock: fixed current time; real sleep retained&quot;
  ],
  &quot;realServices&quot;: [
    &quot;AgentSessionScanner&quot;,
    &quot;ProcessRunner&quot;,
    &quot;NodeServices FileSystem/Path/ChildProcess&quot;
  ]
}

fixture.database.readOnly
{
  &quot;home&quot;: &quot;&lt;fakehome&gt;/.codex&quot;,
  &quot;threadCount&quot;: 100001,
  &quot;fixtureThreads&quot;: [
    {
      &quot;id&quot;: &quot;019a5f00-0000-7000-8000-000000000072&quot;,
      &quot;cwd&quot;: &quot;&lt;fakehome&gt;/Documents/Codex/2026-11-08/new-chat&quot;,
      &quot;project_id&quot;: &quot;019a5f00-0000-7000-8000-0000000186a1&quot;,
      &quot;rollout_path&quot;: &quot;&lt;fakehome&gt;/.codex/sessions/2026/11/10/rollout-2026-11-10T10-00-00-019a5f00-0000-7000-8000-000000000072.jsonl&quot;
    }
  ],
  &quot;rootsInInsertionOrder&quot;: [
    {
      &quot;rowid&quot;: 1,
      &quot;project_id&quot;: &quot;019a5f00-0000-7000-8000-0000000186a1&quot;,
      &quot;position&quot;: 0,
      &quot;path&quot;: &quot;&lt;fakehome&gt;/code/project&quot;
    }
  ]
}

warm.scanner.created
{
  &quot;instanceNumber&quot;: 1,
  &quot;distinctFromPriorInstances&quot;: true,
  &quot;firstCall&quot;: &quot;scan&quot;
}

warm.scan
{
  &quot;candidates&quot;: [],
  &quot;scannedAt&quot;: &quot;2026-11-10T12:00:00.000Z&quot;
}

warm.recent(P)
[]

warm.recent(Q)
[]

cold.scanner.created
{
  &quot;instanceNumber&quot;: 2,
  &quot;distinctFromPriorInstances&quot;: true,
  &quot;firstCall&quot;: &quot;recentThreads(P)&quot;
}

cold.recent(P)
[]

cold.recent(Q)
[]</pre></td></tr></table>

Run receipt: both exit 0; fixture SHA-256 maps match between sides and before/after each invocation. Warm and cold stable outcomes match exactly, including source identities and messages.

## R12-repeat: R12, R14

Mapped duplicate rollouts, completedSources replay, then append changes identity and reparses

Fixture: **synthetic Codex home, schema per Codex 0.163.0**. P and Q are ordinary directories. Viewport/theme: N/A. Real filesystem, subprocess runner and scanner; only settings, project-store records, host home and clock are injected.

Seed command: `python3 /tmp/lead-32880-r1/evidence-capture/seed-fixtures.py`. The fixture below records exact JSONL content, timestamps, thread assignments and root insertion order. Read-only database inspection is included in each output.

```json
{
  "name": "R12-repeat",
  "rows": [
    "R12",
    "R14"
  ],
  "description": "Mapped duplicate rollouts, completedSources replay, then append changes identity and reparses",
  "home": "<fakehome>",
  "now": "2026-11-10T12:00:00.000Z",
  "roots": {
    "P": "<fakehome>/code/project",
    "Q": "<fakehome>/code/other"
  },
  "files": [
    {
      "path": "<fakehome>/.codex/sessions/2026/11/10/rollout-2026-11-10T10-00-00-019a5f00-0000-7000-8000-00000000000c.jsonl",
      "threadId": "019a5f00-0000-7000-8000-00000000000c",
      "rolloutId": "019a5f00-0000-7000-8000-00000000000c",
      "cwd": "<fakehome>/Documents/Codex/2026-11-08/new-chat",
      "mtimeMs": 1794311997000,
      "records": [
        "{\"timestamp\":\"2026-11-10T12:00:00.000Z\",\"type\":\"session_meta\",\"payload\":{\"id\":\"019a5f00-0000-7000-8000-00000000000c\",\"cwd\":\"<fakehome>/Documents/Codex/2026-11-08/new-chat\"}}",
        "{\"timestamp\":\"2026-11-10T12:00:00.000Z\",\"type\":\"event_msg\",\"payload\":{\"type\":\"user_message\",\"message\":\"R12 repeated import\"}}"
      ]
    },
    {
      "path": "<fakehome>/.codex/sessions/2026/11/10/rollout-2026-11-10T10-00-00-019a5f00-0000-7000-8000-00000000000c_019a5f00-0000-7000-8000-000000000079.jsonl",
      "threadId": "019a5f00-0000-7000-8000-00000000000c",
      "rolloutId": "019a5f00-0000-7000-8000-000000000079",
      "cwd": "<fakehome>/Documents/Codex/2026-11-08/new-chat",
      "mtimeMs": 1794311998000,
      "records": [
        "{\"timestamp\":\"2026-11-10T12:00:00.000Z\",\"type\":\"session_meta\",\"payload\":{\"id\":\"019a5f00-0000-7000-8000-00000000000c\",\"cwd\":\"<fakehome>/Documents/Codex/2026-11-08/new-chat\"}}",
        "{\"timestamp\":\"2026-11-10T12:00:00.000Z\",\"type\":\"event_msg\",\"payload\":{\"type\":\"user_message\",\"message\":\"R12 newer same-session copy\"}}"
      ]
    }
  ],
  "assignments": [
    {
      "threadId": "019a5f00-0000-7000-8000-00000000000c",
      "projectId": "019a5f00-0000-7000-8000-0000000186a1",
      "cwd": "<fakehome>/Documents/Codex/2026-11-08/new-chat"
    },
    {
      "threadId": "019a5f00-0000-7000-8000-00000000000c",
      "projectId": "019a5f00-0000-7000-8000-0000000186a1",
      "cwd": "<fakehome>/Documents/Codex/2026-11-08/new-chat"
    }
  ],
  "rootInsertionOrder": [
    {
      "projectId": "019a5f00-0000-7000-8000-0000000186a1",
      "position": 0,
      "path": "<fakehome>/code/project"
    }
  ],
  "repeat": {
    "file": "<fakehome>/.codex/sessions/2026/11/10/rollout-2026-11-10T10-00-00-019a5f00-0000-7000-8000-00000000000c_019a5f00-0000-7000-8000-000000000079.jsonl",
    "append": "{\"timestamp\":\"2026-11-10T12:00:00.000Z\",\"type\":\"event_msg\",\"payload\":{\"type\":\"user_message\",\"message\":\"R12 appended after completed import\"}}\n",
    "originalMtimeMs": 1794311998000
  }
}
```

Commands, before then after:

```sh
cd /home/user/wt/pr-32880-before/apps/server
HOME='<fakehome>' CODEX_HOME='<fakehome>/.codex' T3CODE_DEV_SEED=0 /home/user/.local/share/vite-plus/js_runtime/node/26.12.1/bin/node --experimental-import-meta-resolve /tmp/lead-32880-r1/evidence-capture/scanner-driver.mjs /tmp/lead-32880-r1/evidence-capture/fixtures-2026-11-10T10-55-07.415040+00-00/R12-repeat/fixture.json before

cd /home/user/wt/pr-32880-after/apps/server
HOME='<fakehome>' CODEX_HOME='<fakehome>/.codex' T3CODE_DEV_SEED=0 /home/user/.local/share/vite-plus/js_runtime/node/26.12.1/bin/node --experimental-import-meta-resolve /tmp/lead-32880-r1/evidence-capture/scanner-driver.mjs /tmp/lead-32880-r1/evidence-capture/fixtures-2026-11-10T10-55-07.415040+00-00/R12-repeat/fixture.json after
```

Each invocation builds a warm scanner, calls scan then recent(P)/recent(Q), and builds a separate cold scanner that starts with recent(P). Additional calls retain their event order. Each invocation writes a fresh timestamped run directory; both sides consume identical fixture bytes.

<table><tr><th>Before <a href="https://git.cafe/pingdotgg/t3code/commit/fa2f4ff2a2bac5ac92e07749f6b83b0003d642a0">fa2f4ff2a2bac5ac92e07749f6b83b0003d642a0</a></th><th>After <a href="https://git.cafe/pingdotgg/t3code/commit/df3ffc1249ca06ef43aaebe6a534f96034354700">df3ffc1249ca06ef43aaebe6a534f96034354700</a></th></tr><tr><td><pre>environment
{
  &quot;side&quot;: &quot;before&quot;,
  &quot;sha&quot;: &quot;fa2f4ff2a2bac5ac92e07749f6b83b0003d642a0&quot;,
  &quot;blob&quot;: &quot;dc67bd9387e04b91fa61d34ea47929c056256796&quot;,
  &quot;node&quot;: &quot;v26.12.1&quot;,
  &quot;os&quot;: &quot;linux&quot;,
  &quot;arch&quot;: &quot;x64&quot;,
  &quot;fixture&quot;: &quot;R12-repeat&quot;,
  &quot;label&quot;: &quot;synthetic Codex home, schema per Codex 0.163.0&quot;,
  &quot;clock&quot;: &quot;2026-11-10T12:00:00.000Z&quot;,
  &quot;substitutions&quot;: [
    &quot;ServerSettings.layerTest: explicit synthetic provider homes&quot;,
    &quot;ServerConfig.layerTest: scratch-only state directory&quot;,
    &quot;ProjectStoreV2.listShells: synthetic persisted projects&quot;,
    &quot;HostProcess.HomeDirectory: synthetic home&quot;,
    &quot;Clock: fixed current time; real sleep retained&quot;
  ],
  &quot;realServices&quot;: [
    &quot;AgentSessionScanner&quot;,
    &quot;ProcessRunner&quot;,
    &quot;NodeServices FileSystem/Path/ChildProcess&quot;
  ]
}

fixture.database.readOnly
{
  &quot;home&quot;: &quot;&lt;fakehome&gt;/.codex&quot;,
  &quot;threadCount&quot;: 1,
  &quot;fixtureThreads&quot;: [
    {
      &quot;id&quot;: &quot;019a5f00-0000-7000-8000-00000000000c&quot;,
      &quot;cwd&quot;: &quot;&lt;fakehome&gt;/Documents/Codex/2026-11-08/new-chat&quot;,
      &quot;project_id&quot;: &quot;019a5f00-0000-7000-8000-0000000186a1&quot;,
      &quot;rollout_path&quot;: &quot;&lt;fakehome&gt;/.codex/sessions/2026/11/10/rollout-2026-11-10T10-00-00-019a5f00-0000-7000-8000-00000000000c_019a5f00-0000-7000-8000-000000000079.jsonl&quot;
    }
  ],
  &quot;rootsInInsertionOrder&quot;: [
    {
      &quot;rowid&quot;: 1,
      &quot;project_id&quot;: &quot;019a5f00-0000-7000-8000-0000000186a1&quot;,
      &quot;position&quot;: 0,
      &quot;path&quot;: &quot;&lt;fakehome&gt;/code/project&quot;
    }
  ]
}

warm.scanner.created
{
  &quot;instanceNumber&quot;: 1,
  &quot;distinctFromPriorInstances&quot;: true,
  &quot;firstCall&quot;: &quot;scan&quot;
}

warm.scan
{
  &quot;candidates&quot;: [],
  &quot;scannedAt&quot;: &quot;2026-11-10T12:00:00.000Z&quot;
}

warm.recent(P)
[]

warm.recent(Q)
[]

warm.recent(P; completedSources=initial Importable sources)
[]

mutation.append
{
  &quot;file&quot;: &quot;&lt;fakehome&gt;/.codex/sessions/2026/11/10/rollout-2026-11-10T10-00-00-019a5f00-0000-7000-8000-00000000000c_019a5f00-0000-7000-8000-000000000079.jsonl&quot;,
  &quot;appended&quot;: &quot;{\&quot;timestamp\&quot;:\&quot;2026-11-10T12:00:00.000Z\&quot;,\&quot;type\&quot;:\&quot;event_msg\&quot;,\&quot;payload\&quot;:{\&quot;type\&quot;:\&quot;user_message\&quot;,\&quot;message\&quot;:\&quot;R12 appended after completed import\&quot;}}\n&quot;,
  &quot;mtimeMs&quot;: 1794311999000
}

warm.recent(P; changed file; old completedSources)
[]

cold.scanner.created
{
  &quot;instanceNumber&quot;: 2,
  &quot;distinctFromPriorInstances&quot;: true,
  &quot;firstCall&quot;: &quot;recentThreads(P)&quot;
}

cold.recent(P)
[]

cold.recent(Q)
[]</pre></td><td><pre>environment
{
  &quot;side&quot;: &quot;after&quot;,
  &quot;sha&quot;: &quot;df3ffc1249ca06ef43aaebe6a534f96034354700&quot;,
  &quot;blob&quot;: &quot;1b32de22a8878fdf07db29403cd9cedb9692ea7d&quot;,
  &quot;node&quot;: &quot;v26.12.1&quot;,
  &quot;os&quot;: &quot;linux&quot;,
  &quot;arch&quot;: &quot;x64&quot;,
  &quot;fixture&quot;: &quot;R12-repeat&quot;,
  &quot;label&quot;: &quot;synthetic Codex home, schema per Codex 0.163.0&quot;,
  &quot;clock&quot;: &quot;2026-11-10T12:00:00.000Z&quot;,
  &quot;substitutions&quot;: [
    &quot;ServerSettings.layerTest: explicit synthetic provider homes&quot;,
    &quot;ServerConfig.layerTest: scratch-only state directory&quot;,
    &quot;ProjectStoreV2.listShells: synthetic persisted projects&quot;,
    &quot;HostProcess.HomeDirectory: synthetic home&quot;,
    &quot;Clock: fixed current time; real sleep retained&quot;
  ],
  &quot;realServices&quot;: [
    &quot;AgentSessionScanner&quot;,
    &quot;ProcessRunner&quot;,
    &quot;NodeServices FileSystem/Path/ChildProcess&quot;
  ]
}

fixture.database.readOnly
{
  &quot;home&quot;: &quot;&lt;fakehome&gt;/.codex&quot;,
  &quot;threadCount&quot;: 1,
  &quot;fixtureThreads&quot;: [
    {
      &quot;id&quot;: &quot;019a5f00-0000-7000-8000-00000000000c&quot;,
      &quot;cwd&quot;: &quot;&lt;fakehome&gt;/Documents/Codex/2026-11-08/new-chat&quot;,
      &quot;project_id&quot;: &quot;019a5f00-0000-7000-8000-0000000186a1&quot;,
      &quot;rollout_path&quot;: &quot;&lt;fakehome&gt;/.codex/sessions/2026/11/10/rollout-2026-11-10T10-00-00-019a5f00-0000-7000-8000-00000000000c_019a5f00-0000-7000-8000-000000000079.jsonl&quot;
    }
  ],
  &quot;rootsInInsertionOrder&quot;: [
    {
      &quot;rowid&quot;: 1,
      &quot;project_id&quot;: &quot;019a5f00-0000-7000-8000-0000000186a1&quot;,
      &quot;position&quot;: 0,
      &quot;path&quot;: &quot;&lt;fakehome&gt;/code/project&quot;
    }
  ]
}

warm.scanner.created
{
  &quot;instanceNumber&quot;: 1,
  &quot;distinctFromPriorInstances&quot;: true,
  &quot;firstCall&quot;: &quot;scan&quot;
}

warm.scan
{
  &quot;candidates&quot;: [
    {
      &quot;path&quot;: &quot;&lt;fakehome&gt;/code/project&quot;,
      &quot;title&quot;: &quot;project&quot;,
      &quot;sources&quot;: [
        &quot;codex&quot;
      ],
      &quot;threadCount&quot;: 2,
      &quot;lastActiveAt&quot;: &quot;2026-11-10T11:59:58.000Z&quot;,
      &quot;alreadyImported&quot;: false,
      &quot;git&quot;: null
    }
  ],
  &quot;scannedAt&quot;: &quot;2026-11-10T12:00:00.000Z&quot;
}

warm.recent(P)
[
  {
    &quot;tag&quot;: &quot;Importable&quot;,
    &quot;id&quot;: &quot;019a5f00-0000-7000-8000-00000000000c&quot;,
    &quot;provider&quot;: &quot;codex&quot;,
    &quot;providerInstanceId&quot;: &quot;codex&quot;,
    &quot;file&quot;: &quot;&lt;fakehome&gt;/.codex/sessions/2026/11/10/rollout-2026-11-10T10-00-00-019a5f00-0000-7000-8000-00000000000c_019a5f00-0000-7000-8000-000000000079.jsonl&quot;,
    &quot;identity&quot;: {
      &quot;filePath&quot;: &quot;&lt;fakehome&gt;/.codex/sessions/2026/11/10/rollout-2026-11-10T10-00-00-019a5f00-0000-7000-8000-00000000000c_019a5f00-0000-7000-8000-000000000079.jsonl&quot;,
      &quot;size&quot;: 395,
      &quot;mtimeMs&quot;: 1794311998000,
      &quot;device&quot;: 64769,
      &quot;inode&quot;: &quot;2075237&quot;,
      &quot;birthtimeMs&quot;: 1794308107819,
      &quot;provider&quot;: &quot;codex&quot;,
      &quot;providerInstanceId&quot;: &quot;codex&quot;,
      &quot;providerSessionId&quot;: &quot;019a5f00-0000-7000-8000-00000000000c&quot;
    },
    &quot;title&quot;: &quot;R12 newer same-session copy&quot;,
    &quot;messages&quot;: [
      {
        &quot;role&quot;: &quot;user&quot;,
        &quot;text&quot;: &quot;R12 newer same-session copy&quot;
      }
    ]
  },
  {
    &quot;tag&quot;: &quot;Duplicate&quot;,
    &quot;id&quot;: &quot;019a5f00-0000-7000-8000-00000000000c&quot;,
    &quot;provider&quot;: &quot;codex&quot;,
    &quot;providerInstanceId&quot;: &quot;codex&quot;,
    &quot;file&quot;: &quot;&lt;fakehome&gt;/.codex/sessions/2026/11/10/rollout-2026-11-10T10-00-00-019a5f00-0000-7000-8000-00000000000c.jsonl&quot;,
    &quot;identity&quot;: {
      &quot;filePath&quot;: &quot;&lt;fakehome&gt;/.codex/sessions/2026/11/10/rollout-2026-11-10T10-00-00-019a5f00-0000-7000-8000-00000000000c.jsonl&quot;,
      &quot;size&quot;: 387,
      &quot;mtimeMs&quot;: 1794311997000,
      &quot;device&quot;: 64769,
      &quot;inode&quot;: &quot;2075236&quot;,
      &quot;birthtimeMs&quot;: 1794308107818,
      &quot;provider&quot;: &quot;codex&quot;,
      &quot;providerInstanceId&quot;: &quot;codex&quot;,
      &quot;providerSessionId&quot;: &quot;019a5f00-0000-7000-8000-00000000000c&quot;
    }
  }
]

warm.recent(Q)
[]

warm.recent(P; completedSources=initial Importable sources)
[
  {
    &quot;tag&quot;: &quot;AlreadyImported&quot;,
    &quot;id&quot;: &quot;019a5f00-0000-7000-8000-00000000000c&quot;,
    &quot;provider&quot;: &quot;codex&quot;,
    &quot;providerInstanceId&quot;: &quot;codex&quot;,
    &quot;file&quot;: &quot;&lt;fakehome&gt;/.codex/sessions/2026/11/10/rollout-2026-11-10T10-00-00-019a5f00-0000-7000-8000-00000000000c_019a5f00-0000-7000-8000-000000000079.jsonl&quot;,
    &quot;identity&quot;: {
      &quot;filePath&quot;: &quot;&lt;fakehome&gt;/.codex/sessions/2026/11/10/rollout-2026-11-10T10-00-00-019a5f00-0000-7000-8000-00000000000c_019a5f00-0000-7000-8000-000000000079.jsonl&quot;,
      &quot;size&quot;: 395,
      &quot;mtimeMs&quot;: 1794311998000,
      &quot;device&quot;: 64769,
      &quot;inode&quot;: &quot;2075237&quot;,
      &quot;birthtimeMs&quot;: 1794308107819,
      &quot;provider&quot;: &quot;codex&quot;,
      &quot;providerInstanceId&quot;: &quot;codex&quot;,
      &quot;providerSessionId&quot;: &quot;019a5f00-0000-7000-8000-00000000000c&quot;
    }
  },
  {
    &quot;tag&quot;: &quot;Duplicate&quot;,
    &quot;id&quot;: &quot;019a5f00-0000-7000-8000-00000000000c&quot;,
    &quot;provider&quot;: &quot;codex&quot;,
    &quot;providerInstanceId&quot;: &quot;codex&quot;,
    &quot;file&quot;: &quot;&lt;fakehome&gt;/.codex/sessions/2026/11/10/rollout-2026-11-10T10-00-00-019a5f00-0000-7000-8000-00000000000c.jsonl&quot;,
    &quot;identity&quot;: {
      &quot;filePath&quot;: &quot;&lt;fakehome&gt;/.codex/sessions/2026/11/10/rollout-2026-11-10T10-00-00-019a5f00-0000-7000-8000-00000000000c.jsonl&quot;,
      &quot;size&quot;: 387,
      &quot;mtimeMs&quot;: 1794311997000,
      &quot;device&quot;: 64769,
      &quot;inode&quot;: &quot;2075236&quot;,
      &quot;birthtimeMs&quot;: 1794308107818,
      &quot;provider&quot;: &quot;codex&quot;,
      &quot;providerInstanceId&quot;: &quot;codex&quot;,
      &quot;providerSessionId&quot;: &quot;019a5f00-0000-7000-8000-00000000000c&quot;
    }
  }
]

mutation.append
{
  &quot;file&quot;: &quot;&lt;fakehome&gt;/.codex/sessions/2026/11/10/rollout-2026-11-10T10-00-00-019a5f00-0000-7000-8000-00000000000c_019a5f00-0000-7000-8000-000000000079.jsonl&quot;,
  &quot;appended&quot;: &quot;{\&quot;timestamp\&quot;:\&quot;2026-11-10T12:00:00.000Z\&quot;,\&quot;type\&quot;:\&quot;event_msg\&quot;,\&quot;payload\&quot;:{\&quot;type\&quot;:\&quot;user_message\&quot;,\&quot;message\&quot;:\&quot;R12 appended after completed import\&quot;}}\n&quot;,
  &quot;mtimeMs&quot;: 1794311999000
}

warm.recent(P; changed file; old completedSources)
[
  {
    &quot;tag&quot;: &quot;Importable&quot;,
    &quot;id&quot;: &quot;019a5f00-0000-7000-8000-00000000000c&quot;,
    &quot;provider&quot;: &quot;codex&quot;,
    &quot;providerInstanceId&quot;: &quot;codex&quot;,
    &quot;file&quot;: &quot;&lt;fakehome&gt;/.codex/sessions/2026/11/10/rollout-2026-11-10T10-00-00-019a5f00-0000-7000-8000-00000000000c_019a5f00-0000-7000-8000-000000000079.jsonl&quot;,
    &quot;identity&quot;: {
      &quot;filePath&quot;: &quot;&lt;fakehome&gt;/.codex/sessions/2026/11/10/rollout-2026-11-10T10-00-00-019a5f00-0000-7000-8000-00000000000c_019a5f00-0000-7000-8000-000000000079.jsonl&quot;,
      &quot;size&quot;: 537,
      &quot;mtimeMs&quot;: 1794311999000,
      &quot;device&quot;: 64769,
      &quot;inode&quot;: &quot;2075237&quot;,
      &quot;birthtimeMs&quot;: 1794308107819,
      &quot;provider&quot;: &quot;codex&quot;,
      &quot;providerInstanceId&quot;: &quot;codex&quot;,
      &quot;providerSessionId&quot;: &quot;019a5f00-0000-7000-8000-00000000000c&quot;
    },
    &quot;title&quot;: &quot;R12 newer same-session copy&quot;,
    &quot;messages&quot;: [
      {
        &quot;role&quot;: &quot;user&quot;,
        &quot;text&quot;: &quot;R12 newer same-session copy&quot;
      },
      {
        &quot;role&quot;: &quot;user&quot;,
        &quot;text&quot;: &quot;R12 appended after completed import&quot;
      }
    ]
  },
  {
    &quot;tag&quot;: &quot;Duplicate&quot;,
    &quot;id&quot;: &quot;019a5f00-0000-7000-8000-00000000000c&quot;,
    &quot;provider&quot;: &quot;codex&quot;,
    &quot;providerInstanceId&quot;: &quot;codex&quot;,
    &quot;file&quot;: &quot;&lt;fakehome&gt;/.codex/sessions/2026/11/10/rollout-2026-11-10T10-00-00-019a5f00-0000-7000-8000-00000000000c.jsonl&quot;,
    &quot;identity&quot;: {
      &quot;filePath&quot;: &quot;&lt;fakehome&gt;/.codex/sessions/2026/11/10/rollout-2026-11-10T10-00-00-019a5f00-0000-7000-8000-00000000000c.jsonl&quot;,
      &quot;size&quot;: 387,
      &quot;mtimeMs&quot;: 1794311997000,
      &quot;device&quot;: 64769,
      &quot;inode&quot;: &quot;2075236&quot;,
      &quot;birthtimeMs&quot;: 1794308107818,
      &quot;provider&quot;: &quot;codex&quot;,
      &quot;providerInstanceId&quot;: &quot;codex&quot;,
      &quot;providerSessionId&quot;: &quot;019a5f00-0000-7000-8000-00000000000c&quot;
    }
  }
]

cold.scanner.created
{
  &quot;instanceNumber&quot;: 2,
  &quot;distinctFromPriorInstances&quot;: true,
  &quot;firstCall&quot;: &quot;recentThreads(P)&quot;
}

cold.recent(P)
[
  {
    &quot;tag&quot;: &quot;Importable&quot;,
    &quot;id&quot;: &quot;019a5f00-0000-7000-8000-00000000000c&quot;,
    &quot;provider&quot;: &quot;codex&quot;,
    &quot;providerInstanceId&quot;: &quot;codex&quot;,
    &quot;file&quot;: &quot;&lt;fakehome&gt;/.codex/sessions/2026/11/10/rollout-2026-11-10T10-00-00-019a5f00-0000-7000-8000-00000000000c_019a5f00-0000-7000-8000-000000000079.jsonl&quot;,
    &quot;identity&quot;: {
      &quot;filePath&quot;: &quot;&lt;fakehome&gt;/.codex/sessions/2026/11/10/rollout-2026-11-10T10-00-00-019a5f00-0000-7000-8000-00000000000c_019a5f00-0000-7000-8000-000000000079.jsonl&quot;,
      &quot;size&quot;: 395,
      &quot;mtimeMs&quot;: 1794311998000,
      &quot;device&quot;: 64769,
      &quot;inode&quot;: &quot;2075237&quot;,
      &quot;birthtimeMs&quot;: 1794308107819,
      &quot;provider&quot;: &quot;codex&quot;,
      &quot;providerInstanceId&quot;: &quot;codex&quot;,
      &quot;providerSessionId&quot;: &quot;019a5f00-0000-7000-8000-00000000000c&quot;
    },
    &quot;title&quot;: &quot;R12 newer same-session copy&quot;,
    &quot;messages&quot;: [
      {
        &quot;role&quot;: &quot;user&quot;,
        &quot;text&quot;: &quot;R12 newer same-session copy&quot;
      }
    ]
  },
  {
    &quot;tag&quot;: &quot;Duplicate&quot;,
    &quot;id&quot;: &quot;019a5f00-0000-7000-8000-00000000000c&quot;,
    &quot;provider&quot;: &quot;codex&quot;,
    &quot;providerInstanceId&quot;: &quot;codex&quot;,
    &quot;file&quot;: &quot;&lt;fakehome&gt;/.codex/sessions/2026/11/10/rollout-2026-11-10T10-00-00-019a5f00-0000-7000-8000-00000000000c.jsonl&quot;,
    &quot;identity&quot;: {
      &quot;filePath&quot;: &quot;&lt;fakehome&gt;/.codex/sessions/2026/11/10/rollout-2026-11-10T10-00-00-019a5f00-0000-7000-8000-00000000000c.jsonl&quot;,
      &quot;size&quot;: 387,
      &quot;mtimeMs&quot;: 1794311997000,
      &quot;device&quot;: 64769,
      &quot;inode&quot;: &quot;2075236&quot;,
      &quot;birthtimeMs&quot;: 1794308107818,
      &quot;provider&quot;: &quot;codex&quot;,
      &quot;providerInstanceId&quot;: &quot;codex&quot;,
      &quot;providerSessionId&quot;: &quot;019a5f00-0000-7000-8000-00000000000c&quot;
    }
  }
]

cold.recent(Q)
[]</pre></td></tr></table>

Run receipt: both exit 0; fixture SHA-256 maps match between sides and before/after each invocation. Warm and cold stable outcomes match exactly, including source identities and messages.

## R13-invalid: R13, R14

Missing cwd, malformed input, Codex subagent, missing ID and no visible conversation are not rescued

Fixture: **synthetic Codex home, schema per Codex 0.163.0**. P and Q are ordinary directories. Viewport/theme: N/A. Real filesystem, subprocess runner and scanner; only settings, project-store records, host home and clock are injected.

Seed command: `python3 /tmp/lead-32880-r1/evidence-capture/seed-fixtures.py`. The fixture below records exact JSONL content, timestamps, thread assignments and root insertion order. Read-only database inspection is included in each output.

```json
{
  "name": "R13-invalid",
  "rows": [
    "R13",
    "R14"
  ],
  "description": "Missing cwd, malformed input, Codex subagent, missing ID and no visible conversation are not rescued",
  "home": "<fakehome>",
  "now": "2026-11-10T12:00:00.000Z",
  "roots": {
    "P": "<fakehome>/code/project",
    "Q": "<fakehome>/code/other"
  },
  "files": [
    {
      "path": "<fakehome>/.codex/sessions/2026/11/10/rollout-2026-11-10T10-00-00-019a5f00-0000-7000-8000-000000000082.jsonl",
      "threadId": "019a5f00-0000-7000-8000-000000000082",
      "rolloutId": "019a5f00-0000-7000-8000-000000000082",
      "cwd": null,
      "mtimeMs": 1794311999000,
      "records": [
        "{\"timestamp\":\"2026-11-10T12:00:00.000Z\",\"type\":\"session_meta\",\"payload\":{\"id\":\"019a5f00-0000-7000-8000-000000000082\"}}",
        "{\"timestamp\":\"2026-11-10T12:00:00.000Z\",\"type\":\"event_msg\",\"payload\":{\"type\":\"user_message\",\"message\":\"R13 missing cwd\"}}"
      ]
    },
    {
      "path": "<fakehome>/.codex/sessions/2026/11/10/rollout-2026-11-10T10-00-00-019a5f00-0000-7000-8000-000000000083.jsonl",
      "threadId": "019a5f00-0000-7000-8000-000000000083",
      "rolloutId": "019a5f00-0000-7000-8000-000000000083",
      "cwd": null,
      "mtimeMs": 1794311999000,
      "records": [
        "malformed json"
      ]
    },
    {
      "path": "<fakehome>/.codex/sessions/2026/11/10/rollout-2026-11-10T10-00-00-019a5f00-0000-7000-8000-000000000084.jsonl",
      "threadId": "019a5f00-0000-7000-8000-000000000084",
      "rolloutId": "019a5f00-0000-7000-8000-000000000084",
      "cwd": "<fakehome>/Documents/Codex/2026-11-08/new-chat",
      "mtimeMs": 1794311999000,
      "records": [
        "{\"timestamp\":\"2026-11-10T12:00:00.000Z\",\"type\":\"session_meta\",\"payload\":{\"id\":\"019a5f00-0000-7000-8000-000000000084\",\"cwd\":\"<fakehome>/Documents/Codex/2026-11-08/new-chat\",\"source\":{\"subagent\":\"thread_spawn\"}}}",
        "{\"timestamp\":\"2026-11-10T12:00:00.000Z\",\"type\":\"event_msg\",\"payload\":{\"type\":\"user_message\",\"message\":\"R13 subagent should not appear\"}}"
      ]
    },
    {
      "path": "<fakehome>/.codex/sessions/2026/11/10/rollout-2026-11-10T10-00-00-019a5f00-0000-7000-8000-000000000085.jsonl",
      "threadId": "019a5f00-0000-7000-8000-000000000085",
      "rolloutId": "019a5f00-0000-7000-8000-000000000085",
      "cwd": "<fakehome>/Documents/Codex/2026-11-08/new-chat",
      "mtimeMs": 1794311999000,
      "records": [
        "{\"timestamp\":\"2026-11-10T12:00:00.000Z\",\"type\":\"session_meta\",\"payload\":{\"cwd\":\"<fakehome>/Documents/Codex/2026-11-08/new-chat\"}}",
        "{\"timestamp\":\"2026-11-10T12:00:00.000Z\",\"type\":\"event_msg\",\"payload\":{\"type\":\"user_message\",\"message\":\"R13 no resumable ID\"}}"
      ]
    },
    {
      "path": "<fakehome>/.codex/sessions/2026/11/10/rollout-2026-11-10T10-00-00-019a5f00-0000-7000-8000-000000000086.jsonl",
      "threadId": "019a5f00-0000-7000-8000-000000000086",
      "rolloutId": "019a5f00-0000-7000-8000-000000000086",
      "cwd": "<fakehome>/Documents/Codex/2026-11-08/new-chat",
      "mtimeMs": 1794311999000,
      "records": [
        "{\"timestamp\":\"2026-11-10T12:00:00.000Z\",\"type\":\"session_meta\",\"payload\":{\"id\":\"019a5f00-0000-7000-8000-000000000086\",\"cwd\":\"<fakehome>/Documents/Codex/2026-11-08/new-chat\"}}"
      ]
    }
  ],
  "assignments": [
    {
      "threadId": "019a5f00-0000-7000-8000-000000000082",
      "projectId": "019a5f00-0000-7000-8000-0000000186a1",
      "cwd": null
    },
    {
      "threadId": "019a5f00-0000-7000-8000-000000000083",
      "projectId": "019a5f00-0000-7000-8000-0000000186a1",
      "cwd": null
    },
    {
      "threadId": "019a5f00-0000-7000-8000-000000000084",
      "projectId": "019a5f00-0000-7000-8000-0000000186a1",
      "cwd": "<fakehome>/Documents/Codex/2026-11-08/new-chat"
    },
    {
      "threadId": "019a5f00-0000-7000-8000-000000000085",
      "projectId": "019a5f00-0000-7000-8000-0000000186a1",
      "cwd": "<fakehome>/Documents/Codex/2026-11-08/new-chat"
    },
    {
      "threadId": "019a5f00-0000-7000-8000-000000000086",
      "projectId": "019a5f00-0000-7000-8000-0000000186a1",
      "cwd": "<fakehome>/Documents/Codex/2026-11-08/new-chat"
    }
  ],
  "rootInsertionOrder": [
    {
      "projectId": "019a5f00-0000-7000-8000-0000000186a1",
      "position": 0,
      "path": "<fakehome>/code/project"
    }
  ]
}
```

Commands, before then after:

```sh
cd /home/user/wt/pr-32880-before/apps/server
HOME='<fakehome>' CODEX_HOME='<fakehome>/.codex' T3CODE_DEV_SEED=0 /home/user/.local/share/vite-plus/js_runtime/node/26.12.1/bin/node --experimental-import-meta-resolve /tmp/lead-32880-r1/evidence-capture/scanner-driver.mjs /tmp/lead-32880-r1/evidence-capture/fixtures-2026-11-10T10-55-07.415040+00-00/R13-invalid/fixture.json before

cd /home/user/wt/pr-32880-after/apps/server
HOME='<fakehome>' CODEX_HOME='<fakehome>/.codex' T3CODE_DEV_SEED=0 /home/user/.local/share/vite-plus/js_runtime/node/26.12.1/bin/node --experimental-import-meta-resolve /tmp/lead-32880-r1/evidence-capture/scanner-driver.mjs /tmp/lead-32880-r1/evidence-capture/fixtures-2026-11-10T10-55-07.415040+00-00/R13-invalid/fixture.json after
```

Each invocation builds a warm scanner, calls scan then recent(P)/recent(Q), and builds a separate cold scanner that starts with recent(P). Additional calls retain their event order. Each invocation writes a fresh timestamped run directory; both sides consume identical fixture bytes.

<table><tr><th>Before <a href="https://git.cafe/pingdotgg/t3code/commit/fa2f4ff2a2bac5ac92e07749f6b83b0003d642a0">fa2f4ff2a2bac5ac92e07749f6b83b0003d642a0</a></th><th>After <a href="https://git.cafe/pingdotgg/t3code/commit/df3ffc1249ca06ef43aaebe6a534f96034354700">df3ffc1249ca06ef43aaebe6a534f96034354700</a></th></tr><tr><td><pre>environment
{
  &quot;side&quot;: &quot;before&quot;,
  &quot;sha&quot;: &quot;fa2f4ff2a2bac5ac92e07749f6b83b0003d642a0&quot;,
  &quot;blob&quot;: &quot;dc67bd9387e04b91fa61d34ea47929c056256796&quot;,
  &quot;node&quot;: &quot;v26.12.1&quot;,
  &quot;os&quot;: &quot;linux&quot;,
  &quot;arch&quot;: &quot;x64&quot;,
  &quot;fixture&quot;: &quot;R13-invalid&quot;,
  &quot;label&quot;: &quot;synthetic Codex home, schema per Codex 0.163.0&quot;,
  &quot;clock&quot;: &quot;2026-11-10T12:00:00.000Z&quot;,
  &quot;substitutions&quot;: [
    &quot;ServerSettings.layerTest: explicit synthetic provider homes&quot;,
    &quot;ServerConfig.layerTest: scratch-only state directory&quot;,
    &quot;ProjectStoreV2.listShells: synthetic persisted projects&quot;,
    &quot;HostProcess.HomeDirectory: synthetic home&quot;,
    &quot;Clock: fixed current time; real sleep retained&quot;
  ],
  &quot;realServices&quot;: [
    &quot;AgentSessionScanner&quot;,
    &quot;ProcessRunner&quot;,
    &quot;NodeServices FileSystem/Path/ChildProcess&quot;
  ]
}

fixture.database.readOnly
{
  &quot;home&quot;: &quot;&lt;fakehome&gt;/.codex&quot;,
  &quot;threadCount&quot;: 5,
  &quot;fixtureThreads&quot;: [
    {
      &quot;id&quot;: &quot;019a5f00-0000-7000-8000-000000000082&quot;,
      &quot;cwd&quot;: &quot;&quot;,
      &quot;project_id&quot;: &quot;019a5f00-0000-7000-8000-0000000186a1&quot;,
      &quot;rollout_path&quot;: &quot;&lt;fakehome&gt;/.codex/sessions/2026/11/10/rollout-2026-11-10T10-00-00-019a5f00-0000-7000-8000-000000000082.jsonl&quot;
    },
    {
      &quot;id&quot;: &quot;019a5f00-0000-7000-8000-000000000083&quot;,
      &quot;cwd&quot;: &quot;&quot;,
      &quot;project_id&quot;: &quot;019a5f00-0000-7000-8000-0000000186a1&quot;,
      &quot;rollout_path&quot;: &quot;&lt;fakehome&gt;/.codex/sessions/2026/11/10/rollout-2026-11-10T10-00-00-019a5f00-0000-7000-8000-000000000083.jsonl&quot;
    },
    {
      &quot;id&quot;: &quot;019a5f00-0000-7000-8000-000000000084&quot;,
      &quot;cwd&quot;: &quot;&lt;fakehome&gt;/Documents/Codex/2026-11-08/new-chat&quot;,
      &quot;project_id&quot;: &quot;019a5f00-0000-7000-8000-0000000186a1&quot;,
      &quot;rollout_path&quot;: &quot;&lt;fakehome&gt;/.codex/sessions/2026/11/10/rollout-2026-11-10T10-00-00-019a5f00-0000-7000-8000-000000000084.jsonl&quot;
    },
    {
      &quot;id&quot;: &quot;019a5f00-0000-7000-8000-000000000085&quot;,
      &quot;cwd&quot;: &quot;&lt;fakehome&gt;/Documents/Codex/2026-11-08/new-chat&quot;,
      &quot;project_id&quot;: &quot;019a5f00-0000-7000-8000-0000000186a1&quot;,
      &quot;rollout_path&quot;: &quot;&lt;fakehome&gt;/.codex/sessions/2026/11/10/rollout-2026-11-10T10-00-00-019a5f00-0000-7000-8000-000000000085.jsonl&quot;
    },
    {
      &quot;id&quot;: &quot;019a5f00-0000-7000-8000-000000000086&quot;,
      &quot;cwd&quot;: &quot;&lt;fakehome&gt;/Documents/Codex/2026-11-08/new-chat&quot;,
      &quot;project_id&quot;: &quot;019a5f00-0000-7000-8000-0000000186a1&quot;,
      &quot;rollout_path&quot;: &quot;&lt;fakehome&gt;/.codex/sessions/2026/11/10/rollout-2026-11-10T10-00-00-019a5f00-0000-7000-8000-000000000086.jsonl&quot;
    }
  ],
  &quot;rootsInInsertionOrder&quot;: [
    {
      &quot;rowid&quot;: 1,
      &quot;project_id&quot;: &quot;019a5f00-0000-7000-8000-0000000186a1&quot;,
      &quot;position&quot;: 0,
      &quot;path&quot;: &quot;&lt;fakehome&gt;/code/project&quot;
    }
  ]
}

warm.scanner.created
{
  &quot;instanceNumber&quot;: 1,
  &quot;distinctFromPriorInstances&quot;: true,
  &quot;firstCall&quot;: &quot;scan&quot;
}

warm.scan
{
  &quot;candidates&quot;: [],
  &quot;scannedAt&quot;: &quot;2026-11-10T12:00:00.000Z&quot;
}

warm.recent(P)
[]

warm.recent(Q)
[]

cold.scanner.created
{
  &quot;instanceNumber&quot;: 2,
  &quot;distinctFromPriorInstances&quot;: true,
  &quot;firstCall&quot;: &quot;recentThreads(P)&quot;
}

cold.recent(P)
[]

cold.recent(Q)
[]</pre></td><td><pre>environment
{
  &quot;side&quot;: &quot;after&quot;,
  &quot;sha&quot;: &quot;df3ffc1249ca06ef43aaebe6a534f96034354700&quot;,
  &quot;blob&quot;: &quot;1b32de22a8878fdf07db29403cd9cedb9692ea7d&quot;,
  &quot;node&quot;: &quot;v26.12.1&quot;,
  &quot;os&quot;: &quot;linux&quot;,
  &quot;arch&quot;: &quot;x64&quot;,
  &quot;fixture&quot;: &quot;R13-invalid&quot;,
  &quot;label&quot;: &quot;synthetic Codex home, schema per Codex 0.163.0&quot;,
  &quot;clock&quot;: &quot;2026-11-10T12:00:00.000Z&quot;,
  &quot;substitutions&quot;: [
    &quot;ServerSettings.layerTest: explicit synthetic provider homes&quot;,
    &quot;ServerConfig.layerTest: scratch-only state directory&quot;,
    &quot;ProjectStoreV2.listShells: synthetic persisted projects&quot;,
    &quot;HostProcess.HomeDirectory: synthetic home&quot;,
    &quot;Clock: fixed current time; real sleep retained&quot;
  ],
  &quot;realServices&quot;: [
    &quot;AgentSessionScanner&quot;,
    &quot;ProcessRunner&quot;,
    &quot;NodeServices FileSystem/Path/ChildProcess&quot;
  ]
}

fixture.database.readOnly
{
  &quot;home&quot;: &quot;&lt;fakehome&gt;/.codex&quot;,
  &quot;threadCount&quot;: 5,
  &quot;fixtureThreads&quot;: [
    {
      &quot;id&quot;: &quot;019a5f00-0000-7000-8000-000000000082&quot;,
      &quot;cwd&quot;: &quot;&quot;,
      &quot;project_id&quot;: &quot;019a5f00-0000-7000-8000-0000000186a1&quot;,
      &quot;rollout_path&quot;: &quot;&lt;fakehome&gt;/.codex/sessions/2026/11/10/rollout-2026-11-10T10-00-00-019a5f00-0000-7000-8000-000000000082.jsonl&quot;
    },
    {
      &quot;id&quot;: &quot;019a5f00-0000-7000-8000-000000000083&quot;,
      &quot;cwd&quot;: &quot;&quot;,
      &quot;project_id&quot;: &quot;019a5f00-0000-7000-8000-0000000186a1&quot;,
      &quot;rollout_path&quot;: &quot;&lt;fakehome&gt;/.codex/sessions/2026/11/10/rollout-2026-11-10T10-00-00-019a5f00-0000-7000-8000-000000000083.jsonl&quot;
    },
    {
      &quot;id&quot;: &quot;019a5f00-0000-7000-8000-000000000084&quot;,
      &quot;cwd&quot;: &quot;&lt;fakehome&gt;/Documents/Codex/2026-11-08/new-chat&quot;,
      &quot;project_id&quot;: &quot;019a5f00-0000-7000-8000-0000000186a1&quot;,
      &quot;rollout_path&quot;: &quot;&lt;fakehome&gt;/.codex/sessions/2026/11/10/rollout-2026-11-10T10-00-00-019a5f00-0000-7000-8000-000000000084.jsonl&quot;
    },
    {
      &quot;id&quot;: &quot;019a5f00-0000-7000-8000-000000000085&quot;,
      &quot;cwd&quot;: &quot;&lt;fakehome&gt;/Documents/Codex/2026-11-08/new-chat&quot;,
      &quot;project_id&quot;: &quot;019a5f00-0000-7000-8000-0000000186a1&quot;,
      &quot;rollout_path&quot;: &quot;&lt;fakehome&gt;/.codex/sessions/2026/11/10/rollout-2026-11-10T10-00-00-019a5f00-0000-7000-8000-000000000085.jsonl&quot;
    },
    {
      &quot;id&quot;: &quot;019a5f00-0000-7000-8000-000000000086&quot;,
      &quot;cwd&quot;: &quot;&lt;fakehome&gt;/Documents/Codex/2026-11-08/new-chat&quot;,
      &quot;project_id&quot;: &quot;019a5f00-0000-7000-8000-0000000186a1&quot;,
      &quot;rollout_path&quot;: &quot;&lt;fakehome&gt;/.codex/sessions/2026/11/10/rollout-2026-11-10T10-00-00-019a5f00-0000-7000-8000-000000000086.jsonl&quot;
    }
  ],
  &quot;rootsInInsertionOrder&quot;: [
    {
      &quot;rowid&quot;: 1,
      &quot;project_id&quot;: &quot;019a5f00-0000-7000-8000-0000000186a1&quot;,
      &quot;position&quot;: 0,
      &quot;path&quot;: &quot;&lt;fakehome&gt;/code/project&quot;
    }
  ]
}

warm.scanner.created
{
  &quot;instanceNumber&quot;: 1,
  &quot;distinctFromPriorInstances&quot;: true,
  &quot;firstCall&quot;: &quot;scan&quot;
}

warm.scan
{
  &quot;candidates&quot;: [
    {
      &quot;path&quot;: &quot;&lt;fakehome&gt;/code/project&quot;,
      &quot;title&quot;: &quot;project&quot;,
      &quot;sources&quot;: [
        &quot;codex&quot;
      ],
      &quot;threadCount&quot;: 2,
      &quot;lastActiveAt&quot;: &quot;2026-11-10T11:59:59.000Z&quot;,
      &quot;alreadyImported&quot;: false,
      &quot;git&quot;: null
    }
  ],
  &quot;scannedAt&quot;: &quot;2026-11-10T12:00:00.000Z&quot;
}

warm.recent(P)
[
  {
    &quot;tag&quot;: &quot;Skipped&quot;
  },
  {
    &quot;tag&quot;: &quot;Skipped&quot;
  }
]

warm.recent(Q)
[]

cold.scanner.created
{
  &quot;instanceNumber&quot;: 2,
  &quot;distinctFromPriorInstances&quot;: true,
  &quot;firstCall&quot;: &quot;recentThreads(P)&quot;
}

cold.recent(P)
[
  {
    &quot;tag&quot;: &quot;Skipped&quot;
  },
  {
    &quot;tag&quot;: &quot;Skipped&quot;
  }
]

cold.recent(Q)
[]</pre></td></tr></table>

Run receipt: both exit 0; fixture SHA-256 maps match between sides and before/after each invocation. Warm and cold stable outcomes match exactly, including source identities and messages.

## R14-cache-mutation: R14

Stable warm/cold plus mapping mutation: cached candidates retain mapping until scan refresh

Fixture: **synthetic Codex home, schema per Codex 0.163.0**. P and Q are ordinary directories. Viewport/theme: N/A. Real filesystem, subprocess runner and scanner; only settings, project-store records, host home and clock are injected.

Seed command: `python3 /tmp/lead-32880-r1/evidence-capture/seed-fixtures.py`. The fixture below records exact JSONL content, timestamps, thread assignments and root insertion order. Read-only database inspection is included in each output.

```json
{
  "name": "R14-cache-mutation",
  "rows": [
    "R14"
  ],
  "description": "Stable warm/cold plus mapping mutation: cached candidates retain mapping until scan refresh",
  "home": "<fakehome>",
  "now": "2026-11-10T12:00:00.000Z",
  "roots": {
    "P": "<fakehome>/code/project",
    "Q": "<fakehome>/code/other"
  },
  "files": [
    {
      "path": "<fakehome>/.codex/sessions/2026/11/10/rollout-2026-11-10T10-00-00-019a5f00-0000-7000-8000-00000000000e.jsonl",
      "threadId": "019a5f00-0000-7000-8000-00000000000e",
      "rolloutId": "019a5f00-0000-7000-8000-00000000000e",
      "cwd": "<fakehome>/Documents/Codex/2026-11-08/new-chat",
      "mtimeMs": 1794311999000,
      "records": [
        "{\"timestamp\":\"2026-11-10T12:00:00.000Z\",\"type\":\"session_meta\",\"payload\":{\"id\":\"019a5f00-0000-7000-8000-00000000000e\",\"cwd\":\"<fakehome>/Documents/Codex/2026-11-08/new-chat\"}}",
        "{\"timestamp\":\"2026-11-10T12:00:00.000Z\",\"type\":\"event_msg\",\"payload\":{\"type\":\"user_message\",\"message\":\"R14 cache mutation\"}}"
      ]
    }
  ],
  "assignments": [
    {
      "threadId": "019a5f00-0000-7000-8000-00000000000e",
      "projectId": "019a5f00-0000-7000-8000-0000000186a1",
      "cwd": "<fakehome>/Documents/Codex/2026-11-08/new-chat"
    }
  ],
  "rootInsertionOrder": [
    {
      "projectId": "019a5f00-0000-7000-8000-0000000186a1",
      "position": 0,
      "path": "<fakehome>/code/project"
    }
  ],
  "cacheMutation": {
    "projectId": "019a5f00-0000-7000-8000-0000000186a1"
  },
  "persistedRoots": [
    "<fakehome>/code/project-alias"
  ]
}
```

Commands, before then after:

```sh
cd /home/user/wt/pr-32880-before/apps/server
HOME='<fakehome>' CODEX_HOME='<fakehome>/.codex' T3CODE_DEV_SEED=0 /home/user/.local/share/vite-plus/js_runtime/node/26.12.1/bin/node --experimental-import-meta-resolve /tmp/lead-32880-r1/evidence-capture/scanner-driver.mjs /tmp/lead-32880-r1/evidence-capture/fixtures-2026-11-10T10-55-07.415040+00-00/R14-cache-mutation/fixture.json before

cd /home/user/wt/pr-32880-after/apps/server
HOME='<fakehome>' CODEX_HOME='<fakehome>/.codex' T3CODE_DEV_SEED=0 /home/user/.local/share/vite-plus/js_runtime/node/26.12.1/bin/node --experimental-import-meta-resolve /tmp/lead-32880-r1/evidence-capture/scanner-driver.mjs /tmp/lead-32880-r1/evidence-capture/fixtures-2026-11-10T10-55-07.415040+00-00/R14-cache-mutation/fixture.json after
```

Each invocation builds a warm scanner, calls scan then recent(P)/recent(Q), and builds a separate cold scanner that starts with recent(P). Additional calls retain their event order. Each invocation writes a fresh timestamped run directory; both sides consume identical fixture bytes.

<table><tr><th>Before <a href="https://git.cafe/pingdotgg/t3code/commit/fa2f4ff2a2bac5ac92e07749f6b83b0003d642a0">fa2f4ff2a2bac5ac92e07749f6b83b0003d642a0</a></th><th>After <a href="https://git.cafe/pingdotgg/t3code/commit/df3ffc1249ca06ef43aaebe6a534f96034354700">df3ffc1249ca06ef43aaebe6a534f96034354700</a></th></tr><tr><td><pre>environment
{
  &quot;side&quot;: &quot;before&quot;,
  &quot;sha&quot;: &quot;fa2f4ff2a2bac5ac92e07749f6b83b0003d642a0&quot;,
  &quot;blob&quot;: &quot;dc67bd9387e04b91fa61d34ea47929c056256796&quot;,
  &quot;node&quot;: &quot;v26.12.1&quot;,
  &quot;os&quot;: &quot;linux&quot;,
  &quot;arch&quot;: &quot;x64&quot;,
  &quot;fixture&quot;: &quot;R14-cache-mutation&quot;,
  &quot;label&quot;: &quot;synthetic Codex home, schema per Codex 0.163.0&quot;,
  &quot;clock&quot;: &quot;2026-11-10T12:00:00.000Z&quot;,
  &quot;substitutions&quot;: [
    &quot;ServerSettings.layerTest: explicit synthetic provider homes&quot;,
    &quot;ServerConfig.layerTest: scratch-only state directory&quot;,
    &quot;ProjectStoreV2.listShells: synthetic persisted projects&quot;,
    &quot;HostProcess.HomeDirectory: synthetic home&quot;,
    &quot;Clock: fixed current time; real sleep retained&quot;
  ],
  &quot;realServices&quot;: [
    &quot;AgentSessionScanner&quot;,
    &quot;ProcessRunner&quot;,
    &quot;NodeServices FileSystem/Path/ChildProcess&quot;
  ]
}

fixture.database.readOnly
{
  &quot;home&quot;: &quot;&lt;fakehome&gt;/.codex&quot;,
  &quot;threadCount&quot;: 1,
  &quot;fixtureThreads&quot;: [
    {
      &quot;id&quot;: &quot;019a5f00-0000-7000-8000-00000000000e&quot;,
      &quot;cwd&quot;: &quot;&lt;fakehome&gt;/Documents/Codex/2026-11-08/new-chat&quot;,
      &quot;project_id&quot;: &quot;019a5f00-0000-7000-8000-0000000186a1&quot;,
      &quot;rollout_path&quot;: &quot;&lt;fakehome&gt;/.codex/sessions/2026/11/10/rollout-2026-11-10T10-00-00-019a5f00-0000-7000-8000-00000000000e.jsonl&quot;
    }
  ],
  &quot;rootsInInsertionOrder&quot;: [
    {
      &quot;rowid&quot;: 1,
      &quot;project_id&quot;: &quot;019a5f00-0000-7000-8000-0000000186a1&quot;,
      &quot;position&quot;: 0,
      &quot;path&quot;: &quot;&lt;fakehome&gt;/code/project&quot;
    }
  ]
}

warm.scanner.created
{
  &quot;instanceNumber&quot;: 1,
  &quot;distinctFromPriorInstances&quot;: true,
  &quot;firstCall&quot;: &quot;scan&quot;
}

warm.scan
{
  &quot;candidates&quot;: [],
  &quot;scannedAt&quot;: &quot;2026-11-10T12:00:00.000Z&quot;
}

warm.recent(P)
[]

warm.recent(Q)
[]

mutation.SQL
{
  &quot;statement&quot;: &quot;UPDATE project_roots SET path=Q WHERE project_id=? AND position=0&quot;,
  &quot;projectId&quot;: &quot;019a5f00-0000-7000-8000-0000000186a1&quot;
}

warm.cached-after-mutation.recent(P)
[]

warm.cached-after-mutation.recent(Q)
[]

warm.rescan-after-mutation
{
  &quot;candidates&quot;: [],
  &quot;scannedAt&quot;: &quot;2026-11-10T12:00:00.000Z&quot;
}

warm.refreshed-after-mutation.recent(P)
[]

warm.refreshed-after-mutation.recent(Q)
[]

mutation.restore
&quot;original database bytes restored; position 0 root is P&quot;

cold.scanner.created
{
  &quot;instanceNumber&quot;: 2,
  &quot;distinctFromPriorInstances&quot;: true,
  &quot;firstCall&quot;: &quot;recentThreads(P)&quot;
}

cold.recent(P)
[]

cold.recent(Q)
[]</pre></td><td><pre>environment
{
  &quot;side&quot;: &quot;after&quot;,
  &quot;sha&quot;: &quot;df3ffc1249ca06ef43aaebe6a534f96034354700&quot;,
  &quot;blob&quot;: &quot;1b32de22a8878fdf07db29403cd9cedb9692ea7d&quot;,
  &quot;node&quot;: &quot;v26.12.1&quot;,
  &quot;os&quot;: &quot;linux&quot;,
  &quot;arch&quot;: &quot;x64&quot;,
  &quot;fixture&quot;: &quot;R14-cache-mutation&quot;,
  &quot;label&quot;: &quot;synthetic Codex home, schema per Codex 0.163.0&quot;,
  &quot;clock&quot;: &quot;2026-11-10T12:00:00.000Z&quot;,
  &quot;substitutions&quot;: [
    &quot;ServerSettings.layerTest: explicit synthetic provider homes&quot;,
    &quot;ServerConfig.layerTest: scratch-only state directory&quot;,
    &quot;ProjectStoreV2.listShells: synthetic persisted projects&quot;,
    &quot;HostProcess.HomeDirectory: synthetic home&quot;,
    &quot;Clock: fixed current time; real sleep retained&quot;
  ],
  &quot;realServices&quot;: [
    &quot;AgentSessionScanner&quot;,
    &quot;ProcessRunner&quot;,
    &quot;NodeServices FileSystem/Path/ChildProcess&quot;
  ]
}

fixture.database.readOnly
{
  &quot;home&quot;: &quot;&lt;fakehome&gt;/.codex&quot;,
  &quot;threadCount&quot;: 1,
  &quot;fixtureThreads&quot;: [
    {
      &quot;id&quot;: &quot;019a5f00-0000-7000-8000-00000000000e&quot;,
      &quot;cwd&quot;: &quot;&lt;fakehome&gt;/Documents/Codex/2026-11-08/new-chat&quot;,
      &quot;project_id&quot;: &quot;019a5f00-0000-7000-8000-0000000186a1&quot;,
      &quot;rollout_path&quot;: &quot;&lt;fakehome&gt;/.codex/sessions/2026/11/10/rollout-2026-11-10T10-00-00-019a5f00-0000-7000-8000-00000000000e.jsonl&quot;
    }
  ],
  &quot;rootsInInsertionOrder&quot;: [
    {
      &quot;rowid&quot;: 1,
      &quot;project_id&quot;: &quot;019a5f00-0000-7000-8000-0000000186a1&quot;,
      &quot;position&quot;: 0,
      &quot;path&quot;: &quot;&lt;fakehome&gt;/code/project&quot;
    }
  ]
}

warm.scanner.created
{
  &quot;instanceNumber&quot;: 1,
  &quot;distinctFromPriorInstances&quot;: true,
  &quot;firstCall&quot;: &quot;scan&quot;
}

warm.scan
{
  &quot;candidates&quot;: [
    {
      &quot;path&quot;: &quot;&lt;fakehome&gt;/code/project-alias&quot;,
      &quot;title&quot;: &quot;project-alias&quot;,
      &quot;projectId&quot;: &quot;project-1&quot;,
      &quot;sources&quot;: [
        &quot;codex&quot;
      ],
      &quot;threadCount&quot;: 1,
      &quot;lastActiveAt&quot;: &quot;2026-11-10T11:59:59.000Z&quot;,
      &quot;alreadyImported&quot;: true,
      &quot;git&quot;: null
    }
  ],
  &quot;scannedAt&quot;: &quot;2026-11-10T12:00:00.000Z&quot;
}

warm.recent(P)
[
  {
    &quot;tag&quot;: &quot;Importable&quot;,
    &quot;id&quot;: &quot;019a5f00-0000-7000-8000-00000000000e&quot;,
    &quot;provider&quot;: &quot;codex&quot;,
    &quot;providerInstanceId&quot;: &quot;codex&quot;,
    &quot;file&quot;: &quot;&lt;fakehome&gt;/.codex/sessions/2026/11/10/rollout-2026-11-10T10-00-00-019a5f00-0000-7000-8000-00000000000e.jsonl&quot;,
    &quot;identity&quot;: {
      &quot;filePath&quot;: &quot;&lt;fakehome&gt;/.codex/sessions/2026/11/10/rollout-2026-11-10T10-00-00-019a5f00-0000-7000-8000-00000000000e.jsonl&quot;,
      &quot;size&quot;: 394,
      &quot;mtimeMs&quot;: 1794311999000,
      &quot;device&quot;: 64769,
      &quot;inode&quot;: &quot;2075279&quot;,
      &quot;birthtimeMs&quot;: 1794308107831,
      &quot;provider&quot;: &quot;codex&quot;,
      &quot;providerInstanceId&quot;: &quot;codex&quot;,
      &quot;providerSessionId&quot;: &quot;019a5f00-0000-7000-8000-00000000000e&quot;
    },
    &quot;title&quot;: &quot;R14 cache mutation&quot;,
    &quot;messages&quot;: [
      {
        &quot;role&quot;: &quot;user&quot;,
        &quot;text&quot;: &quot;R14 cache mutation&quot;
      }
    ]
  }
]

warm.recent(Q)
[]

mutation.SQL
{
  &quot;statement&quot;: &quot;UPDATE project_roots SET path=Q WHERE project_id=? AND position=0&quot;,
  &quot;projectId&quot;: &quot;019a5f00-0000-7000-8000-0000000186a1&quot;
}

warm.cached-after-mutation.recent(P)
[
  {
    &quot;tag&quot;: &quot;Importable&quot;,
    &quot;id&quot;: &quot;019a5f00-0000-7000-8000-00000000000e&quot;,
    &quot;provider&quot;: &quot;codex&quot;,
    &quot;providerInstanceId&quot;: &quot;codex&quot;,
    &quot;file&quot;: &quot;&lt;fakehome&gt;/.codex/sessions/2026/11/10/rollout-2026-11-10T10-00-00-019a5f00-0000-7000-8000-00000000000e.jsonl&quot;,
    &quot;identity&quot;: {
      &quot;filePath&quot;: &quot;&lt;fakehome&gt;/.codex/sessions/2026/11/10/rollout-2026-11-10T10-00-00-019a5f00-0000-7000-8000-00000000000e.jsonl&quot;,
      &quot;size&quot;: 394,
      &quot;mtimeMs&quot;: 1794311999000,
      &quot;device&quot;: 64769,
      &quot;inode&quot;: &quot;2075279&quot;,
      &quot;birthtimeMs&quot;: 1794308107831,
      &quot;provider&quot;: &quot;codex&quot;,
      &quot;providerInstanceId&quot;: &quot;codex&quot;,
      &quot;providerSessionId&quot;: &quot;019a5f00-0000-7000-8000-00000000000e&quot;
    },
    &quot;title&quot;: &quot;R14 cache mutation&quot;,
    &quot;messages&quot;: [
      {
        &quot;role&quot;: &quot;user&quot;,
        &quot;text&quot;: &quot;R14 cache mutation&quot;
      }
    ]
  }
]

warm.cached-after-mutation.recent(Q)
[]

warm.rescan-after-mutation
{
  &quot;candidates&quot;: [
    {
      &quot;path&quot;: &quot;&lt;fakehome&gt;/code/other&quot;,
      &quot;title&quot;: &quot;other&quot;,
      &quot;sources&quot;: [
        &quot;codex&quot;
      ],
      &quot;threadCount&quot;: 1,
      &quot;lastActiveAt&quot;: &quot;2026-11-10T11:59:59.000Z&quot;,
      &quot;alreadyImported&quot;: false,
      &quot;git&quot;: null
    }
  ],
  &quot;scannedAt&quot;: &quot;2026-11-10T12:00:00.000Z&quot;
}

warm.refreshed-after-mutation.recent(P)
[]

warm.refreshed-after-mutation.recent(Q)
[
  {
    &quot;tag&quot;: &quot;Importable&quot;,
    &quot;id&quot;: &quot;019a5f00-0000-7000-8000-00000000000e&quot;,
    &quot;provider&quot;: &quot;codex&quot;,
    &quot;providerInstanceId&quot;: &quot;codex&quot;,
    &quot;file&quot;: &quot;&lt;fakehome&gt;/.codex/sessions/2026/11/10/rollout-2026-11-10T10-00-00-019a5f00-0000-7000-8000-00000000000e.jsonl&quot;,
    &quot;identity&quot;: {
      &quot;filePath&quot;: &quot;&lt;fakehome&gt;/.codex/sessions/2026/11/10/rollout-2026-11-10T10-00-00-019a5f00-0000-7000-8000-00000000000e.jsonl&quot;,
      &quot;size&quot;: 394,
      &quot;mtimeMs&quot;: 1794311999000,
      &quot;device&quot;: 64769,
      &quot;inode&quot;: &quot;2075279&quot;,
      &quot;birthtimeMs&quot;: 1794308107831,
      &quot;provider&quot;: &quot;codex&quot;,
      &quot;providerInstanceId&quot;: &quot;codex&quot;,
      &quot;providerSessionId&quot;: &quot;019a5f00-0000-7000-8000-00000000000e&quot;
    },
    &quot;title&quot;: &quot;R14 cache mutation&quot;,
    &quot;messages&quot;: [
      {
        &quot;role&quot;: &quot;user&quot;,
        &quot;text&quot;: &quot;R14 cache mutation&quot;
      }
    ]
  }
]

mutation.restore
&quot;original database bytes restored; position 0 root is P&quot;

cold.scanner.created
{
  &quot;instanceNumber&quot;: 2,
  &quot;distinctFromPriorInstances&quot;: true,
  &quot;firstCall&quot;: &quot;recentThreads(P)&quot;
}

cold.recent(P)
[
  {
    &quot;tag&quot;: &quot;Importable&quot;,
    &quot;id&quot;: &quot;019a5f00-0000-7000-8000-00000000000e&quot;,
    &quot;provider&quot;: &quot;codex&quot;,
    &quot;providerInstanceId&quot;: &quot;codex&quot;,
    &quot;file&quot;: &quot;&lt;fakehome&gt;/.codex/sessions/2026/11/10/rollout-2026-11-10T10-00-00-019a5f00-0000-7000-8000-00000000000e.jsonl&quot;,
    &quot;identity&quot;: {
      &quot;filePath&quot;: &quot;&lt;fakehome&gt;/.codex/sessions/2026/11/10/rollout-2026-11-10T10-00-00-019a5f00-0000-7000-8000-00000000000e.jsonl&quot;,
      &quot;size&quot;: 394,
      &quot;mtimeMs&quot;: 1794311999000,
      &quot;device&quot;: 64769,
      &quot;inode&quot;: &quot;2075279&quot;,
      &quot;birthtimeMs&quot;: 1794308107831,
      &quot;provider&quot;: &quot;codex&quot;,
      &quot;providerInstanceId&quot;: &quot;codex&quot;,
      &quot;providerSessionId&quot;: &quot;019a5f00-0000-7000-8000-00000000000e&quot;
    },
    &quot;title&quot;: &quot;R14 cache mutation&quot;,
    &quot;messages&quot;: [
      {
        &quot;role&quot;: &quot;user&quot;,
        &quot;text&quot;: &quot;R14 cache mutation&quot;
      }
    ]
  }
]

cold.recent(Q)
[]</pre></td></tr></table>

Run receipt: both exit 0; fixture SHA-256 maps match between sides and before/after each invocation. Warm and cold stable outcomes match exactly, including source identities and messages.

Attribution: AI-assisted; verified with the tests and tools listed above.
