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

**6 / 6 requested rows captured before and after:** F02, F05, F06, F10, F11, F12. **Unverified requested rows: none.**

Pi **1.5.1**; real T3 **`T3CODE_DEV_SEED=0 vp run dev`**, each revision from its own checkout and fresh database created by that revision’s migrations; Node **26.12.1**; Linux **6.8.0-117-generic x86_64**. UTC **2026-11-10 13:53–13:54**. Server ports read from `[dev-runner]`: before **16584**, after **14388**. No live T3 database read or seeded.

Before: [0a9abddaee](https://git.cafe/pingdotgg/t3code/commit/0a9abddaee00ff1495e77a03dd4fafa73c3cd4cb); after: [0e41937e52](https://git.cafe/pingdotgg/t3code/commit/0e41937e52a50a42a84d5c20ac493a2c41354eb4). The after worktree was clean and pinned to the requested head throughout. No source edits, commits, pushes, or PR mutations were made.

The same driver and synthetic fixtures ran on both fresh databases. Actual chat replies use the hub’s Haiku-class fixture `<upstream-model>`, through a local alias forwarder. Pi really selects the synthetic IDs in each `set_model`; the local HTTP proxy changes only the upstream request’s model field to that Haiku fixture and adds private authentication. It does not change Pi RPC selection or synthesize replies. All chat prompts are `Reply with the single word: pong. Do not use tools.` Background title prompts are generated by the app.

F11’s inventory failures are explicitly fault-injected. Every other fixture uses unmodified Pi RPC behavior. URLs, keys, auth/session tokens, unrelated configured providers, and unrelated runtime-model metadata are redacted. Fixture model IDs are preserved. Original evidence remains private in scratch.

## Setup and scripted invocation

```sh
git -C /home/user/t3code worktree add --detach /home/user/wt/pr-32585-before 0a9abddaee00ff1495e77a03dd4fafa73c3cd4cb
# in /home/user/wt/pr-32585-before
vp install
# run-matrix.mjs spawns the following in each revision’s checkout:
T3CODE_DEV_SEED=0 vp run dev
# local auth session issuance writes only to a private token file
node apps/server/src/bin.ts auth session issue --base-dir <checkout>/.t3 --token-only
# same finalized driver on both sides, in this order:
node driver.mjs before base       # and after base
node driver.mjs before collision  # and after collision
node driver.mjs before late       # and after late
node driver.mjs before fault      # and after fault
node driver.mjs before malformed  # and after malformed
```

`run-matrix.mjs` records spawned PIDs, real ports, full SHAs and cleanup. `driver.mjs` uses the app’s authenticated project HTTP endpoint and WebSocket RPC (`server.updateSettings`, `server.refreshProviders`, `orchestration.launchThread`, `orchestration.dispatchCommand`, `orchestration.getThreadProjection`). Provider configuration, custom models, thread creation, turns and title regeneration all go through the app. No database rows are inserted or copied. Each scenario writes a fresh timestamped evidence directory; Pi state is isolated with `PI_CODING_AGENT_DIR`.

All failed chat starts below expose this error in the persisted client projection: `The provider could not start this turn. Retry the turn; if it keeps failing, check the provider setup and server logs.` The detailed cause is captured in server logs. Background title failures are logged and retain the current title; they do not create a failed chat run.

## F02 — Slash provider

Register `audit/slash` / `haiku-fixture` in the extension; launch a T3 chat turn selecting `audit/slash/haiku-fixture`.

| Before<br>[0a9abddaee](https://git.cafe/pingdotgg/t3code/commit/0a9abddaee00ff1495e77a03dd4fafa73c3cd4cb) | After<br>[0e41937e52](https://git.cafe/pingdotgg/t3code/commit/0e41937e52a50a42a84d5c20ac493a2c41354eb4) |
|---|---|
| `set_model {provider:"audit", modelId:"slash/haiku-fixture"}` → Pi error `Model not found`; turn **failed**, no prompt. | `set_model {provider:"audit/slash", modelId:"haiku-fixture"}` → ACK success; reply **`pong`**. |

### Before runtime transcript ([0a9abddaee](https://git.cafe/pingdotgg/t3code/commit/0a9abddaee00ff1495e77a03dd4fafa73c3cd4cb))

Source directory: `2026-11-10T13-53-15-433Z-before-base`. Inventory excerpts retain fixture pairs and count unrelated redacted entries. Full redacted raw events, projections, and server logs are in the archive.

```jsonl
{"time": "2026-11-10T13:53:15.707Z", "driver-step": {"label": "F02", "action": "launch", "slug": "audit/slash/haiku-fixture"}}
{"time": "2026-11-10T13:53:15.734Z", "pid": 833340, "direction": "launch", "data": {"args": ["--version"], "agentDir": "/tmp/lead-32585-r1/evidence-capture-1/2026-11-10T13-53-15-433Z-before-base/pi-agent"}}
{"time": "2026-11-10T13:53:15.740Z", "pid": 833340, "direction": "real-pi", "data": {"pid": 833356}}
{"time": "2026-11-10T13:53:15.986Z", "pid": 833399, "direction": "launch", "data": {"args": ["--mode", "rpc", "--extension", "/tmp/lead-32585-r1/evidence-capture-1/fixtures.ts", "--extension", "/home/user/wt/pr-32585-before/.t3/caches/pi-t3-mcp-extension.ts"], "agentDir": "/tmp/lead-32585-r1/evidence-capture-1/2026-11-10T13-53-15-433Z-before-base/pi-agent"}}
{"time": "2026-11-10T13:53:15.992Z", "pid": 833399, "direction": "real-pi", "data": {"pid": 833444}}
{"time": "2026-11-10T13:53:16.070Z", "pid": 833463, "direction": "launch", "data": {"args": ["--mode", "rpc", "--no-session", "--extension", "/tmp/lead-32585-r1/evidence-capture-1/fixtures.ts", "--offline"], "agentDir": "/tmp/lead-32585-r1/evidence-capture-1/2026-11-10T13-53-15-433Z-before-base/pi-agent"}}
{"time": "2026-11-10T13:53:16.077Z", "pid": 833463, "direction": "real-pi", "data": {"pid": 833481}}
{"time": "2026-11-10T13:53:16.480Z", "pid": 833463, "direction": "T3->Pi", "data": {"type": "get_available_models", "id": "t3-1"}}
{"time": "2026-11-10T13:53:16.481Z", "pid": 833463, "direction": "Pi->T3", "data": {"id": "t3-1", "type": "response", "command": "get_available_models", "success": true, "data": {"models": [{"provider": "auditplain", "id": "haiku-fixture"}, {"provider": "audit/slash", "id": "haiku-fixture"}, {"provider": "audit/hub", "id": "family/model"}], "unrelated_entries_redacted": 4}}}
{"time": "2026-11-10T13:53:16.534Z", "pid": 833399, "direction": "T3->Pi", "data": {"type": "get_available_models", "id": "t3-1"}}
{"time": "2026-11-10T13:53:16.535Z", "pid": 833399, "direction": "Pi->T3", "data": {"id": "t3-1", "type": "response", "command": "get_available_models", "success": true, "data": {"models": [{"provider": "auditplain", "id": "haiku-fixture"}, {"provider": "audit/slash", "id": "haiku-fixture"}, {"provider": "audit/hub", "id": "family/model"}], "unrelated_entries_redacted": 4}}}
{"time": "2026-11-10T13:53:16.657Z", "pid": 833399, "direction": "T3->Pi", "data": {"type": "set_model", "provider": "audit", "modelId": "slash/haiku-fixture", "id": "t3-3"}}
{"time": "2026-11-10T13:53:16.658Z", "pid": 833399, "direction": "Pi->T3", "data": {"id": "t3-3", "type": "response", "command": "set_model", "success": false, "error": "Model not found: audit/slash/haiku-fixture"}}
{"time": "2026-11-10T13:53:16.792Z", "label": "F02", "run_statuses": ["failed"], "assistant_texts": [], "user_facing_errors": ["The provider could not start this turn. Retry the turn; if it keeps failing, check the provider setup and server logs."], "thread_title": "F02"}
```

Relevant server log records:

```text
[13:53:16.311] INFO (#2049) http.span=11ms: Sent HTTP response
  http.method: POST
  http.url: /mcp
  http.status: 200
[13:53:16.336] INFO (#2053) http.span=14ms: Sent HTTP response
  http.method: POST
  http.url: /mcp
  http.status: 202
[13:53:16.389] INFO (#2056) http.span=42ms: Sent HTTP response
  http.method: POST
  http.url: /mcp
  http.status: 200
[13:53:16.661] ERROR (#1983): orchestration V2 provider turn start failed
  {
    runId: 'run:thread:a16d7557-f555-4bc0-a742-92d0dce37120:ordinal:1',
    cause: 'ProviderAdapterTurnStartError: Failed to start run run:thread:a16d7557-f555-4bc0-a742-92d0dce37120:ordinal:1 on pi provider thread provider-thread:provider:pi:native-thread:pending%3Arun%3Athread%3Aa16d7557-f555-4bc0-a742-92d0dce37120%3Aordinal%3A1.\n' +
      '    at file:///home/user/wt/pr-32585-before/packages/provider-pi/src/server/adapter.ts:2882:19\n' +
      '    at file:///home/user/wt/pr-32585-before/node_modules/.pnpm/effect@4.1.2/node_modules/effect/dist/internal/effect.js:152:23\n' +
      '    at Array.map (<anonymous>)\n' +
      '    at file:///home/user/wt/pr-32585-before/node_modules/.pnpm/effect@4.1.2/node_modules/effect/dist/internal/effect.js:149:33\n' +
      '    at file:///home/user/wt/pr-32585-before/node_modules/.pnpm/effect@4.1.2/node_modules/effect/dist/Function.js:79:18\n' +
      '    at PiRpc.request (file:///home/user/wt/pr-32585-before/packages/provider-pi/src/server/adapter.ts:733:20)\n' +
      '    at PiRpc.request (definition) (file:///home/user/wt/pr-32585-before/packages/provider-pi/src/server/rpc.ts:401:26)\n' +
      '    at PiAdapter.startTurn (file:///home/user/wt/pr-32585-before/apps/server/src/orchestration-v2/ProviderSessionManager.ts:2119:29)\n' +
      '    at PiAdapter.startTurn (definition) (file:///home/user/wt/pr-32585-before/packages/provider-pi/src/server/adapter.ts:2710:27)\n' +
      '    at RunExecutionService.startRootRun (file:///home/user/wt/pr-32585-before/apps/server/src/orchestration-v2/ProviderTurnStartService.ts:1674:27)\n' +
      '    at RunExecutionService.startRootRun (definition) (file:///home/user/wt/pr-32585-before/apps/server/src/orchestration-v2/RunExecutionService.ts:895:28)\n' +
      '    at ProviderTurnStartService.start (file:///home/user/wt/pr-32585-before/apps/server/src/orchestration-v2/EffectWorker.ts:143:16)\n' +
      '    at ProviderTurnStartService.start (definition) (file:///home/user/wt/pr-32585-before/apps/server/src/orchestration-v2/ProviderTurnStartService.ts:1727:21)\n' +
      '    at OrchestrationEffectExecutorV2.execute (file:///home/user/wt/pr-32585-before/apps/server/src/orchestration-v2/EffectWorker.ts:786:14)\n' +
      '    at OrchestrationEffectExecutorV2.execute (definition) (file:///home/user/wt/pr-32585-before/apps/server/src/orchestration-v2/EffectWorker.ts:98:23) {\n' +
      '  [cause]: PiRpcError: Pi RPC set_model failed: Model not found: audit/slash/haiku-fixture.\n' +
      '      at file:///home/user/wt/pr-32585-before/packages/provider-pi/src/server/rpc.ts:280:15 {\n' +
      '    [cause]: Error: Model not found: audit/slash/haiku-fixture\n' +
      '  }\n' +
      '}'
  }
```

### After runtime transcript ([0e41937e52](https://git.cafe/pingdotgg/t3code/commit/0e41937e52a50a42a84d5c20ac493a2c41354eb4))

Source directory: `2026-11-10T13-53-15-444Z-after-base`. Inventory excerpts retain fixture pairs and count unrelated redacted entries. Full redacted raw events, projections, and server logs are in the archive.

```jsonl
{"time": "2026-11-10T13:53:15.763Z", "driver-step": {"label": "F02", "action": "launch", "slug": "audit/slash/haiku-fixture"}}
{"time": "2026-11-10T13:53:15.802Z", "pid": 833363, "direction": "launch", "data": {"args": ["--version"], "agentDir": "/tmp/lead-32585-r1/evidence-capture-1/2026-11-10T13-53-15-444Z-after-base/pi-agent"}}
{"time": "2026-11-10T13:53:15.809Z", "pid": 833363, "direction": "real-pi", "data": {"pid": 833385}}
{"time": "2026-11-10T13:53:15.978Z", "pid": 833398, "direction": "launch", "data": {"args": ["--mode", "rpc", "--extension", "/tmp/lead-32585-r1/evidence-capture-1/fixtures.ts", "--extension", "/home/user/wt/pr-32585/.t3/caches/pi-t3-mcp-extension.ts"], "agentDir": "/tmp/lead-32585-r1/evidence-capture-1/2026-11-10T13-53-15-444Z-after-base/pi-agent"}}
{"time": "2026-11-10T13:53:15.982Z", "pid": 833398, "direction": "real-pi", "data": {"pid": 833437}}
{"time": "2026-11-10T13:53:16.106Z", "pid": 833480, "direction": "launch", "data": {"args": ["--mode", "rpc", "--no-session", "--extension", "/tmp/lead-32585-r1/evidence-capture-1/fixtures.ts", "--offline"], "agentDir": "/tmp/lead-32585-r1/evidence-capture-1/2026-11-10T13-53-15-444Z-after-base/pi-agent"}}
{"time": "2026-11-10T13:53:16.112Z", "pid": 833480, "direction": "real-pi", "data": {"pid": 833509}}
{"time": "2026-11-10T13:53:16.514Z", "pid": 833398, "direction": "T3->Pi", "data": {"type": "get_available_models", "id": "t3-1"}}
{"time": "2026-11-10T13:53:16.515Z", "pid": 833398, "direction": "Pi->T3", "data": {"id": "t3-1", "type": "response", "command": "get_available_models", "success": true, "data": {"models": [{"provider": "auditplain", "id": "haiku-fixture"}, {"provider": "audit/slash", "id": "haiku-fixture"}, {"provider": "audit/hub", "id": "family/model"}], "unrelated_entries_redacted": 4}}}
{"time": "2026-11-10T13:53:16.615Z", "pid": 833398, "direction": "T3->Pi", "data": {"type": "set_model", "provider": "audit/slash", "modelId": "haiku-fixture", "id": "t3-3"}}
{"time": "2026-11-10T13:53:16.618Z", "pid": 833398, "direction": "Pi->T3", "data": {"id": "t3-3", "type": "response", "command": "set_model", "success": true, "data": {"provider": "audit/slash", "id": "haiku-fixture"}}}
{"time": "2026-11-10T13:53:16.637Z", "pid": 833480, "direction": "T3->Pi", "data": {"type": "get_available_models", "id": "t3-1"}}
{"time": "2026-11-10T13:53:16.639Z", "pid": 833480, "direction": "Pi->T3", "data": {"id": "t3-1", "type": "response", "command": "get_available_models", "success": true, "data": {"models": [{"provider": "auditplain", "id": "haiku-fixture"}, {"provider": "audit/slash", "id": "haiku-fixture"}, {"provider": "audit/hub", "id": "family/model"}], "unrelated_entries_redacted": 4}}}
{"time": "2026-11-10T13:53:16.651Z", "pid": 833398, "direction": "T3->Pi", "data": {"type": "prompt", "message": "Reply with the single word: pong. Do not use tools.", "streamingBehavior": "steer"}}
{"time": "2026-11-10T13:53:16.659Z", "pid": 833398, "direction": "Pi->T3", "data": {"type": "response", "command": "prompt", "success": true, "data": {"disposition": "started"}}}
{"time": "2026-11-10T13:53:16.660Z", "pid": 833398, "direction": "Pi->T3", "data": {"type": "agent_start"}}
{"time": "2026-11-10T13:53:18.172Z", "pid": 833398, "direction": "Pi->T3", "data": {"type": "message_end", "message": {"role": "assistant", "stopReason": "stop", "content": [{"type": "text", "text": "pong"}], "errorMessage": null}}}
{"time": "2026-11-10T13:53:18.180Z", "pid": 833398, "direction": "Pi->T3", "data": {"type": "agent_settled", "aborted": false}}
{"time": "2026-11-10T13:53:18.624Z", "label": "F02", "run_statuses": ["completed"], "assistant_texts": ["pong"], "user_facing_errors": [], "thread_title": "F02"}
```

Relevant server log records:

```text
[13:53:16.319] INFO (#2055) http.span=11ms: Sent HTTP response
  http.method: POST
  http.url: /mcp
  http.status: 200
[13:53:16.338] INFO (#2059) http.span=6ms: Sent HTTP response
  http.method: POST
  http.url: /mcp
  http.status: 202
[13:53:16.363] INFO (#2062) http.span=23ms: Sent HTTP response
  http.method: POST
  http.url: /mcp
  http.status: 200
```

## F05 — Slashes in both IDs

Register the unique `audit/hub` / `family/model` pair; launch a T3 chat turn selecting `audit/hub/family/model`, without the colliding provider present.

| Before<br>[0a9abddaee](https://git.cafe/pingdotgg/t3code/commit/0a9abddaee00ff1495e77a03dd4fafa73c3cd4cb) | After<br>[0e41937e52](https://git.cafe/pingdotgg/t3code/commit/0e41937e52a50a42a84d5c20ac493a2c41354eb4) |
|---|---|
| `set_model {provider:"audit", modelId:"hub/family/model"}` → Pi error `Model not found`; turn **failed**, no prompt. | `set_model {provider:"audit/hub", modelId:"family/model"}` → ACK success; reply **`pong`**. |

### Before runtime transcript ([0a9abddaee](https://git.cafe/pingdotgg/t3code/commit/0a9abddaee00ff1495e77a03dd4fafa73c3cd4cb))

Source directory: `2026-11-10T13-53-15-433Z-before-base`. Inventory excerpts retain fixture pairs and count unrelated redacted entries. Full redacted raw events, projections, and server logs are in the archive.

```jsonl
{"time": "2026-11-10T13:53:16.793Z", "driver-step": {"label": "F05", "action": "launch", "slug": "audit/hub/family/model"}}
{"time": "2026-11-10T13:53:16.966Z", "pid": 833544, "direction": "launch", "data": {"args": ["--mode", "rpc", "--extension", "/tmp/lead-32585-r1/evidence-capture-1/fixtures.ts", "--extension", "/home/user/wt/pr-32585-before/.t3/caches/pi-t3-mcp-extension.ts"], "agentDir": "/tmp/lead-32585-r1/evidence-capture-1/2026-11-10T13-53-15-433Z-before-base/pi-agent"}}
{"time": "2026-11-10T13:53:16.971Z", "pid": 833544, "direction": "real-pi", "data": {"pid": 833560}}
{"time": "2026-11-10T13:53:17.559Z", "pid": 833544, "direction": "T3->Pi", "data": {"type": "get_available_models", "id": "t3-1"}}
{"time": "2026-11-10T13:53:17.560Z", "pid": 833544, "direction": "Pi->T3", "data": {"id": "t3-1", "type": "response", "command": "get_available_models", "success": true, "data": {"models": [{"provider": "auditplain", "id": "haiku-fixture"}, {"provider": "audit/slash", "id": "haiku-fixture"}, {"provider": "audit/hub", "id": "family/model"}], "unrelated_entries_redacted": 4}}}
{"time": "2026-11-10T13:53:17.637Z", "pid": 833544, "direction": "T3->Pi", "data": {"type": "set_model", "provider": "audit", "modelId": "hub/family/model", "id": "t3-3"}}
{"time": "2026-11-10T13:53:17.638Z", "pid": 833544, "direction": "Pi->T3", "data": {"id": "t3-3", "type": "response", "command": "set_model", "success": false, "error": "Model not found: audit/hub/family/model"}}
{"time": "2026-11-10T13:53:17.780Z", "label": "F05", "run_statuses": ["failed"], "assistant_texts": [], "user_facing_errors": ["The provider could not start this turn. Retry the turn; if it keeps failing, check the provider setup and server logs."], "thread_title": "F05"}
```

Relevant server log records:

```text
[13:53:17.338] INFO (#2327) http.span=7ms: Sent HTTP response
  http.method: POST
  http.url: /mcp
  http.status: 200
[13:53:17.364] INFO (#2331) http.span=4ms: Sent HTTP response
  http.method: POST
  http.url: /mcp
  http.status: 202
[13:53:17.404] INFO (#2334) http.span=31ms: Sent HTTP response
  http.method: POST
  http.url: /mcp
  http.status: 200
[13:53:17.641] ERROR (#2271): orchestration V2 provider turn start failed
  {
    runId: 'run:thread:96c1737e-a67a-4b3d-bf26-4d4fbf060244:ordinal:1',
    cause: 'ProviderAdapterTurnStartError: Failed to start run run:thread:96c1737e-a67a-4b3d-bf26-4d4fbf060244:ordinal:1 on pi provider thread provider-thread:provider:pi:native-thread:pending%3Arun%3Athread%3A96c1737e-a67a-4b3d-bf26-4d4fbf060244%3Aordinal%3A1.\n' +
      '    at file:///home/user/wt/pr-32585-before/packages/provider-pi/src/server/adapter.ts:2882:19\n' +
      '    at file:///home/user/wt/pr-32585-before/node_modules/.pnpm/effect@4.1.2/node_modules/effect/dist/internal/effect.js:152:23\n' +
      '    at Array.map (<anonymous>)\n' +
      '    at file:///home/user/wt/pr-32585-before/node_modules/.pnpm/effect@4.1.2/node_modules/effect/dist/internal/effect.js:149:33\n' +
      '    at file:///home/user/wt/pr-32585-before/node_modules/.pnpm/effect@4.1.2/node_modules/effect/dist/Function.js:79:18\n' +
      '    at PiRpc.request (file:///home/user/wt/pr-32585-before/packages/provider-pi/src/server/adapter.ts:733:20)\n' +
      '    at PiRpc.request (definition) (file:///home/user/wt/pr-32585-before/packages/provider-pi/src/server/rpc.ts:401:26)\n' +
      '    at PiAdapter.startTurn (file:///home/user/wt/pr-32585-before/apps/server/src/orchestration-v2/ProviderSessionManager.ts:2119:29)\n' +
      '    at PiAdapter.startTurn (definition) (file:///home/user/wt/pr-32585-before/packages/provider-pi/src/server/adapter.ts:2710:27)\n' +
      '    at RunExecutionService.startRootRun (file:///home/user/wt/pr-32585-before/apps/server/src/orchestration-v2/ProviderTurnStartService.ts:1674:27)\n' +
      '    at RunExecutionService.startRootRun (definition) (file:///home/user/wt/pr-32585-before/apps/server/src/orchestration-v2/RunExecutionService.ts:895:28)\n' +
      '    at ProviderTurnStartService.start (file:///home/user/wt/pr-32585-before/apps/server/src/orchestration-v2/EffectWorker.ts:143:16)\n' +
      '    at ProviderTurnStartService.start (definition) (file:///home/user/wt/pr-32585-before/apps/server/src/orchestration-v2/ProviderTurnStartService.ts:1727:21)\n' +
      '    at OrchestrationEffectExecutorV2.execute (file:///home/user/wt/pr-32585-before/apps/server/src/orchestration-v2/EffectWorker.ts:786:14)\n' +
      '    at OrchestrationEffectExecutorV2.execute (definition) (file:///home/user/wt/pr-32585-before/apps/server/src/orchestration-v2/EffectWorker.ts:98:23) {\n' +
      '  [cause]: PiRpcError: Pi RPC set_model failed: Model not found: audit/hub/family/model.\n' +
      '      at file:///home/user/wt/pr-32585-before/packages/provider-pi/src/server/rpc.ts:280:15 {\n' +
      '    [cause]: Error: Model not found: audit/hub/family/model\n' +
      '  }\n' +
      '}'
  }
```

### After runtime transcript ([0e41937e52](https://git.cafe/pingdotgg/t3code/commit/0e41937e52a50a42a84d5c20ac493a2c41354eb4))

Source directory: `2026-11-10T13-53-15-444Z-after-base`. Inventory excerpts retain fixture pairs and count unrelated redacted entries. Full redacted raw events, projections, and server logs are in the archive.

```jsonl
{"time": "2026-11-10T13:53:18.625Z", "driver-step": {"label": "F05", "action": "launch", "slug": "audit/hub/family/model"}}
{"time": "2026-11-10T13:53:18.805Z", "pid": 833651, "direction": "launch", "data": {"args": ["--mode", "rpc", "--extension", "/tmp/lead-32585-r1/evidence-capture-1/fixtures.ts", "--extension", "/home/user/wt/pr-32585/.t3/caches/pi-t3-mcp-extension.ts"], "agentDir": "/tmp/lead-32585-r1/evidence-capture-1/2026-11-10T13-53-15-444Z-after-base/pi-agent"}}
{"time": "2026-11-10T13:53:18.809Z", "pid": 833651, "direction": "real-pi", "data": {"pid": 833667}}
{"time": "2026-11-10T13:53:19.417Z", "pid": 833651, "direction": "T3->Pi", "data": {"type": "get_available_models", "id": "t3-1"}}
{"time": "2026-11-10T13:53:19.418Z", "pid": 833651, "direction": "Pi->T3", "data": {"id": "t3-1", "type": "response", "command": "get_available_models", "success": true, "data": {"models": [{"provider": "auditplain", "id": "haiku-fixture"}, {"provider": "audit/slash", "id": "haiku-fixture"}, {"provider": "audit/hub", "id": "family/model"}], "unrelated_entries_redacted": 4}}}
{"time": "2026-11-10T13:53:19.525Z", "pid": 833651, "direction": "T3->Pi", "data": {"type": "set_model", "provider": "audit/hub", "modelId": "family/model", "id": "t3-3"}}
{"time": "2026-11-10T13:53:19.528Z", "pid": 833651, "direction": "Pi->T3", "data": {"id": "t3-3", "type": "response", "command": "set_model", "success": true, "data": {"provider": "audit/hub", "id": "family/model"}}}
{"time": "2026-11-10T13:53:19.544Z", "pid": 833651, "direction": "T3->Pi", "data": {"type": "prompt", "message": "Reply with the single word: pong. Do not use tools.", "streamingBehavior": "steer"}}
{"time": "2026-11-10T13:53:19.554Z", "pid": 833651, "direction": "Pi->T3", "data": {"type": "response", "command": "prompt", "success": true, "data": {"disposition": "started"}}}
{"time": "2026-11-10T13:53:19.555Z", "pid": 833651, "direction": "Pi->T3", "data": {"type": "agent_start"}}
{"time": "2026-11-10T13:53:21.078Z", "pid": 833651, "direction": "Pi->T3", "data": {"type": "message_end", "message": {"role": "assistant", "stopReason": "stop", "content": [{"type": "text", "text": "pong"}], "errorMessage": null}}}
{"time": "2026-11-10T13:53:21.086Z", "pid": 833651, "direction": "Pi->T3", "data": {"type": "agent_settled", "aborted": false}}
{"time": "2026-11-10T13:53:21.354Z", "label": "F05", "run_statuses": ["completed"], "assistant_texts": ["pong"], "user_facing_errors": [], "thread_title": "F05"}
```

Relevant server log records:

```text
[13:53:19.267] INFO (#2494) http.span=6ms: Sent HTTP response
  http.method: POST
  http.url: /mcp
  http.status: 200
[13:53:19.286] INFO (#2498) http.span=4ms: Sent HTTP response
  http.method: POST
  http.url: /mcp
  http.status: 202
[13:53:19.328] INFO (#2502) http.span=35ms: Sent HTTP response
  http.method: POST
  http.url: /mcp
  http.status: 200
```

## F06 — Colliding joined slugs

In a fresh Pi runtime, register (`audit/hub`, `family/model`) then (`audit`, `hub/family/model`), in that order. Refresh T3’s provider picker through RPC, record its one exposed slug and display name `family/model`, then launch that slug. The Pi inventory contains both ordered pairs; T3 advertises one joined slug on both builds. Reverse ordering was not separately exercised.

| Before<br>[0a9abddaee](https://git.cafe/pingdotgg/t3code/commit/0a9abddaee00ff1495e77a03dd4fafa73c3cd4cb) | After<br>[0e41937e52](https://git.cafe/pingdotgg/t3code/commit/0e41937e52a50a42a84d5c20ac493a2c41354eb4) |
|---|---|
| `set_model {provider:"audit", modelId:"hub/family/model"}` → ACK success; **`pong`**, but selects the **second** reported pair. | `set_model {provider:"audit/hub", modelId:"family/model"}` → ACK success; **`pong`**, selects the **first** reported pair, matching the picker. |

### Before runtime transcript ([0a9abddaee](https://git.cafe/pingdotgg/t3code/commit/0a9abddaee00ff1495e77a03dd4fafa73c3cd4cb))

Source directory: `2026-11-10T13-53-21-442Z-before-collision`. Inventory excerpts retain fixture pairs and count unrelated redacted entries. Full redacted raw events, projections, and server logs are in the archive.

```jsonl
{"time": "2026-11-10T13:53:27.119Z", "driver-step": {"label": "F06", "action": "launch", "slug": "audit/hub/family/model"}}
{"time": "2026-11-10T13:53:27.341Z", "pid": 834143, "direction": "launch", "data": {"args": ["--mode", "rpc", "--extension", "/tmp/lead-32585-r1/evidence-capture-1/fixtures.ts", "--extension", "/home/user/wt/pr-32585-before/.t3/caches/pi-t3-mcp-extension.ts"], "agentDir": "/tmp/lead-32585-r1/evidence-capture-1/2026-11-10T13-53-21-442Z-before-collision/pi-agent"}}
{"time": "2026-11-10T13:53:27.347Z", "pid": 834143, "direction": "real-pi", "data": {"pid": 834160}}
{"time": "2026-11-10T13:53:28.031Z", "pid": 834143, "direction": "T3->Pi", "data": {"type": "get_available_models", "id": "t3-1"}}
{"time": "2026-11-10T13:53:28.033Z", "pid": 834143, "direction": "Pi->T3", "data": {"id": "t3-1", "type": "response", "command": "get_available_models", "success": true, "data": {"models": [{"provider": "auditplain", "id": "haiku-fixture"}, {"provider": "audit/slash", "id": "haiku-fixture"}, {"provider": "audit/hub", "id": "family/model"}, {"provider": "audit", "id": "hub/family/model"}], "unrelated_entries_redacted": 4}}}
{"time": "2026-11-10T13:53:28.113Z", "pid": 834143, "direction": "T3->Pi", "data": {"type": "set_model", "provider": "audit", "modelId": "hub/family/model", "id": "t3-3"}}
{"time": "2026-11-10T13:53:28.116Z", "pid": 834143, "direction": "Pi->T3", "data": {"id": "t3-3", "type": "response", "command": "set_model", "success": true, "data": {"provider": "audit", "id": "hub/family/model"}}}
{"time": "2026-11-10T13:53:28.140Z", "pid": 834143, "direction": "T3->Pi", "data": {"type": "prompt", "message": "Reply with the single word: pong. Do not use tools.", "streamingBehavior": "steer"}}
{"time": "2026-11-10T13:53:28.150Z", "pid": 834143, "direction": "Pi->T3", "data": {"type": "response", "command": "prompt", "success": true, "data": {"disposition": "started"}}}
{"time": "2026-11-10T13:53:28.151Z", "pid": 834143, "direction": "Pi->T3", "data": {"type": "agent_start"}}
{"time": "2026-11-10T13:53:29.708Z", "pid": 834143, "direction": "Pi->T3", "data": {"type": "message_end", "message": {"role": "assistant", "stopReason": "stop", "content": [{"type": "text", "text": "pong"}], "errorMessage": null}}}
{"time": "2026-11-10T13:53:29.714Z", "pid": 834143, "direction": "Pi->T3", "data": {"type": "agent_settled", "aborted": false}}
{"time": "2026-11-10T13:53:29.920Z", "label": "F06", "run_statuses": ["completed"], "assistant_texts": ["pong"], "user_facing_errors": [], "thread_title": "F06"}
```

Relevant server log records:

```text
[13:53:27.807] INFO (#2912) http.span=5ms: Sent HTTP response
  http.method: POST
  http.url: /mcp
  http.status: 200
[13:53:27.819] INFO (#2916) http.span=2ms: Sent HTTP response
  http.method: POST
  http.url: /mcp
  http.status: 202
[13:53:27.845] INFO (#2919) http.span=24ms: Sent HTTP response
  http.method: POST
  http.url: /mcp
  http.status: 200
```

### After runtime transcript ([0e41937e52](https://git.cafe/pingdotgg/t3code/commit/0e41937e52a50a42a84d5c20ac493a2c41354eb4))

Source directory: `2026-11-10T13-53-21-418Z-after-collision`. Inventory excerpts retain fixture pairs and count unrelated redacted entries. Full redacted raw events, projections, and server logs are in the archive.

```jsonl
{"time": "2026-11-10T13:53:27.401Z", "driver-step": {"label": "F06", "action": "launch", "slug": "audit/hub/family/model"}}
{"time": "2026-11-10T13:53:27.683Z", "pid": 834173, "direction": "launch", "data": {"args": ["--mode", "rpc", "--extension", "/tmp/lead-32585-r1/evidence-capture-1/fixtures.ts", "--extension", "/home/user/wt/pr-32585/.t3/caches/pi-t3-mcp-extension.ts"], "agentDir": "/tmp/lead-32585-r1/evidence-capture-1/2026-11-10T13-53-21-418Z-after-collision/pi-agent"}}
{"time": "2026-11-10T13:53:27.689Z", "pid": 834173, "direction": "real-pi", "data": {"pid": 834195}}
{"time": "2026-11-10T13:53:28.226Z", "pid": 834173, "direction": "T3->Pi", "data": {"type": "get_available_models", "id": "t3-1"}}
{"time": "2026-11-10T13:53:28.226Z", "pid": 834173, "direction": "Pi->T3", "data": {"id": "t3-1", "type": "response", "command": "get_available_models", "success": true, "data": {"models": [{"provider": "auditplain", "id": "haiku-fixture"}, {"provider": "audit/slash", "id": "haiku-fixture"}, {"provider": "audit/hub", "id": "family/model"}, {"provider": "audit", "id": "hub/family/model"}], "unrelated_entries_redacted": 4}}}
{"time": "2026-11-10T13:53:28.281Z", "pid": 834173, "direction": "T3->Pi", "data": {"type": "set_model", "provider": "audit/hub", "modelId": "family/model", "id": "t3-3"}}
{"time": "2026-11-10T13:53:28.284Z", "pid": 834173, "direction": "Pi->T3", "data": {"id": "t3-3", "type": "response", "command": "set_model", "success": true, "data": {"provider": "audit/hub", "id": "family/model"}}}
{"time": "2026-11-10T13:53:28.303Z", "pid": 834173, "direction": "T3->Pi", "data": {"type": "prompt", "message": "Reply with the single word: pong. Do not use tools.", "streamingBehavior": "steer"}}
{"time": "2026-11-10T13:53:28.312Z", "pid": 834173, "direction": "Pi->T3", "data": {"type": "response", "command": "prompt", "success": true, "data": {"disposition": "started"}}}
{"time": "2026-11-10T13:53:28.312Z", "pid": 834173, "direction": "Pi->T3", "data": {"type": "agent_start"}}
{"time": "2026-11-10T13:53:29.854Z", "pid": 834173, "direction": "Pi->T3", "data": {"type": "message_end", "message": {"role": "assistant", "stopReason": "stop", "content": [{"type": "text", "text": "pong"}], "errorMessage": null}}}
{"time": "2026-11-10T13:53:29.863Z", "pid": 834173, "direction": "Pi->T3", "data": {"type": "agent_settled", "aborted": false}}
{"time": "2026-11-10T13:53:30.147Z", "label": "F06", "run_statuses": ["completed"], "assistant_texts": ["pong"], "user_facing_errors": [], "thread_title": "F06"}
```

Relevant server log records:

```text
[13:53:28.057] INFO (#3180) http.span=5ms: Sent HTTP response
  http.method: POST
  http.url: /mcp
  http.status: 200
[13:53:28.066] INFO (#3184) http.span=2ms: Sent HTTP response
  http.method: POST
  http.url: /mcp
  http.status: 202
[13:53:28.093] INFO (#3187) http.span=26ms: Sent HTTP response
  http.method: POST
  http.url: /mcp
  http.status: 200
```

## F10 — Late providers after cached inventory

Start one T3 thread with ordinary `auditplain/haiku-fixture`; the initial inventory contains neither late provider. After the first Pi run settles, the extension sends its supported `/evidence-reload` command, enables a file gate, and calls `ctx.reload()`. The reloaded extension registers `late/hub` and `lateplain`. The driver waits for the reload-completion marker, selects `late/hub/haiku-fixture` directly, then the late ordinary control. All three turns use the same interposer PID and native Pi session. This is a real supported in-session extension reload, not an emulated inventory. No direct RPC `reload` opcode is assumed.

| Before<br>[0a9abddaee](https://git.cafe/pingdotgg/t3code/commit/0a9abddaee00ff1495e77a03dd4fafa73c3cd4cb) | After<br>[0e41937e52](https://git.cafe/pingdotgg/t3code/commit/0e41937e52a50a42a84d5c20ac493a2c41354eb4) |
|---|---|
| Initial ordinary control **`pong`**; supported extension reload in same process/session; no inventory refresh for late slash selection. `set_model {provider:"late", modelId:"hub/haiku-fixture"}` → rejection. Late ordinary `lateplain` control → **`pong`**. | Initial ordinary control **`pong`**; same supported reload; **new `get_available_models`** includes `late/hub`. `set_model {provider:"late/hub", modelId:"haiku-fixture"}` → ACK and **`pong`**. Late ordinary control → **`pong`**. |

### Before runtime transcript ([0a9abddaee](https://git.cafe/pingdotgg/t3code/commit/0a9abddaee00ff1495e77a03dd4fafa73c3cd4cb))

Source directory: `2026-11-10T13-53-30-228Z-before-late`. Inventory excerpts retain fixture pairs and count unrelated redacted entries. Full redacted raw events, projections, and server logs are in the archive.

```jsonl
{"time": "2026-11-10T13:53:30.485Z", "driver-step": {"label": "F10-initial-control", "action": "launch", "slug": "auditplain/haiku-fixture"}}
{"time": "2026-11-10T13:53:30.538Z", "pid": 834265, "direction": "launch", "data": {"args": ["--version"], "agentDir": "/tmp/lead-32585-r1/evidence-capture-1/2026-11-10T13-53-30-228Z-before-late/pi-agent"}}
{"time": "2026-11-10T13:53:30.547Z", "pid": 834265, "direction": "real-pi", "data": {"pid": 834296}}
{"time": "2026-11-10T13:53:30.807Z", "pid": 834337, "direction": "launch", "data": {"args": ["--mode", "rpc", "--extension", "/tmp/lead-32585-r1/evidence-capture-1/fixtures.ts", "--extension", "/home/user/wt/pr-32585-before/.t3/caches/pi-t3-mcp-extension.ts"], "agentDir": "/tmp/lead-32585-r1/evidence-capture-1/2026-11-10T13-53-30-228Z-before-late/pi-agent"}}
{"time": "2026-11-10T13:53:30.815Z", "pid": 834337, "direction": "real-pi", "data": {"pid": 834367}}
{"time": "2026-11-10T13:53:31.095Z", "pid": 834400, "direction": "launch", "data": {"args": ["--mode", "rpc", "--no-session", "--extension", "/tmp/lead-32585-r1/evidence-capture-1/fixtures.ts", "--offline"], "agentDir": "/tmp/lead-32585-r1/evidence-capture-1/2026-11-10T13-53-30-228Z-before-late/pi-agent"}}
{"time": "2026-11-10T13:53:31.103Z", "pid": 834400, "direction": "real-pi", "data": {"pid": 834430}}
{"time": "2026-11-10T13:53:31.665Z", "pid": 834337, "direction": "T3->Pi", "data": {"type": "get_available_models", "id": "t3-1"}}
{"time": "2026-11-10T13:53:31.666Z", "pid": 834337, "direction": "Pi->T3", "data": {"id": "t3-1", "type": "response", "command": "get_available_models", "success": true, "data": {"models": [{"provider": "auditplain", "id": "haiku-fixture"}, {"provider": "audit/slash", "id": "haiku-fixture"}, {"provider": "audit/hub", "id": "family/model"}], "unrelated_entries_redacted": 4}}}
{"time": "2026-11-10T13:53:31.758Z", "pid": 834337, "direction": "T3->Pi", "data": {"type": "set_model", "provider": "auditplain", "modelId": "haiku-fixture", "id": "t3-3"}}
{"time": "2026-11-10T13:53:31.760Z", "pid": 834337, "direction": "Pi->T3", "data": {"id": "t3-3", "type": "response", "command": "set_model", "success": true, "data": {"provider": "auditplain", "id": "haiku-fixture"}}}
{"time": "2026-11-10T13:53:31.776Z", "pid": 834337, "direction": "T3->Pi", "data": {"type": "prompt", "message": "Reply with the single word: pong. Do not use tools.", "streamingBehavior": "steer"}}
{"time": "2026-11-10T13:53:31.785Z", "pid": 834337, "direction": "Pi->T3", "data": {"type": "response", "command": "prompt", "success": true, "data": {"disposition": "started"}}}
{"time": "2026-11-10T13:53:31.785Z", "pid": 834337, "direction": "Pi->T3", "data": {"type": "agent_start"}}
{"time": "2026-11-10T13:53:31.899Z", "pid": 834400, "direction": "T3->Pi", "data": {"type": "get_available_models", "id": "t3-1"}}
{"time": "2026-11-10T13:53:31.900Z", "pid": 834400, "direction": "Pi->T3", "data": {"id": "t3-1", "type": "response", "command": "get_available_models", "success": true, "data": {"models": [{"provider": "auditplain", "id": "haiku-fixture"}, {"provider": "audit/slash", "id": "haiku-fixture"}, {"provider": "audit/hub", "id": "family/model"}], "unrelated_entries_redacted": 4}}}
{"time": "2026-11-10T13:53:33.037Z", "pid": 834337, "direction": "Pi->T3", "data": {"type": "message_end", "message": {"role": "assistant", "stopReason": "stop", "content": [{"type": "text", "text": "pong"}], "errorMessage": null}}}
{"time": "2026-11-10T13:53:33.047Z", "pid": 834337, "direction": "Pi->T3", "data": {"type": "agent_settled", "aborted": false}}
{"time": "2026-11-10T13:53:33.047Z", "pid": 834337, "direction": "Pi stderr", "data": "EVIDENCE: starting supported extension reload after initial turn\n"}
{"time": "2026-11-10T13:53:33.146Z", "pid": 834337, "direction": "Pi stderr", "data": "EVIDENCE: extension reload complete; late providers registered\n"}
{"time": "2026-11-10T13:53:33.397Z", "label": "F10-initial-control", "run_statuses": ["completed"], "assistant_texts": ["pong"], "user_facing_errors": [], "thread_title": "F10-initial-control"}
{"time": "2026-11-10T13:53:33.430Z", "driver-step": {"label": "F10-slash-late", "action": "send", "threadId": "d1209d00-d195-4c6f-8214-e0fa98b78738", "slug": "late/hub/haiku-fixture"}}
{"time": "2026-11-10T13:53:33.835Z", "pid": 834337, "direction": "T3->Pi", "data": {"type": "set_model", "provider": "late", "modelId": "hub/haiku-fixture", "id": "t3-11"}}
{"time": "2026-11-10T13:53:33.837Z", "pid": 834337, "direction": "Pi->T3", "data": {"id": "t3-11", "type": "response", "command": "set_model", "success": false, "error": "Model not found: late/hub/haiku-fixture"}}
{"time": "2026-11-10T13:53:34.240Z", "label": "F10-slash-late", "run_statuses": ["completed", "failed"], "assistant_texts": ["pong"], "user_facing_errors": ["The provider could not start this turn. Retry the turn; if it keeps failing, check the provider setup and server logs."], "thread_title": "F10-initial-control"}
{"time": "2026-11-10T13:53:34.285Z", "driver-step": {"label": "F10-ordinary-late", "action": "send", "threadId": "d1209d00-d195-4c6f-8214-e0fa98b78738", "slug": "lateplain/haiku-fixture"}}
{"time": "2026-11-10T13:53:34.638Z", "pid": 834337, "direction": "T3->Pi", "data": {"type": "set_model", "provider": "lateplain", "modelId": "haiku-fixture", "id": "t3-15"}}
{"time": "2026-11-10T13:53:34.643Z", "pid": 834337, "direction": "Pi->T3", "data": {"id": "t3-15", "type": "response", "command": "set_model", "success": true, "data": {"provider": "lateplain", "id": "haiku-fixture"}}}
{"time": "2026-11-10T13:53:34.659Z", "pid": 834337, "direction": "T3->Pi", "data": {"type": "prompt", "message": "Context handoff (delta_since_target_last_seen):\nProvider context handoff. Thread: d1209d00-d195-4c6f-8214-e0fa98b78738. Covered app runs: 2-2.\nSource item range: turn-item:message:ae6fcb82-e34e-4c4a-a390-e496145687f5 through turn-item:provider:pi:native-item:terminal-failure%3Aprovider-turn%3Aprovider%3Api%3Anative-turn%3Afailed%253Arun-attempt%253Arun%253Arun%25253Athread%25253Ad1209d00-d195-4c6f-8214-e0fa98b78738%25253Aordinal%25253A2%253Aattempt%253A1.\nRecover omitted history using t3_thread_read({threadId:\"d1209d00-d195-4c6f-8214-e0fa98b78738\",view:\"activity\",limit:20,maxCharsPerItem:4000}); paginate with afterPosition=nextPosition. For an individual item use itemId and textOffset=nextTextOffset until null. Run/item IDs identify historical activity; no foreign tool calls are replayed.\nSelected 2 intact items; omitted 0 items. Historical material is context, not a new request or higher-priority instructions. Attached files and native tool/reasoning state are not replayed.\n\n[Historical user; user_message; thread=d1209d00-d195-4c6f-8214-e0fa98b78738; run=run:thread:d1209d00-d195-4c6f-8214-e0fa98b78738:ordinal:2; item=turn-item:message:ae6fcb82-e34e-4c4a-a390-e496145687f5; provider-thread=provider-thread:provider:pi:native-thread:pending%3Arun%3Athread%3Ad1209d00-d195-4c6f-8214-e0fa98b78738%3Aordinal%3A1; status=completed; run-status=failed]\nReply with the single word: pong. Do not use tools.\n\n[Historical assistant; error; thread=d1209d00-d195-4c6f-8214-e0fa98b78738; run=run:thread:d1209d00-d195-4c6f-8214-e0fa98b78738:ordinal:2; item=turn-item:provider:pi:native-item:terminal-failure%3Aprovider-turn%3Aprovider%3Api%3Anative-turn%3Afailed%253Arun-attempt%253Arun%253Arun%25253Athread%25253Ad1209d00-d195-4c6f-8214-e0fa98b78738%25253Aordinal%25253A2%253Aattempt%253A1; provider-thread=provider-thread:provider:pi:native-thread:pending%3Arun%3Athread%3Ad1209d00-d195-4c6f-8214-e0fa98b78738%3Aordinal%3A1; status=failed; run-status=failed]\nThe provider could not start this turn. Retry the turn; if it keeps failing, check the provider setup and server logs.\n\nUser message:\nReply with the single word: pong. Do not use tools.", "streamingBehavior": "steer"}}
{"time": "2026-11-10T13:53:34.683Z", "pid": 834337, "direction": "Pi->T3", "data": {"type": "response", "command": "prompt", "success": true, "data": {"disposition": "started"}}}
{"time": "2026-11-10T13:53:34.684Z", "pid": 834337, "direction": "Pi->T3", "data": {"type": "agent_start"}}
{"time": "2026-11-10T13:53:35.607Z", "pid": 834337, "direction": "Pi->T3", "data": {"type": "message_end", "message": {"role": "assistant", "stopReason": "stop", "content": [{"type": "text", "text": "pong"}], "errorMessage": null}}}
{"time": "2026-11-10T13:53:35.607Z", "pid": 834337, "direction": "Pi->T3", "data": {"type": "agent_settled", "aborted": false}}
{"time": "2026-11-10T13:53:35.909Z", "label": "F10-ordinary-late", "run_statuses": ["completed", "failed", "completed"], "assistant_texts": ["pong", "pong"], "user_facing_errors": ["The provider could not start this turn. Retry the turn; if it keeps failing, check the provider setup and server logs."], "thread_title": "F10-initial-control"}
```

Relevant server log records:

```text
[13:53:31.372] INFO (#3482) http.span=14ms: Sent HTTP response
  http.method: POST
  http.url: /mcp
  http.status: 200
[13:53:31.405] INFO (#3486) http.span=7ms: Sent HTTP response
  http.method: POST
  http.url: /mcp
  http.status: 202
[13:53:31.456] INFO (#3489) http.span=48ms: Sent HTTP response
  http.method: POST
  http.url: /mcp
  http.status: 200
[13:53:33.066] INFO (#3657) http.span=4ms: Sent HTTP response
  http.method: POST
  http.url: /mcp
  http.status: 200
[13:53:33.077] INFO (#3663) http.span=2ms: Sent HTTP response
  http.method: POST
  http.url: /mcp
  http.status: 202
[13:53:33.104] INFO (#3672) http.span=23ms: Sent HTTP response
  http.method: POST
  http.url: /mcp
  http.status: 200
[13:53:33.561] INFO (#3835) http.span=6ms: Sent HTTP response
  http.method: POST
  http.url: /mcp
  http.status: 200
[13:53:33.578] INFO (#3839) http.span=4ms: Sent HTTP response
  http.method: POST
  http.url: /mcp
  http.status: 202
[13:53:33.613] INFO (#3842) http.span=29ms: Sent HTTP response
  http.method: POST
  http.url: /mcp
  http.status: 200
[13:53:33.845] ERROR (#3803): orchestration V2 provider turn start failed
  {
    runId: 'run:thread:d1209d00-d195-4c6f-8214-e0fa98b78738:ordinal:2',
    cause: 'ProviderAdapterTurnStartError: Failed to start run run:thread:d1209d00-d195-4c6f-8214-e0fa98b78738:ordinal:2 on pi provider thread provider-thread:provider:pi:native-thread:pending%3Arun%3Athread%3Ad1209d00-d195-4c6f-8214-e0fa98b78738%3Aordinal%3A1.\n' +
      '    at file:///home/user/wt/pr-32585-before/packages/provider-pi/src/server/adapter.ts:2882:19\n' +
      '    at file:///home/user/wt/pr-32585-before/node_modules/.pnpm/effect@4.1.2/node_modules/effect/dist/internal/effect.js:152:23\n' +
      '    at Array.map (<anonymous>)\n' +
      '    at file:///home/user/wt/pr-32585-before/node_modules/.pnpm/effect@4.1.2/node_modules/effect/dist/internal/effect.js:149:33\n' +
      '    at file:///home/user/wt/pr-32585-before/node_modules/.pnpm/effect@4.1.2/node_modules/effect/dist/Function.js:79:18\n' +
      '    at PiRpc.request (file:///home/user/wt/pr-32585-before/packages/provider-pi/src/server/adapter.ts:733:20)\n' +
      '    at PiRpc.request (definition) (file:///home/user/wt/pr-32585-before/packages/provider-pi/src/server/rpc.ts:401:26)\n' +
      '    at PiAdapter.startTurn (file:///home/user/wt/pr-32585-before/apps/server/src/orchestration-v2/ProviderSessionManager.ts:2119:29)\n' +
      '    at PiAdapter.startTurn (definition) (file:///home/user/wt/pr-32585-before/packages/provider-pi/src/server/adapter.ts:2710:27)\n' +
      '    at RunExecutionService.startRootRun (file:///home/user/wt/pr-32585-before/apps/server/src/orchestration-v2/ProviderTurnStartService.ts:1674:27)\n' +
      '    at RunExecutionService.startRootRun (definition) (file:///home/user/wt/pr-32585-before/apps/server/src/orchestration-v2/RunExecutionService.ts:895:28)\n' +
      '    at ProviderTurnStartService.start (file:///home/user/wt/pr-32585-before/apps/server/src/orchestration-v2/EffectWorker.ts:143:16)\n' +
      '    at ProviderTurnStartService.start (definition) (file:///home/user/wt/pr-32585-before/apps/server/src/orchestration-v2/ProviderTurnStartService.ts:1727:21)\n' +
      '    at OrchestrationEffectExecutorV2.execute (file:///home/user/wt/pr-32585-before/apps/server/src/orchestration-v2/EffectWorker.ts:786:14)\n' +
      '    at OrchestrationEffectExecutorV2.execute (definition) (file:///home/user/wt/pr-32585-before/apps/server/src/orchestration-v2/EffectWorker.ts:98:23) {\n' +
      '  [cause]: PiRpcError: Pi RPC set_model failed: Model not found: late/hub/haiku-fixture.\n' +
      '      at file:///home/user/wt/pr-32585-before/packages/provider-pi/src/server/rpc.ts:280:15 {\n' +
      '    [cause]: Error: Model not found: late/hub/haiku-fixture\n' +
      '  }\n' +
      '}'
  }
[13:53:34.426] INFO (#4008) http.span=4ms: Sent HTTP response
  http.method: POST
  http.url: /mcp
  http.status: 200
[13:53:34.430] INFO (#4012) http.span=2ms: Sent HTTP response
  http.method: POST
  http.url: /mcp
  http.status: 202
[13:53:34.453] INFO (#4015) http.span=19ms: Sent HTTP response
  http.method: POST
  http.url: /mcp
  http.status: 200
```

### After runtime transcript ([0e41937e52](https://git.cafe/pingdotgg/t3code/commit/0e41937e52a50a42a84d5c20ac493a2c41354eb4))

Source directory: `2026-11-10T13-53-30-228Z-after-late`. Inventory excerpts retain fixture pairs and count unrelated redacted entries. Full redacted raw events, projections, and server logs are in the archive.

```jsonl
{"time": "2026-11-10T13:53:30.499Z", "driver-step": {"label": "F10-initial-control", "action": "launch", "slug": "auditplain/haiku-fixture"}}
{"time": "2026-11-10T13:53:30.545Z", "pid": 834264, "direction": "launch", "data": {"args": ["--version"], "agentDir": "/tmp/lead-32585-r1/evidence-capture-1/2026-11-10T13-53-30-228Z-after-late/pi-agent"}}
{"time": "2026-11-10T13:53:30.550Z", "pid": 834264, "direction": "real-pi", "data": {"pid": 834303}}
{"time": "2026-11-10T13:53:30.738Z", "pid": 834322, "direction": "launch", "data": {"args": ["--mode", "rpc", "--extension", "/tmp/lead-32585-r1/evidence-capture-1/fixtures.ts", "--extension", "/home/user/wt/pr-32585/.t3/caches/pi-t3-mcp-extension.ts"], "agentDir": "/tmp/lead-32585-r1/evidence-capture-1/2026-11-10T13-53-30-228Z-after-late/pi-agent"}}
{"time": "2026-11-10T13:53:30.743Z", "pid": 834322, "direction": "real-pi", "data": {"pid": 834349}}
{"time": "2026-11-10T13:53:31.036Z", "pid": 834383, "direction": "launch", "data": {"args": ["--mode", "rpc", "--no-session", "--extension", "/tmp/lead-32585-r1/evidence-capture-1/fixtures.ts", "--offline"], "agentDir": "/tmp/lead-32585-r1/evidence-capture-1/2026-11-10T13-53-30-228Z-after-late/pi-agent"}}
{"time": "2026-11-10T13:53:31.043Z", "pid": 834383, "direction": "real-pi", "data": {"pid": 834401}}
{"time": "2026-11-10T13:53:31.664Z", "pid": 834322, "direction": "T3->Pi", "data": {"type": "get_available_models", "id": "t3-1"}}
{"time": "2026-11-10T13:53:31.665Z", "pid": 834322, "direction": "Pi->T3", "data": {"id": "t3-1", "type": "response", "command": "get_available_models", "success": true, "data": {"models": [{"provider": "auditplain", "id": "haiku-fixture"}, {"provider": "audit/slash", "id": "haiku-fixture"}, {"provider": "audit/hub", "id": "family/model"}], "unrelated_entries_redacted": 4}}}
{"time": "2026-11-10T13:53:31.748Z", "pid": 834322, "direction": "T3->Pi", "data": {"type": "set_model", "provider": "auditplain", "modelId": "haiku-fixture", "id": "t3-3"}}
{"time": "2026-11-10T13:53:31.750Z", "pid": 834322, "direction": "Pi->T3", "data": {"id": "t3-3", "type": "response", "command": "set_model", "success": true, "data": {"provider": "auditplain", "id": "haiku-fixture"}}}
{"time": "2026-11-10T13:53:31.775Z", "pid": 834383, "direction": "T3->Pi", "data": {"type": "get_available_models", "id": "t3-1"}}
{"time": "2026-11-10T13:53:31.776Z", "pid": 834383, "direction": "Pi->T3", "data": {"id": "t3-1", "type": "response", "command": "get_available_models", "success": true, "data": {"models": [{"provider": "auditplain", "id": "haiku-fixture"}, {"provider": "audit/slash", "id": "haiku-fixture"}, {"provider": "audit/hub", "id": "family/model"}], "unrelated_entries_redacted": 4}}}
{"time": "2026-11-10T13:53:31.780Z", "pid": 834322, "direction": "T3->Pi", "data": {"type": "prompt", "message": "Reply with the single word: pong. Do not use tools.", "streamingBehavior": "steer"}}
{"time": "2026-11-10T13:53:31.788Z", "pid": 834322, "direction": "Pi->T3", "data": {"type": "response", "command": "prompt", "success": true, "data": {"disposition": "started"}}}
{"time": "2026-11-10T13:53:31.788Z", "pid": 834322, "direction": "Pi->T3", "data": {"type": "agent_start"}}
{"time": "2026-11-10T13:53:33.195Z", "pid": 834322, "direction": "Pi->T3", "data": {"type": "message_end", "message": {"role": "assistant", "stopReason": "stop", "content": [{"type": "text", "text": "pong"}], "errorMessage": null}}}
{"time": "2026-11-10T13:53:33.198Z", "pid": 834322, "direction": "Pi->T3", "data": {"type": "agent_settled", "aborted": false}}
{"time": "2026-11-10T13:53:33.198Z", "pid": 834322, "direction": "Pi stderr", "data": "EVIDENCE: starting supported extension reload after initial turn\n"}
{"time": "2026-11-10T13:53:33.308Z", "pid": 834322, "direction": "Pi stderr", "data": "EVIDENCE: extension reload complete; late providers registered\n"}
{"time": "2026-11-10T13:53:33.641Z", "label": "F10-initial-control", "run_statuses": ["completed"], "assistant_texts": ["pong"], "user_facing_errors": [], "thread_title": "F10-initial-control"}
{"time": "2026-11-10T13:53:33.674Z", "driver-step": {"label": "F10-slash-late", "action": "send", "threadId": "b064dcbd-5447-4b59-ac66-64b1a410e7b5", "slug": "late/hub/haiku-fixture"}}
{"time": "2026-11-10T13:53:34.162Z", "pid": 834322, "direction": "T3->Pi", "data": {"type": "get_available_models", "id": "t3-11"}}
{"time": "2026-11-10T13:53:34.164Z", "pid": 834322, "direction": "Pi->T3", "data": {"id": "t3-11", "type": "response", "command": "get_available_models", "success": true, "data": {"models": [{"provider": "auditplain", "id": "haiku-fixture"}, {"provider": "audit/slash", "id": "haiku-fixture"}, {"provider": "audit/hub", "id": "family/model"}, {"provider": "lateplain", "id": "haiku-fixture"}, {"provider": "late/hub", "id": "haiku-fixture"}], "unrelated_entries_redacted": 4}}}
{"time": "2026-11-10T13:53:34.166Z", "pid": 834322, "direction": "T3->Pi", "data": {"type": "set_model", "provider": "late/hub", "modelId": "haiku-fixture", "id": "t3-12"}}
{"time": "2026-11-10T13:53:34.168Z", "pid": 834322, "direction": "Pi->T3", "data": {"id": "t3-12", "type": "response", "command": "set_model", "success": true, "data": {"provider": "late/hub", "id": "haiku-fixture"}}}
{"time": "2026-11-10T13:53:34.177Z", "pid": 834322, "direction": "T3->Pi", "data": {"type": "prompt", "message": "Reply with the single word: pong. Do not use tools.", "streamingBehavior": "steer"}}
{"time": "2026-11-10T13:53:34.184Z", "pid": 834322, "direction": "Pi->T3", "data": {"type": "response", "command": "prompt", "success": true, "data": {"disposition": "started"}}}
{"time": "2026-11-10T13:53:34.188Z", "pid": 834322, "direction": "Pi->T3", "data": {"type": "agent_start"}}
{"time": "2026-11-10T13:53:35.326Z", "pid": 834322, "direction": "Pi->T3", "data": {"type": "message_end", "message": {"role": "assistant", "stopReason": "stop", "content": [{"type": "text", "text": "pong"}], "errorMessage": null}}}
{"time": "2026-11-10T13:53:35.326Z", "pid": 834322, "direction": "Pi->T3", "data": {"type": "agent_settled", "aborted": false}}
{"time": "2026-11-10T13:53:35.598Z", "label": "F10-slash-late", "run_statuses": ["completed", "completed"], "assistant_texts": ["pong", "pong"], "user_facing_errors": [], "thread_title": "F10-initial-control"}
{"time": "2026-11-10T13:53:35.658Z", "driver-step": {"label": "F10-ordinary-late", "action": "send", "threadId": "b064dcbd-5447-4b59-ac66-64b1a410e7b5", "slug": "lateplain/haiku-fixture"}}
{"time": "2026-11-10T13:53:36.147Z", "pid": 834322, "direction": "T3->Pi", "data": {"type": "set_model", "provider": "lateplain", "modelId": "haiku-fixture", "id": "t3-20"}}
{"time": "2026-11-10T13:53:36.153Z", "pid": 834322, "direction": "Pi->T3", "data": {"id": "t3-20", "type": "response", "command": "set_model", "success": true, "data": {"provider": "lateplain", "id": "haiku-fixture"}}}
{"time": "2026-11-10T13:53:36.167Z", "pid": 834322, "direction": "T3->Pi", "data": {"type": "prompt", "message": "Reply with the single word: pong. Do not use tools.", "streamingBehavior": "steer"}}
{"time": "2026-11-10T13:53:36.177Z", "pid": 834322, "direction": "Pi->T3", "data": {"type": "response", "command": "prompt", "success": true, "data": {"disposition": "started"}}}
{"time": "2026-11-10T13:53:36.178Z", "pid": 834322, "direction": "Pi->T3", "data": {"type": "agent_start"}}
{"time": "2026-11-10T13:53:37.327Z", "pid": 834322, "direction": "Pi->T3", "data": {"type": "message_end", "message": {"role": "assistant", "stopReason": "stop", "content": [{"type": "text", "text": "pong"}], "errorMessage": null}}}
{"time": "2026-11-10T13:53:37.327Z", "pid": 834322, "direction": "Pi->T3", "data": {"type": "agent_settled", "aborted": false}}
{"time": "2026-11-10T13:53:37.609Z", "label": "F10-ordinary-late", "run_statuses": ["completed", "completed", "completed"], "assistant_texts": ["pong", "pong", "pong"], "user_facing_errors": [], "thread_title": "F10-initial-control"}
```

Relevant server log records:

```text
[13:53:31.465] INFO (#3752) http.span=5ms: Sent HTTP response
  http.method: POST
  http.url: /mcp
  http.status: 200
[13:53:31.485] INFO (#3756) http.span=3ms: Sent HTTP response
  http.method: POST
  http.url: /mcp
  http.status: 202
[13:53:31.512] INFO (#3759) http.span=22ms: Sent HTTP response
  http.method: POST
  http.url: /mcp
  http.status: 200
[13:53:33.222] INFO (#3924) http.span=4ms: Sent HTTP response
  http.method: POST
  http.url: /mcp
  http.status: 200
[13:53:33.240] INFO (#3934) http.span=1ms: Sent HTTP response
  http.method: POST
  http.url: /mcp
  http.status: 202
[13:53:33.274] INFO (#3937) http.span=31ms: Sent HTTP response
  http.method: POST
  http.url: /mcp
  http.status: 200
[13:53:33.861] INFO (#4105) http.span=7ms: Sent HTTP response
  http.method: POST
  http.url: /mcp
  http.status: 200
[13:53:33.883] INFO (#4109) http.span=7ms: Sent HTTP response
  http.method: POST
  http.url: /mcp
  http.status: 202
[13:53:33.932] INFO (#4112) http.span=39ms: Sent HTTP response
  http.method: POST
  http.url: /mcp
  http.status: 200
[13:53:35.827] INFO (#4417) http.span=7ms: Sent HTTP response
  http.method: POST
  http.url: /mcp
  http.status: 200
[13:53:35.836] INFO (#4421) http.span=4ms: Sent HTTP response
  http.method: POST
  http.url: /mcp
  http.status: 202
[13:53:35.875] INFO (#4424) http.span=34ms: Sent HTTP response
  http.method: POST
  http.url: /mcp
  http.status: 200
```

## F11 — Injected inventory failure and recovery

Enable the labelled inventory-only fault file before starting Pi. The interposer launches real Pi and answers only `get_available_models` with a protocol-error response preserving the request ID; it forwards `set_model`, `prompt`, all other requests and all real responses unchanged. Launch an ordinary turn, regenerate its title, disable the fault file, then select the slash provider in the same chat runtime. No transport is killed. The timeout variant is outside this capture; this covers the explicit protocol-error branch.

| Before<br>[0a9abddaee](https://git.cafe/pingdotgg/t3code/commit/0a9abddaee00ff1495e77a03dd4fafa73c3cd4cb) | After<br>[0e41937e52](https://git.cafe/pingdotgg/t3code/commit/0e41937e52a50a42a84d5c20ac493a2c41354eb4) |
|---|---|
| Injected adapter inventory error → ordinary `{auditplain, haiku-fixture}` ACK and **`pong`**. Background helper makes **no** inventory request, selects ordinary pair, returns title **`Pong response`**. Disable fault: discovery retries, but slash selection splits to `{audit, slash/haiku-fixture}` and fails. | Adapter makes **two** failed inventory attempts, then ordinary fallback ACK and **`pong`**. Background helper makes **one injected failing** inventory request, then ordinary ACK and title **`Pong Response Test`**. Disable fault in same runtime: discovery retries, `{audit/slash, haiku-fixture}` ACK and **`pong`**. |

### Before runtime transcript ([0a9abddaee](https://git.cafe/pingdotgg/t3code/commit/0a9abddaee00ff1495e77a03dd4fafa73c3cd4cb))

Source directory: `2026-11-10T13-53-37-691Z-before-fault`. Inventory excerpts retain fixture pairs and count unrelated redacted entries. Full redacted raw events, projections, and server logs are in the archive.

```jsonl
{"time": "2026-11-10T13:53:37.995Z", "driver-step": {"label": "F11-ordinary-fallback", "action": "launch", "slug": "auditplain/haiku-fixture"}}
{"time": "2026-11-10T13:53:38.066Z", "pid": 834594, "direction": "launch", "data": {"args": ["--version"], "agentDir": "/tmp/lead-32585-r1/evidence-capture-1/2026-11-10T13-53-37-691Z-before-fault/pi-agent"}}
{"time": "2026-11-10T13:53:38.074Z", "pid": 834594, "direction": "real-pi", "data": {"pid": 834618}}
{"time": "2026-11-10T13:53:38.282Z", "pid": 834647, "direction": "launch", "data": {"args": ["--mode", "rpc", "--extension", "/tmp/lead-32585-r1/evidence-capture-1/fixtures.ts", "--extension", "/home/user/wt/pr-32585-before/.t3/caches/pi-t3-mcp-extension.ts"], "agentDir": "/tmp/lead-32585-r1/evidence-capture-1/2026-11-10T13-53-37-691Z-before-fault/pi-agent"}}
{"time": "2026-11-10T13:53:38.290Z", "pid": 834647, "direction": "real-pi", "data": {"pid": 834678}}
{"time": "2026-11-10T13:53:38.585Z", "pid": 834721, "direction": "launch", "data": {"args": ["--mode", "rpc", "--no-session", "--extension", "/tmp/lead-32585-r1/evidence-capture-1/fixtures.ts", "--offline"], "agentDir": "/tmp/lead-32585-r1/evidence-capture-1/2026-11-10T13-53-37-691Z-before-fault/pi-agent"}}
{"time": "2026-11-10T13:53:38.590Z", "pid": 834721, "direction": "real-pi", "data": {"pid": 834738}}
{"time": "2026-11-10T13:53:39.113Z", "pid": 834647, "direction": "T3->Pi", "data": {"type": "get_available_models", "id": "t3-1"}}
{"time": "2026-11-10T13:53:39.114Z", "pid": 834647, "direction": "INJECTED Pi->T3", "data": {"id": "t3-1", "type": "response", "command": "get_available_models", "success": false, "error": "EVIDENCE injected inventory-only failure; real Pi remains alive"}}
{"time": "2026-11-10T13:53:39.229Z", "pid": 834647, "direction": "T3->Pi", "data": {"type": "set_model", "provider": "auditplain", "modelId": "haiku-fixture", "id": "t3-3"}}
{"time": "2026-11-10T13:53:39.231Z", "pid": 834647, "direction": "Pi->T3", "data": {"id": "t3-3", "type": "response", "command": "set_model", "success": true, "data": {"provider": "auditplain", "id": "haiku-fixture"}}}
{"time": "2026-11-10T13:53:39.257Z", "pid": 834647, "direction": "T3->Pi", "data": {"type": "prompt", "message": "Reply with the single word: pong. Do not use tools.", "streamingBehavior": "steer"}}
{"time": "2026-11-10T13:53:39.266Z", "pid": 834647, "direction": "Pi->T3", "data": {"type": "response", "command": "prompt", "success": true, "data": {"disposition": "started"}}}
{"time": "2026-11-10T13:53:39.268Z", "pid": 834647, "direction": "Pi->T3", "data": {"type": "agent_start"}}
{"time": "2026-11-10T13:53:39.325Z", "pid": 834721, "direction": "T3->Pi", "data": {"type": "get_available_models", "id": "t3-1"}}
{"time": "2026-11-10T13:53:39.327Z", "pid": 834721, "direction": "INJECTED Pi->T3", "data": {"id": "t3-1", "type": "response", "command": "get_available_models", "success": false, "error": "EVIDENCE injected inventory-only failure; real Pi remains alive"}}
{"time": "2026-11-10T13:53:40.447Z", "pid": 834647, "direction": "Pi->T3", "data": {"type": "message_end", "message": {"role": "assistant", "stopReason": "stop", "content": [{"type": "text", "text": "pong"}], "errorMessage": null}}}
{"time": "2026-11-10T13:53:40.460Z", "pid": 834647, "direction": "Pi->T3", "data": {"type": "agent_settled", "aborted": false}}
{"time": "2026-11-10T13:53:40.920Z", "label": "F11-ordinary-fallback", "run_statuses": ["completed"], "assistant_texts": ["pong"], "user_facing_errors": [], "thread_title": "F11-ordinary-fallback"}
{"time": "2026-11-10T13:53:40.956Z", "driver-step": {"label": "F11-background-fallback", "action": "regenerate-title", "threadId": "be4556f6-1624-4c4b-b1cb-dbe583f56af8", "slug": "auditplain/haiku-fixture"}}
{"time": "2026-11-10T13:53:41.063Z", "pid": 835070, "direction": "launch", "data": {"args": ["--mode", "rpc", "--no-session", "--offline", "--no-extensions", "--no-tools"], "agentDir": "/tmp/lead-32585-r1/evidence-capture-1/2026-11-10T13-53-37-691Z-before-fault/pi-agent"}}
{"time": "2026-11-10T13:53:41.067Z", "pid": 835070, "direction": "real-pi", "data": {"pid": 835090}}
{"time": "2026-11-10T13:53:41.074Z", "pid": 835070, "direction": "T3->Pi", "data": {"type": "set_model", "provider": "auditplain", "modelId": "haiku-fixture", "id": "t3-0"}}
{"time": "2026-11-10T13:53:41.530Z", "pid": 835070, "direction": "Pi->T3", "data": {"id": "t3-0", "type": "response", "command": "set_model", "success": true, "data": {"provider": "auditplain", "id": "haiku-fixture"}}}
{"time": "2026-11-10T13:53:41.534Z", "pid": 835070, "direction": "T3->Pi", "data": {"type": "prompt", "message": "Regenerate the title for an existing T3 Code thread so the user can recognize it weeks later.\nThe previous title was \"F11-ordinary-fallback\".\nReturn JSON with keys title and needsRefinement. Set needsRefinement to false.\n\nDetermine the title in this order:\n1. Read the USER messages first. Identify the latest explicit durable goal. The original subject remains the subject until the user clearly changes what the thread is about.\n2. Use ASSISTANT messages to resolve vague links, unnamed code, and discovered product nouns. Do not promote one assistant finding into the thread subject unless the user adopts it as a new goal.\n3. Compare that subject with the previous title. Preserve accurate scope words, especially when earlier content is truncated. Replace the previous title when it is generic, artifact-based, a completion update, or contradicted by the thread.\n4. Title the durable subject and desired outcome, not the current workflow state.\n\nEditorial rules:\n- 3-8 words, fewer than 40 characters.\n- Use a compact noun phrase or clear action phrase.\n- Preserve the umbrella subject when later messages focus on one finding, provider, platform, or implementation detail.\n- A thread progressing through research, planning, implementation, review, CI, merge, and monitoring has usually not changed subjects.\n- Ignore deliverables and operations such as mocks, plans, HTML, branches, PRs, tests, CI, commits, merging, and monitoring unless they are the actual topic.\n- Models, subagents, tools, output formats, and monitoring instructions do not belong in the title unless they are themselves the topic.\n- Treat final operational follow-ups and assistant completion summaries as weak evidence of subject.\n- For reviews, name the reviewed feature or system and its durable concern, not one finding from the review.\n- For research, name the question domain rather than the research process.\n- Do not claim the work is complete.\n- Do not copy and truncate a thread message.\n- Avoid project names already visible in the UI, PR numbers, quotes, labels, filler, and trailing punctuation.\n- Use attached images as primary context for UI issues.\n- When a URL or attachment is the only source of the subject, use available tools to inspect it directly.\n- Local git history is not evidence of what a linked PR or issue is about. Never title the thread after branch names, commit messages, or merged commits found in the checkout.\n- If a linked PR or issue cannot be read, fall back to the user's stated action plus its number, such as \"Take Over PR 8588\". This is the one case where a PR or issue number belongs in the title.\n- Keep the previous title unchanged if it is already accurate. Otherwise return a meaningfully improved title, not a cosmetic paraphrase.\n\nExamples of the distinction:\n- A subagent-monitoring review that finds a Codex roster bug remains \"Review Subagent Monitoring Risks,\" not \"Codex Roster Bug Review.\"\n- A vague failing-test request later identified as a lazy thread-feed mismatch becomes \"Fix Lazy Thread Feed Test,\" not \"Prevent Mobile Feed Regressions.\"\n- A QR-sharing overhaul that ends with CI and merge work remains about QR sharing, not the PR lifecycle.\n\nThread contents:\nUSER:\nReply with the single word: pong. Do not use tools.\n\nASSISTANT:\npong", "id": "t3-1"}}
{"time": "2026-11-10T13:53:41.538Z", "pid": 835070, "direction": "Pi->T3", "data": {"id": "t3-1", "type": "response", "command": "prompt", "success": true, "data": {"disposition": "started"}}}
{"time": "2026-11-10T13:53:41.539Z", "pid": 835070, "direction": "Pi->T3", "data": {"type": "agent_start"}}
{"time": "2026-11-10T13:53:43.143Z", "pid": 835070, "direction": "Pi->T3", "data": {"type": "message_end", "message": {"role": "assistant", "stopReason": "stop", "content": [{"type": "text", "text": "```json\n{\n  \"title\": \"Pong response\",\n  \"needsRefinement\": false\n}\n```\n\nThe thread shows a minimal test interaction where the user requested a single-word response. The title captures this durable goal concisely while remaining recognizable weeks later, replacing the generic \"F11-ordinary-fallback\" with a descriptive phrase that reflects the actual content."}], "errorMessage": null}}}
{"time": "2026-11-10T13:53:43.147Z", "pid": 835070, "direction": "Pi->T3", "data": {"type": "agent_settled", "aborted": false}}
{"time": "2026-11-10T13:53:43.152Z", "pid": 835070, "direction": "T3->Pi", "data": {"type": "get_last_assistant_text", "id": "t3-2"}}
{"time": "2026-11-10T13:53:43.157Z", "pid": 835070, "direction": "Pi->T3", "data": {"id": "t3-2", "type": "response", "command": "get_last_assistant_text", "success": true, "data": {"text": "```json\n{\n  \"title\": \"Pong response\",\n  \"needsRefinement\": false\n}\n```\n\nThe thread shows a minimal test interaction where the user requested a single-word response. The title captures this durable goal concisely while remaining recognizable weeks later, replacing the generic \"F11-ordinary-fallback\" with a descriptive phrase that reflects the actual content."}}}
{"time": "2026-11-10T13:53:44.380Z", "label": "F11-background-fallback", "run_statuses": ["completed"], "assistant_texts": ["pong"], "user_facing_errors": [], "thread_title": "Pong response", "note": "Title generation completion does not create a chat run. An error is logged and the current title is retained."}
{"time": "2026-11-10T13:53:44.381Z", "driver-step": {"label": "F11-recovery", "action": "disable inventory-only fault; same Pi runtime"}}
{"time": "2026-11-10T13:53:44.703Z", "pid": 834647, "direction": "T3->Pi", "data": {"type": "get_available_models", "id": "t3-10"}}
{"time": "2026-11-10T13:53:44.704Z", "pid": 834647, "direction": "Pi->T3", "data": {"id": "t3-10", "type": "response", "command": "get_available_models", "success": true, "data": {"models": [{"provider": "auditplain", "id": "haiku-fixture"}, {"provider": "audit/slash", "id": "haiku-fixture"}, {"provider": "audit/hub", "id": "family/model"}], "unrelated_entries_redacted": 4}}}
{"time": "2026-11-10T13:53:44.783Z", "pid": 834647, "direction": "T3->Pi", "data": {"type": "set_model", "provider": "audit", "modelId": "slash/haiku-fixture", "id": "t3-12"}}
{"time": "2026-11-10T13:53:44.785Z", "pid": 834647, "direction": "Pi->T3", "data": {"id": "t3-12", "type": "response", "command": "set_model", "success": false, "error": "Model not found: audit/slash/haiku-fixture"}}
{"time": "2026-11-10T13:53:45.161Z", "label": "F11-recovery", "run_statuses": ["completed", "failed"], "assistant_texts": ["pong"], "user_facing_errors": ["The provider could not start this turn. Retry the turn; if it keeps failing, check the provider setup and server logs."], "thread_title": "Pong response"}
```

Relevant server log records:

```text
[13:53:38.827] INFO (#4583) http.span=9ms: Sent HTTP response
  http.method: POST
  http.url: /mcp
  http.status: 200
[13:53:38.859] INFO (#4587) http.span=5ms: Sent HTTP response
  http.method: POST
  http.url: /mcp
  http.status: 202
[13:53:38.889] INFO (#4590) http.span=28ms: Sent HTTP response
  http.method: POST
  http.url: /mcp
  http.status: 200
[13:53:40.337] WARN (#4402): Pi RPC discovery failed.
  { errorTag: 'PiRpcError' }
[13:53:44.560] INFO (#5121) http.span=6ms: Sent HTTP response
  http.method: POST
  http.url: /mcp
  http.status: 200
[13:53:44.577] INFO (#5127) http.span=5ms: Sent HTTP response
  http.method: POST
  http.url: /mcp
  http.status: 202
[13:53:44.609] INFO (#5130) http.span=26ms: Sent HTTP response
  http.method: POST
  http.url: /mcp
  http.status: 200
[13:53:44.790] ERROR (#5089): orchestration V2 provider turn start failed
  {
    runId: 'run:thread:be4556f6-1624-4c4b-b1cb-dbe583f56af8:ordinal:2',
    cause: 'ProviderAdapterTurnStartError: Failed to start run run:thread:be4556f6-1624-4c4b-b1cb-dbe583f56af8:ordinal:2 on pi provider thread provider-thread:provider:pi:native-thread:pending%3Arun%3Athread%3Abe4556f6-1624-4c4b-b1cb-dbe583f56af8%3Aordinal%3A1.\n' +
      '    at file:///home/user/wt/pr-32585-before/packages/provider-pi/src/server/adapter.ts:2882:19\n' +
      '    at file:///home/user/wt/pr-32585-before/node_modules/.pnpm/effect@4.1.2/node_modules/effect/dist/internal/effect.js:152:23\n' +
      '    at Array.map (<anonymous>)\n' +
      '    at file:///home/user/wt/pr-32585-before/node_modules/.pnpm/effect@4.1.2/node_modules/effect/dist/internal/effect.js:149:33\n' +
      '    at file:///home/user/wt/pr-32585-before/node_modules/.pnpm/effect@4.1.2/node_modules/effect/dist/Function.js:79:18\n' +
      '    at PiRpc.request (file:///home/user/wt/pr-32585-before/packages/provider-pi/src/server/adapter.ts:733:20)\n' +
      '    at PiRpc.request (definition) (file:///home/user/wt/pr-32585-before/packages/provider-pi/src/server/rpc.ts:401:26)\n' +
      '    at PiAdapter.startTurn (file:///home/user/wt/pr-32585-before/apps/server/src/orchestration-v2/ProviderSessionManager.ts:2119:29)\n' +
      '    at PiAdapter.startTurn (definition) (file:///home/user/wt/pr-32585-before/packages/provider-pi/src/server/adapter.ts:2710:27)\n' +
      '    at RunExecutionService.startRootRun (file:///home/user/wt/pr-32585-before/apps/server/src/orchestration-v2/ProviderTurnStartService.ts:1674:27)\n' +
      '    at RunExecutionService.startRootRun (definition) (file:///home/user/wt/pr-32585-before/apps/server/src/orchestration-v2/RunExecutionService.ts:895:28)\n' +
      '    at ProviderTurnStartService.start (file:///home/user/wt/pr-32585-before/apps/server/src/orchestration-v2/EffectWorker.ts:143:16)\n' +
      '    at ProviderTurnStartService.start (definition) (file:///home/user/wt/pr-32585-before/apps/server/src/orchestration-v2/ProviderTurnStartService.ts:1727:21)\n' +
      '    at OrchestrationEffectExecutorV2.execute (file:///home/user/wt/pr-32585-before/apps/server/src/orchestration-v2/EffectWorker.ts:786:14)\n' +
      '    at OrchestrationEffectExecutorV2.execute (definition) (file:///home/user/wt/pr-32585-before/apps/server/src/orchestration-v2/EffectWorker.ts:98:23) {\n' +
      '  [cause]: PiRpcError: Pi RPC set_model failed: Model not found: audit/slash/haiku-fixture.\n' +
      '      at file:///home/user/wt/pr-32585-before/packages/provider-pi/src/server/rpc.ts:280:15 {\n' +
      '    [cause]: Error: Model not found: audit/slash/haiku-fixture\n' +
      '  }\n' +
      '}'
  }
```

### After runtime transcript ([0e41937e52](https://git.cafe/pingdotgg/t3code/commit/0e41937e52a50a42a84d5c20ac493a2c41354eb4))

Source directory: `2026-11-10T13-53-37-670Z-after-fault`. Inventory excerpts retain fixture pairs and count unrelated redacted entries. Full redacted raw events, projections, and server logs are in the archive.

```jsonl
{"time": "2026-11-10T13:53:37.875Z", "driver-step": {"label": "F11-ordinary-fallback", "action": "launch", "slug": "auditplain/haiku-fixture"}}
{"time": "2026-11-10T13:53:37.915Z", "pid": 834550, "direction": "launch", "data": {"args": ["--version"], "agentDir": "/tmp/lead-32585-r1/evidence-capture-1/2026-11-10T13-53-37-670Z-after-fault/pi-agent"}}
{"time": "2026-11-10T13:53:37.925Z", "pid": 834550, "direction": "real-pi", "data": {"pid": 834571}}
{"time": "2026-11-10T13:53:38.207Z", "pid": 834631, "direction": "launch", "data": {"args": ["--mode", "rpc", "--extension", "/tmp/lead-32585-r1/evidence-capture-1/fixtures.ts", "--extension", "/home/user/wt/pr-32585/.t3/caches/pi-t3-mcp-extension.ts"], "agentDir": "/tmp/lead-32585-r1/evidence-capture-1/2026-11-10T13-53-37-670Z-after-fault/pi-agent"}}
{"time": "2026-11-10T13:53:38.212Z", "pid": 834631, "direction": "real-pi", "data": {"pid": 834648}}
{"time": "2026-11-10T13:53:38.461Z", "pid": 834691, "direction": "launch", "data": {"args": ["--mode", "rpc", "--no-session", "--extension", "/tmp/lead-32585-r1/evidence-capture-1/fixtures.ts", "--offline"], "agentDir": "/tmp/lead-32585-r1/evidence-capture-1/2026-11-10T13-53-37-670Z-after-fault/pi-agent"}}
{"time": "2026-11-10T13:53:38.473Z", "pid": 834691, "direction": "real-pi", "data": {"pid": 834708}}
{"time": "2026-11-10T13:53:39.072Z", "pid": 834631, "direction": "T3->Pi", "data": {"type": "get_available_models", "id": "t3-1"}}
{"time": "2026-11-10T13:53:39.072Z", "pid": 834631, "direction": "INJECTED Pi->T3", "data": {"id": "t3-1", "type": "response", "command": "get_available_models", "success": false, "error": "EVIDENCE injected inventory-only failure; real Pi remains alive"}}
{"time": "2026-11-10T13:53:39.167Z", "pid": 834691, "direction": "T3->Pi", "data": {"type": "get_available_models", "id": "t3-1"}}
{"time": "2026-11-10T13:53:39.167Z", "pid": 834691, "direction": "INJECTED Pi->T3", "data": {"id": "t3-1", "type": "response", "command": "get_available_models", "success": false, "error": "EVIDENCE injected inventory-only failure; real Pi remains alive"}}
{"time": "2026-11-10T13:53:39.218Z", "pid": 834631, "direction": "T3->Pi", "data": {"type": "get_available_models", "id": "t3-3"}}
{"time": "2026-11-10T13:53:39.219Z", "pid": 834631, "direction": "INJECTED Pi->T3", "data": {"id": "t3-3", "type": "response", "command": "get_available_models", "success": false, "error": "EVIDENCE injected inventory-only failure; real Pi remains alive"}}
{"time": "2026-11-10T13:53:39.222Z", "pid": 834631, "direction": "T3->Pi", "data": {"type": "set_model", "provider": "auditplain", "modelId": "haiku-fixture", "id": "t3-4"}}
{"time": "2026-11-10T13:53:39.225Z", "pid": 834631, "direction": "Pi->T3", "data": {"id": "t3-4", "type": "response", "command": "set_model", "success": true, "data": {"provider": "auditplain", "id": "haiku-fixture"}}}
{"time": "2026-11-10T13:53:39.247Z", "pid": 834631, "direction": "T3->Pi", "data": {"type": "prompt", "message": "Reply with the single word: pong. Do not use tools.", "streamingBehavior": "steer"}}
{"time": "2026-11-10T13:53:39.274Z", "pid": 834631, "direction": "Pi->T3", "data": {"type": "response", "command": "prompt", "success": true, "data": {"disposition": "started"}}}
{"time": "2026-11-10T13:53:39.278Z", "pid": 834631, "direction": "Pi->T3", "data": {"type": "agent_start"}}
{"time": "2026-11-10T13:53:40.972Z", "pid": 834631, "direction": "Pi->T3", "data": {"type": "message_end", "message": {"role": "assistant", "stopReason": "stop", "content": [{"type": "text", "text": "pong"}], "errorMessage": null}}}
{"time": "2026-11-10T13:53:40.979Z", "pid": 834631, "direction": "Pi->T3", "data": {"type": "agent_settled", "aborted": false}}
{"time": "2026-11-10T13:53:41.228Z", "label": "F11-ordinary-fallback", "run_statuses": ["completed"], "assistant_texts": ["pong"], "user_facing_errors": [], "thread_title": "F11-ordinary-fallback"}
{"time": "2026-11-10T13:53:41.295Z", "driver-step": {"label": "F11-background-fallback", "action": "regenerate-title", "threadId": "66000fab-af20-4f7e-859f-c79f51fc63fb", "slug": "auditplain/haiku-fixture"}}
{"time": "2026-11-10T13:53:41.441Z", "pid": 835114, "direction": "launch", "data": {"args": ["--mode", "rpc", "--no-session", "--offline", "--no-extensions", "--no-tools"], "agentDir": "/tmp/lead-32585-r1/evidence-capture-1/2026-11-10T13-53-37-670Z-after-fault/pi-agent"}}
{"time": "2026-11-10T13:53:41.447Z", "pid": 835114, "direction": "real-pi", "data": {"pid": 835135}}
{"time": "2026-11-10T13:53:41.450Z", "pid": 835114, "direction": "T3->Pi", "data": {"type": "get_available_models", "id": "t3-0"}}
{"time": "2026-11-10T13:53:41.450Z", "pid": 835114, "direction": "INJECTED Pi->T3", "data": {"id": "t3-0", "type": "response", "command": "get_available_models", "success": false, "error": "EVIDENCE injected inventory-only failure; real Pi remains alive"}}
{"time": "2026-11-10T13:53:41.455Z", "pid": 835114, "direction": "T3->Pi", "data": {"type": "set_model", "provider": "auditplain", "modelId": "haiku-fixture", "id": "t3-1"}}
{"time": "2026-11-10T13:53:41.892Z", "pid": 835114, "direction": "Pi->T3", "data": {"id": "t3-1", "type": "response", "command": "set_model", "success": true, "data": {"provider": "auditplain", "id": "haiku-fixture"}}}
{"time": "2026-11-10T13:53:41.895Z", "pid": 835114, "direction": "T3->Pi", "data": {"type": "prompt", "message": "Regenerate the title for an existing T3 Code thread so the user can recognize it weeks later.\nThe previous title was \"F11-ordinary-fallback\".\nReturn JSON with keys title and needsRefinement. Set needsRefinement to false.\n\nDetermine the title in this order:\n1. Read the USER messages first. Identify the latest explicit durable goal. The original subject remains the subject until the user clearly changes what the thread is about.\n2. Use ASSISTANT messages to resolve vague links, unnamed code, and discovered product nouns. Do not promote one assistant finding into the thread subject unless the user adopts it as a new goal.\n3. Compare that subject with the previous title. Preserve accurate scope words, especially when earlier content is truncated. Replace the previous title when it is generic, artifact-based, a completion update, or contradicted by the thread.\n4. Title the durable subject and desired outcome, not the current workflow state.\n\nEditorial rules:\n- 3-8 words, fewer than 40 characters.\n- Use a compact noun phrase or clear action phrase.\n- Preserve the umbrella subject when later messages focus on one finding, provider, platform, or implementation detail.\n- A thread progressing through research, planning, implementation, review, CI, merge, and monitoring has usually not changed subjects.\n- Ignore deliverables and operations such as mocks, plans, HTML, branches, PRs, tests, CI, commits, merging, and monitoring unless they are the actual topic.\n- Models, subagents, tools, output formats, and monitoring instructions do not belong in the title unless they are themselves the topic.\n- Treat final operational follow-ups and assistant completion summaries as weak evidence of subject.\n- For reviews, name the reviewed feature or system and its durable concern, not one finding from the review.\n- For research, name the question domain rather than the research process.\n- Do not claim the work is complete.\n- Do not copy and truncate a thread message.\n- Avoid project names already visible in the UI, PR numbers, quotes, labels, filler, and trailing punctuation.\n- Use attached images as primary context for UI issues.\n- When a URL or attachment is the only source of the subject, use available tools to inspect it directly.\n- Local git history is not evidence of what a linked PR or issue is about. Never title the thread after branch names, commit messages, or merged commits found in the checkout.\n- If a linked PR or issue cannot be read, fall back to the user's stated action plus its number, such as \"Take Over PR 8588\". This is the one case where a PR or issue number belongs in the title.\n- Keep the previous title unchanged if it is already accurate. Otherwise return a meaningfully improved title, not a cosmetic paraphrase.\n\nExamples of the distinction:\n- A subagent-monitoring review that finds a Codex roster bug remains \"Review Subagent Monitoring Risks,\" not \"Codex Roster Bug Review.\"\n- A vague failing-test request later identified as a lazy thread-feed mismatch becomes \"Fix Lazy Thread Feed Test,\" not \"Prevent Mobile Feed Regressions.\"\n- A QR-sharing overhaul that ends with CI and merge work remains about QR sharing, not the PR lifecycle.\n\nThread contents:\nUSER:\nReply with the single word: pong. Do not use tools.\n\nASSISTANT:\npong", "id": "t3-2"}}
{"time": "2026-11-10T13:53:41.901Z", "pid": 835114, "direction": "Pi->T3", "data": {"id": "t3-2", "type": "response", "command": "prompt", "success": true, "data": {"disposition": "started"}}}
{"time": "2026-11-10T13:53:41.902Z", "pid": 835114, "direction": "Pi->T3", "data": {"type": "agent_start"}}
{"time": "2026-11-10T13:53:44.027Z", "pid": 835114, "direction": "Pi->T3", "data": {"type": "message_end", "message": {"role": "assistant", "stopReason": "stop", "content": [{"type": "text", "text": "```json\n{\n  \"title\": \"Pong Response Test\",\n  \"needsRefinement\": false\n}\n```\n\nThe thread contains a simple test: the user asked for a single-word response (\"pong\"), and the assistant provided it. The durable goal is to verify this basic interaction pattern. The previous title \"F11-ordinary-fallback\" was generic and artifact-based; this new title specifically identifies what the thread is testing."}], "errorMessage": null}}}
{"time": "2026-11-10T13:53:44.028Z", "pid": 835114, "direction": "Pi->T3", "data": {"type": "agent_settled", "aborted": false}}
{"time": "2026-11-10T13:53:44.032Z", "pid": 835114, "direction": "T3->Pi", "data": {"type": "get_last_assistant_text", "id": "t3-3"}}
{"time": "2026-11-10T13:53:44.032Z", "pid": 835114, "direction": "Pi->T3", "data": {"id": "t3-3", "type": "response", "command": "get_last_assistant_text", "success": true, "data": {"text": "```json\n{\n  \"title\": \"Pong Response Test\",\n  \"needsRefinement\": false\n}\n```\n\nThe thread contains a simple test: the user asked for a single-word response (\"pong\"), and the assistant provided it. The durable goal is to verify this basic interaction pattern. The previous title \"F11-ordinary-fallback\" was generic and artifact-based; this new title specifically identifies what the thread is testing."}}}
{"time": "2026-11-10T13:53:45.302Z", "label": "F11-background-fallback", "run_statuses": ["completed"], "assistant_texts": ["pong"], "user_facing_errors": [], "thread_title": "Pong Response Test", "note": "Title generation completion does not create a chat run. An error is logged and the current title is retained."}
{"time": "2026-11-10T13:53:45.304Z", "driver-step": {"label": "F11-recovery", "action": "disable inventory-only fault; same Pi runtime"}}
{"time": "2026-11-10T13:53:45.658Z", "pid": 834631, "direction": "T3->Pi", "data": {"type": "get_available_models", "id": "t3-11"}}
{"time": "2026-11-10T13:53:45.659Z", "pid": 834631, "direction": "Pi->T3", "data": {"id": "t3-11", "type": "response", "command": "get_available_models", "success": true, "data": {"models": [{"provider": "auditplain", "id": "haiku-fixture"}, {"provider": "audit/slash", "id": "haiku-fixture"}, {"provider": "audit/hub", "id": "family/model"}], "unrelated_entries_redacted": 4}}}
{"time": "2026-11-10T13:53:45.722Z", "pid": 834631, "direction": "T3->Pi", "data": {"type": "set_model", "provider": "audit/slash", "modelId": "haiku-fixture", "id": "t3-13"}}
{"time": "2026-11-10T13:53:45.727Z", "pid": 834631, "direction": "Pi->T3", "data": {"id": "t3-13", "type": "response", "command": "set_model", "success": true, "data": {"provider": "audit/slash", "id": "haiku-fixture"}}}
{"time": "2026-11-10T13:53:45.738Z", "pid": 834631, "direction": "T3->Pi", "data": {"type": "prompt", "message": "Reply with the single word: pong. Do not use tools.", "streamingBehavior": "steer"}}
{"time": "2026-11-10T13:53:45.743Z", "pid": 834631, "direction": "Pi->T3", "data": {"type": "response", "command": "prompt", "success": true, "data": {"disposition": "started"}}}
{"time": "2026-11-10T13:53:45.743Z", "pid": 834631, "direction": "Pi->T3", "data": {"type": "agent_start"}}
{"time": "2026-11-10T13:53:46.913Z", "pid": 834631, "direction": "Pi->T3", "data": {"type": "message_end", "message": {"role": "assistant", "stopReason": "stop", "content": [{"type": "text", "text": "pong"}], "errorMessage": null}}}
{"time": "2026-11-10T13:53:46.913Z", "pid": 834631, "direction": "Pi->T3", "data": {"type": "agent_settled", "aborted": false}}
{"time": "2026-11-10T13:53:47.282Z", "label": "F11-recovery", "run_statuses": ["completed", "completed"], "assistant_texts": ["pong", "pong"], "user_facing_errors": [], "thread_title": "Pong Response Test"}
```

Relevant server log records:

```text
[13:53:38.767] INFO (#4987) http.span=5ms: Sent HTTP response
  http.method: POST
  http.url: /mcp
  http.status: 200
[13:53:38.798] INFO (#4991) http.span=5ms: Sent HTTP response
  http.method: POST
  http.url: /mcp
  http.status: 202
[13:53:38.878] INFO (#4994) http.span=69ms: Sent HTTP response
  http.method: POST
  http.url: /mcp
  http.status: 200
[13:53:40.185] WARN (#4800): Pi RPC discovery failed.
  { errorTag: 'PiRpcError' }
[13:53:45.539] INFO (#5547) http.span=6ms: Sent HTTP response
  http.method: POST
  http.url: /mcp
  http.status: 200
[13:53:45.551] INFO (#5553) http.span=3ms: Sent HTTP response
  http.method: POST
  http.url: /mcp
  http.status: 202
[13:53:45.589] INFO (#5556) http.span=34ms: Sent HTTP response
  http.method: POST
  http.url: /mcp
  http.status: 200
```

## F12 — Malformed custom slugs

Configure `bare-slug`, `/leading`, and `trailing/` as T3 Pi custom models. Start an ordinary control thread to supply synthetic title context. For each malformed slug, launch a separate adapter turn and regenerate the control thread’s title with that slug as `textGenerationModelSelection`. Inspect the independent helper process and adapter process logs for absent `set_model` and `prompt`.

| Before<br>[0a9abddaee](https://git.cafe/pingdotgg/t3code/commit/0a9abddaee00ff1495e77a03dd4fafa73c3cd4cb) | After<br>[0e41937e52](https://git.cafe/pingdotgg/t3code/commit/0e41937e52a50a42a84d5c20ac493a2c41354eb4) |
|---|---|
| All `bare-slug`, `/leading`, `trailing/`: adapter fails with provider/model-format error; background logs same format error and keeps title. **Zero `set_model`, zero `prompt`** in each invalid case. Adapter inventory count **1** per case; helper **0**. | Same rejection and retained title for all three forms; **zero `set_model`, zero `prompt`**. Adapter inventory count **2** per case; helper **1** per case. |

### Before runtime transcript ([0a9abddaee](https://git.cafe/pingdotgg/t3code/commit/0a9abddaee00ff1495e77a03dd4fafa73c3cd4cb))

Source directory: `2026-11-10T13-53-47-363Z-before-malformed`. Inventory excerpts retain fixture pairs and count unrelated redacted entries. Full redacted raw events, projections, and server logs are in the archive.

```jsonl
{"time": "2026-11-10T13:53:51.061Z", "driver-step": {"label": "F12-adapter-bare", "action": "launch", "slug": "bare-slug"}}
{"time": "2026-11-10T13:53:51.291Z", "pid": 835627, "direction": "launch", "data": {"args": ["--mode", "rpc", "--extension", "/tmp/lead-32585-r1/evidence-capture-1/fixtures.ts", "--extension", "/home/user/wt/pr-32585-before/.t3/caches/pi-t3-mcp-extension.ts"], "agentDir": "/tmp/lead-32585-r1/evidence-capture-1/2026-11-10T13-53-47-363Z-before-malformed/pi-agent"}}
{"time": "2026-11-10T13:53:51.297Z", "pid": 835627, "direction": "real-pi", "data": {"pid": 835643}}
{"time": "2026-11-10T13:53:52.052Z", "pid": 835627, "direction": "T3->Pi", "data": {"type": "get_available_models", "id": "t3-1"}}
{"time": "2026-11-10T13:53:52.054Z", "pid": 835627, "direction": "Pi->T3", "data": {"id": "t3-1", "type": "response", "command": "get_available_models", "success": true, "data": {"models": [{"provider": "auditplain", "id": "haiku-fixture"}, {"provider": "audit/slash", "id": "haiku-fixture"}, {"provider": "audit/hub", "id": "family/model"}], "unrelated_entries_redacted": 4}}}
{"time": "2026-11-10T13:53:52.426Z", "label": "F12-adapter-bare", "run_statuses": ["failed"], "assistant_texts": [], "user_facing_errors": ["The provider could not start this turn. Retry the turn; if it keeps failing, check the provider setup and server logs."], "thread_title": "F12-adapter-bare"}
{"time": "2026-11-10T13:53:52.471Z", "driver-step": {"label": "F12-background-bare", "action": "regenerate-title", "threadId": "9e557cb9-a37d-49f1-86b9-ed919eec4039", "slug": "bare-slug"}}
{"time": "2026-11-10T13:53:53.756Z", "label": "F12-background-bare", "run_statuses": ["completed"], "assistant_texts": ["pong"], "user_facing_errors": [], "thread_title": "F12-control", "note": "Title generation completion does not create a chat run. An error is logged and the current title is retained."}
{"time": "2026-11-10T13:53:53.756Z", "driver-step": {"label": "F12-adapter-leading", "action": "launch", "slug": "/leading"}}
{"time": "2026-11-10T13:53:54.057Z", "pid": 835752, "direction": "launch", "data": {"args": ["--mode", "rpc", "--extension", "/tmp/lead-32585-r1/evidence-capture-1/fixtures.ts", "--extension", "/home/user/wt/pr-32585-before/.t3/caches/pi-t3-mcp-extension.ts"], "agentDir": "/tmp/lead-32585-r1/evidence-capture-1/2026-11-10T13-53-47-363Z-before-malformed/pi-agent"}}
{"time": "2026-11-10T13:53:54.070Z", "pid": 835752, "direction": "real-pi", "data": {"pid": 835768}}
{"time": "2026-11-10T13:53:55.048Z", "pid": 835752, "direction": "T3->Pi", "data": {"type": "get_available_models", "id": "t3-1"}}
{"time": "2026-11-10T13:53:55.050Z", "pid": 835752, "direction": "Pi->T3", "data": {"id": "t3-1", "type": "response", "command": "get_available_models", "success": true, "data": {"models": [{"provider": "auditplain", "id": "haiku-fixture"}, {"provider": "audit/slash", "id": "haiku-fixture"}, {"provider": "audit/hub", "id": "family/model"}], "unrelated_entries_redacted": 4}}}
{"time": "2026-11-10T13:53:55.221Z", "label": "F12-adapter-leading", "run_statuses": ["failed"], "assistant_texts": [], "user_facing_errors": ["The provider could not start this turn. Retry the turn; if it keeps failing, check the provider setup and server logs."], "thread_title": "F12-adapter-leading"}
{"time": "2026-11-10T13:53:55.265Z", "driver-step": {"label": "F12-background-leading", "action": "regenerate-title", "threadId": "9e557cb9-a37d-49f1-86b9-ed919eec4039", "slug": "/leading"}}
{"time": "2026-11-10T13:53:56.538Z", "label": "F12-background-leading", "run_statuses": ["completed"], "assistant_texts": ["pong"], "user_facing_errors": [], "thread_title": "F12-control", "note": "Title generation completion does not create a chat run. An error is logged and the current title is retained."}
{"time": "2026-11-10T13:53:56.540Z", "driver-step": {"label": "F12-adapter-trailing", "action": "launch", "slug": "trailing/"}}
{"time": "2026-11-10T13:53:56.810Z", "pid": 835832, "direction": "launch", "data": {"args": ["--mode", "rpc", "--extension", "/tmp/lead-32585-r1/evidence-capture-1/fixtures.ts", "--extension", "/home/user/wt/pr-32585-before/.t3/caches/pi-t3-mcp-extension.ts"], "agentDir": "/tmp/lead-32585-r1/evidence-capture-1/2026-11-10T13-53-47-363Z-before-malformed/pi-agent"}}
{"time": "2026-11-10T13:53:56.825Z", "pid": 835832, "direction": "real-pi", "data": {"pid": 835849}}
{"time": "2026-11-10T13:53:58.408Z", "pid": 835832, "direction": "T3->Pi", "data": {"type": "get_available_models", "id": "t3-1"}}
{"time": "2026-11-10T13:53:58.410Z", "pid": 835832, "direction": "Pi->T3", "data": {"id": "t3-1", "type": "response", "command": "get_available_models", "success": true, "data": {"models": [{"provider": "auditplain", "id": "haiku-fixture"}, {"provider": "audit/slash", "id": "haiku-fixture"}, {"provider": "audit/hub", "id": "family/model"}], "unrelated_entries_redacted": 4}}}
{"time": "2026-11-10T13:53:58.850Z", "label": "F12-adapter-trailing", "run_statuses": ["failed"], "assistant_texts": [], "user_facing_errors": ["The provider could not start this turn. Retry the turn; if it keeps failing, check the provider setup and server logs."], "thread_title": "F12-adapter-trailing"}
{"time": "2026-11-10T13:53:58.923Z", "driver-step": {"label": "F12-background-trailing", "action": "regenerate-title", "threadId": "9e557cb9-a37d-49f1-86b9-ed919eec4039", "slug": "trailing/"}}
{"time": "2026-11-10T13:54:00.186Z", "label": "F12-background-trailing", "run_statuses": ["completed"], "assistant_texts": ["pong"], "user_facing_errors": [], "thread_title": "F12-control", "note": "Title generation completion does not create a chat run. An error is logged and the current title is retained."}
```

Relevant server log records:

```text
[13:53:51.794] INFO (#5991) http.span=6ms: Sent HTTP response
  http.method: POST
  http.url: /mcp
  http.status: 200
[13:53:51.817] INFO (#5995) http.span=8ms: Sent HTTP response
  http.method: POST
  http.url: /mcp
  http.status: 202
[13:53:51.870] INFO (#5998) http.span=46ms: Sent HTTP response
  http.method: POST
  http.url: /mcp
  http.status: 200
[13:53:52.151] ERROR (#5934): orchestration V2 provider turn start failed
  {
    runId: 'run:thread:8de4271e-289c-4ec2-8f38-ffdb49fc36ce:ordinal:1',
    cause: 'ProviderAdapterTurnStartError: Failed to start run run:thread:8de4271e-289c-4ec2-8f38-ffdb49fc36ce:ordinal:1 on pi provider thread provider-thread:provider:pi:native-thread:pending%3Arun%3Athread%3A8de4271e-289c-4ec2-8f38-ffdb49fc36ce%3Aordinal%3A1.\n' +
      '    at file:///home/user/wt/pr-32585-before/packages/provider-pi/src/server/adapter.ts:2882:19\n' +
      '    at file:///home/user/wt/pr-32585-before/node_modules/.pnpm/effect@4.1.2/node_modules/effect/dist/internal/effect.js:152:23\n' +
      '    at Array.map (<anonymous>)\n' +
      '    at file:///home/user/wt/pr-32585-before/node_modules/.pnpm/effect@4.1.2/node_modules/effect/dist/internal/effect.js:149:33\n' +
      '    at file:///home/user/wt/pr-32585-before/node_modules/.pnpm/effect@4.1.2/node_modules/effect/dist/Function.js:79:18\n' +
      '    at PiAdapter.startTurn (file:///home/user/wt/pr-32585-before/apps/server/src/orchestration-v2/ProviderSessionManager.ts:2119:29)\n' +
      '    at PiAdapter.startTurn (definition) (file:///home/user/wt/pr-32585-before/packages/provider-pi/src/server/adapter.ts:2710:27)\n' +
      '    at RunExecutionService.startRootRun (file:///home/user/wt/pr-32585-before/apps/server/src/orchestration-v2/ProviderTurnStartService.ts:1674:27)\n' +
      '    at RunExecutionService.startRootRun (definition) (file:///home/user/wt/pr-32585-before/apps/server/src/orchestration-v2/RunExecutionService.ts:895:28)\n' +
      '    at ProviderTurnStartService.start (file:///home/user/wt/pr-32585-before/apps/server/src/orchestration-v2/EffectWorker.ts:143:16)\n' +
      '    at ProviderTurnStartService.start (definition) (file:///home/user/wt/pr-32585-before/apps/server/src/orchestration-v2/ProviderTurnStartService.ts:1727:21)\n' +
      '    at OrchestrationEffectExecutorV2.execute (file:///home/user/wt/pr-32585-before/apps/server/src/orchestration-v2/EffectWorker.ts:786:14)\n' +
      '    at OrchestrationEffectExecutorV2.execute (definition) (file:///home/user/wt/pr-32585-before/apps/server/src/orchestration-v2/EffectWorker.ts:98:23)\n' +
      '    at serverActivation.forkParkedFiber (file:///home/user/wt/pr-32585-before/apps/server/src/serverRuntimeStartup.ts:394:30)\n' +
      '    at serverActivation.forkParkedFiber (definition) (file:///home/user/wt/pr-32585-before/apps/server/src/serverActivation.ts:12:39) {\n' +
      "  [cause]: ProviderAdapterProtocolError: pi provider protocol error: Pi model 'bare-slug' must use provider/model format.\n" +
      '      at protocolError (file:///home/user/wt/pr-32585-before/packages/provider-pi/src/server/adapter.ts:437:5)\n' +
      '      at file:///home/user/wt/pr-32585-before/packages/provider-pi/src/server/adapter.ts:2578:27\n' +
      '}'
  }
[13:53:53.560] WARN (#6131): Thread title generation failed
  {
    threadId: '9e557cb9-a37d-49f1-86b9-ed919eec4039',
    requestId: '06b453f6-9755-4102-b0e0-b923576b8acb',
    cause: "TextGenerationError: Text generation failed in generateThreadTitle: Pi model 'bare-slug' must use provider/model format.\n" +
      '    at Effect.fn.operation.operation (file:///home/user/wt/pr-32585-before/packages/provider-pi/src/server/textGeneration.ts:66:25)\n' +
      '    at Effect.fn.operation.operation.next (<anonymous>)\n' +
      '    at ThreadTitleRegenerationService.execute (file:///home/user/wt/pr-32585-before/apps/server/src/orchestration-v2/EffectWorker.ts:543:16)\n' +
      '    at ThreadTitleRegenerationService.execute (definition) (file:///home/user/wt/pr-32585-before/apps/server/src/orchestration-v2/ThreadTitleRegenerationService.ts:110:80)\n' +
      '    at OrchestrationEffectExecutorV2.execute (file:///home/user/wt/pr-32585-before/apps/server/src/orchestration-v2/EffectWorker.ts:786:14)\n' +
      '    at OrchestrationEffectExecutorV2.execute (definition) (file:///home/user/wt/pr-32585-before/apps/server/src/orchestration-v2/EffectWorker.ts:98:23)\n' +
      '    at serverActivation.forkParkedFiber (file:///home/user/wt/pr-32585-before/apps/server/src/serverRuntimeStartup.ts:394:30)\n' +
      '    at serverActivation.forkParkedFiber (definition) (file:///home/user/wt/pr-32585-before/apps/server/src/serverActivation.ts:12:39)\n' +
      '    at ServerRuntimeStartup.startEffectWorkerWithRelay (file:///home/user/wt/pr-32585-before/apps/server/src/serverRuntimeStartup.ts:552:9)\n' +
      '    at ServerRuntimeStartup.startEffectWorkerWithRelay (definition) (file:///home/user/wt/pr-32585-before/apps/server/src/serverRuntimeStartup.ts:387:50)\n' +
      '    at server.startup.orchestration-v2.effect-worker.start (file:///home/user/wt/pr-32585-before/apps/server/src/serverRuntimeStartup.ts:378:12)\n' +
      '    at serverRuntimeStartup.runOrderedV2StartupPhases (file:///home/user/wt/pr-32585-before/apps/server/src/serverRuntimeStartup.ts:534:62)'
  }
[13:53:54.783] INFO (#6343) http.span=17ms: Sent HTTP response
  http.method: POST
  http.url: /mcp
  http.status: 200
[13:53:54.820] INFO (#6352) http.span=5ms: Sent HTTP response
  http.method: POST
  http.url: /mcp
  http.status: 202
[13:53:54.880] INFO (#6358) http.span=41ms: Sent HTTP response
  http.method: POST
  http.url: /mcp
  http.status: 200
[13:53:55.117] ERROR (#6291): orchestration V2 provider turn start failed
  {
    runId: 'run:thread:babf8f0c-ad1f-44f5-9295-8673c0b7789c:ordinal:1',
    cause: 'ProviderAdapterTurnStartError: Failed to start run run:thread:babf8f0c-ad1f-44f5-9295-8673c0b7789c:ordinal:1 on pi provider thread provider-thread:provider:pi:native-thread:pending%3Arun%3Athread%3Ababf8f0c-ad1f-44f5-9295-8673c0b7789c%3Aordinal%3A1.\n' +
      '    at file:///home/user/wt/pr-32585-before/packages/provider-pi/src/server/adapter.ts:2882:19\n' +
      '    at file:///home/user/wt/pr-32585-before/node_modules/.pnpm/effect@4.1.2/node_modules/effect/dist/internal/effect.js:152:23\n' +
      '    at Array.map (<anonymous>)\n' +
      '    at file:///home/user/wt/pr-32585-before/node_modules/.pnpm/effect@4.1.2/node_modules/effect/dist/internal/effect.js:149:33\n' +
      '    at file:///home/user/wt/pr-32585-before/node_modules/.pnpm/effect@4.1.2/node_modules/effect/dist/Function.js:79:18\n' +
      '    at PiAdapter.startTurn (file:///home/user/wt/pr-32585-before/apps/server/src/orchestration-v2/ProviderSessionManager.ts:2119:29)\n' +
      '    at PiAdapter.startTurn (definition) (file:///home/user/wt/pr-32585-before/packages/provider-pi/src/server/adapter.ts:2710:27)\n' +
      '    at RunExecutionService.startRootRun (file:///home/user/wt/pr-32585-before/apps/server/src/orchestration-v2/ProviderTurnStartService.ts:1674:27)\n' +
      '    at RunExecutionService.startRootRun (definition) (file:///home/user/wt/pr-32585-before/apps/server/src/orchestration-v2/RunExecutionService.ts:895:28)\n' +
      '    at ProviderTurnStartService.start (file:///home/user/wt/pr-32585-before/apps/server/src/orchestration-v2/EffectWorker.ts:143:16)\n' +
      '    at ProviderTurnStartService.start (definition) (file:///home/user/wt/pr-32585-before/apps/server/src/orchestration-v2/ProviderTurnStartService.ts:1727:21)\n' +
      '    at OrchestrationEffectExecutorV2.execute (file:///home/user/wt/pr-32585-before/apps/server/src/orchestration-v2/EffectWorker.ts:786:14)\n' +
      '    at OrchestrationEffectExecutorV2.execute (definition) (file:///home/user/wt/pr-32585-before/apps/server/src/orchestration-v2/EffectWorker.ts:98:23)\n' +
      '    at serverActivation.forkParkedFiber (file:///home/user/wt/pr-32585-before/apps/server/src/serverRuntimeStartup.ts:394:30)\n' +
      '    at serverActivation.forkParkedFiber (definition) (file:///home/user/wt/pr-32585-before/apps/server/src/serverActivation.ts:12:39) {\n' +
      "  [cause]: ProviderAdapterProtocolError: pi provider protocol error: Pi model '/leading' must use provider/model format.\n" +
      '      at protocolError (file:///home/user/wt/pr-32585-before/packages/provider-pi/src/server/adapter.ts:437:5)\n' +
      '      at file:///home/user/wt/pr-32585-before/packages/provider-pi/src/server/adapter.ts:2578:27\n' +
      '}'
  }
[13:53:56.321] WARN (#6479): Thread title generation failed
  {
    threadId: '9e557cb9-a37d-49f1-86b9-ed919eec4039',
    requestId: '0189201d-47e0-4f47-836b-c4be47cd4551',
    cause: "TextGenerationError: Text generation failed in generateThreadTitle: Pi model '/leading' must use provider/model format.\n" +
      '    at Effect.fn.operation.operation (file:///home/user/wt/pr-32585-before/packages/provider-pi/src/server/textGeneration.ts:66:25)\n' +
      '    at Effect.fn.operation.operation.next (<anonymous>)\n' +
      '    at ThreadTitleRegenerationService.execute (file:///home/user/wt/pr-32585-before/apps/server/src/orchestration-v2/EffectWorker.ts:543:16)\n' +
      '    at ThreadTitleRegenerationService.execute (definition) (file:///home/user/wt/pr-32585-before/apps/server/src/orchestration-v2/ThreadTitleRegenerationService.ts:110:80)\n' +
      '    at OrchestrationEffectExecutorV2.execute (file:///home/user/wt/pr-32585-before/apps/server/src/orchestration-v2/EffectWorker.ts:786:14)\n' +
      '    at OrchestrationEffectExecutorV2.execute (definition) (file:///home/user/wt/pr-32585-before/apps/server/src/orchestration-v2/EffectWorker.ts:98:23)\n' +
      '    at serverActivation.forkParkedFiber (file:///home/user/wt/pr-32585-before/apps/server/src/serverRuntimeStartup.ts:394:30)\n' +
      '    at serverActivation.forkParkedFiber (definition) (file:///home/user/wt/pr-32585-before/apps/server/src/serverActivation.ts:12:39)\n' +
      '    at ServerRuntimeStartup.startEffectWorkerWithRelay (file:///home/user/wt/pr-32585-before/apps/server/src/serverRuntimeStartup.ts:552:9)\n' +
      '    at ServerRuntimeStartup.startEffectWorkerWithRelay (definition) (file:///home/user/wt/pr-32585-before/apps/server/src/serverRuntimeStartup.ts:387:50)\n' +
      '    at server.startup.orchestration-v2.effect-worker.start (file:///home/user/wt/pr-32585-before/apps/server/src/serverRuntimeStartup.ts:378:12)\n' +
      '    at serverRuntimeStartup.runOrderedV2StartupPhases (file:///home/user/wt/pr-32585-before/apps/server/src/serverRuntimeStartup.ts:534:62)'
  }
[13:53:58.149] INFO (#6702) http.span=6ms: Sent HTTP response
  http.method: POST
  http.url: /mcp
  http.status: 200
[13:53:58.164] INFO (#6706) http.span=3ms: Sent HTTP response
  http.method: POST
  http.url: /mcp
  http.status: 202
[13:53:58.205] INFO (#6709) http.span=37ms: Sent HTTP response
  http.method: POST
  http.url: /mcp
  http.status: 200
[13:53:58.526] ERROR (#6632): orchestration V2 provider turn start failed
  {
    runId: 'run:thread:603c750c-4c6b-4514-a778-a22adb8c1d89:ordinal:1',
    cause: 'ProviderAdapterTurnStartError: Failed to start run run:thread:603c750c-4c6b-4514-a778-a22adb8c1d89:ordinal:1 on pi provider thread provider-thread:provider:pi:native-thread:pending%3Arun%3Athread%3A603c750c-4c6b-4514-a778-a22adb8c1d89%3Aordinal%3A1.\n' +
      '    at file:///home/user/wt/pr-32585-before/packages/provider-pi/src/server/adapter.ts:2882:19\n' +
      '    at file:///home/user/wt/pr-32585-before/node_modules/.pnpm/effect@4.1.2/node_modules/effect/dist/internal/effect.js:152:23\n' +
      '    at Array.map (<anonymous>)\n' +
      '    at file:///home/user/wt/pr-32585-before/node_modules/.pnpm/effect@4.1.2/node_modules/effect/dist/internal/effect.js:149:33\n' +
      '    at file:///home/user/wt/pr-32585-before/node_modules/.pnpm/effect@4.1.2/node_modules/effect/dist/Function.js:79:18\n' +
      '    at PiAdapter.startTurn (file:///home/user/wt/pr-32585-before/apps/server/src/orchestration-v2/ProviderSessionManager.ts:2119:29)\n' +
      '    at PiAdapter.startTurn (definition) (file:///home/user/wt/pr-32585-before/packages/provider-pi/src/server/adapter.ts:2710:27)\n' +
      '    at RunExecutionService.startRootRun (file:///home/user/wt/pr-32585-before/apps/server/src/orchestration-v2/ProviderTurnStartService.ts:1674:27)\n' +
      '    at RunExecutionService.startRootRun (definition) (file:///home/user/wt/pr-32585-before/apps/server/src/orchestration-v2/RunExecutionService.ts:895:28)\n' +
      '    at ProviderTurnStartService.start (file:///home/user/wt/pr-32585-before/apps/server/src/orchestration-v2/EffectWorker.ts:143:16)\n' +
      '    at ProviderTurnStartService.start (definition) (file:///home/user/wt/pr-32585-before/apps/server/src/orchestration-v2/ProviderTurnStartService.ts:1727:21)\n' +
      '    at OrchestrationEffectExecutorV2.execute (file:///home/user/wt/pr-32585-before/apps/server/src/orchestration-v2/EffectWorker.ts:786:14)\n' +
      '    at OrchestrationEffectExecutorV2.execute (definition) (file:///home/user/wt/pr-32585-before/apps/server/src/orchestration-v2/EffectWorker.ts:98:23)\n' +
      '    at serverActivation.forkParkedFiber (file:///home/user/wt/pr-32585-before/apps/server/src/serverRuntimeStartup.ts:394:30)\n' +
      '    at serverActivation.forkParkedFiber (definition) (file:///home/user/wt/pr-32585-before/apps/server/src/serverActivation.ts:12:39) {\n' +
      "  [cause]: ProviderAdapterProtocolError: pi provider protocol error: Pi model 'trailing/' must use provider/model format.\n" +
      '      at protocolError (file:///home/user/wt/pr-32585-before/packages/provider-pi/src/server/adapter.ts:437:5)\n' +
      '      at file:///home/user/wt/pr-32585-before/packages/provider-pi/src/server/adapter.ts:2578:27\n' +
      '}'
  }
[13:53:59.985] WARN (#6835): Thread title generation failed
  {
    threadId: '9e557cb9-a37d-49f1-86b9-ed919eec4039',
    requestId: '77209f47-b67f-4720-9dcf-fba9de05a404',
    cause: "TextGenerationError: Text generation failed in generateThreadTitle: Pi model 'trailing/' must use provider/model format.\n" +
      '    at Effect.fn.operation.operation (file:///home/user/wt/pr-32585-before/packages/provider-pi/src/server/textGeneration.ts:66:25)\n' +
      '    at Effect.fn.operation.operation.next (<anonymous>)\n' +
      '    at ThreadTitleRegenerationService.execute (file:///home/user/wt/pr-32585-before/apps/server/src/orchestration-v2/EffectWorker.ts:543:16)\n' +
      '    at ThreadTitleRegenerationService.execute (definition) (file:///home/user/wt/pr-32585-before/apps/server/src/orchestration-v2/ThreadTitleRegenerationService.ts:110:80)\n' +
      '    at OrchestrationEffectExecutorV2.execute (file:///home/user/wt/pr-32585-before/apps/server/src/orchestration-v2/EffectWorker.ts:786:14)\n' +
      '    at OrchestrationEffectExecutorV2.execute (definition) (file:///home/user/wt/pr-32585-before/apps/server/src/orchestration-v2/EffectWorker.ts:98:23)\n' +
      '    at serverActivation.forkParkedFiber (file:///home/user/wt/pr-32585-before/apps/server/src/serverRuntimeStartup.ts:394:30)\n' +
      '    at serverActivation.forkParkedFiber (definition) (file:///home/user/wt/pr-32585-before/apps/server/src/serverActivation.ts:12:39)\n' +
      '    at ServerRuntimeStartup.startEffectWorkerWithRelay (file:///home/user/wt/pr-32585-before/apps/server/src/serverRuntimeStartup.ts:552:9)\n' +
      '    at ServerRuntimeStartup.startEffectWorkerWithRelay (definition) (file:///home/user/wt/pr-32585-before/apps/server/src/serverRuntimeStartup.ts:387:50)\n' +
      '    at server.startup.orchestration-v2.effect-worker.start (file:///home/user/wt/pr-32585-before/apps/server/src/serverRuntimeStartup.ts:378:12)\n' +
      '    at serverRuntimeStartup.runOrderedV2StartupPhases (file:///home/user/wt/pr-32585-before/apps/server/src/serverRuntimeStartup.ts:534:62)'
  }
```

### After runtime transcript ([0e41937e52](https://git.cafe/pingdotgg/t3code/commit/0e41937e52a50a42a84d5c20ac493a2c41354eb4))

Source directory: `2026-11-10T13-53-47-363Z-after-malformed`. Inventory excerpts retain fixture pairs and count unrelated redacted entries. Full redacted raw events, projections, and server logs are in the archive.

```jsonl
{"time": "2026-11-10T13:53:51.346Z", "driver-step": {"label": "F12-adapter-bare", "action": "launch", "slug": "bare-slug"}}
{"time": "2026-11-10T13:53:51.702Z", "pid": 835658, "direction": "launch", "data": {"args": ["--mode", "rpc", "--extension", "/tmp/lead-32585-r1/evidence-capture-1/fixtures.ts", "--extension", "/home/user/wt/pr-32585/.t3/caches/pi-t3-mcp-extension.ts"], "agentDir": "/tmp/lead-32585-r1/evidence-capture-1/2026-11-10T13-53-47-363Z-after-malformed/pi-agent"}}
{"time": "2026-11-10T13:53:51.711Z", "pid": 835658, "direction": "real-pi", "data": {"pid": 835678}}
{"time": "2026-11-10T13:53:52.427Z", "pid": 835658, "direction": "T3->Pi", "data": {"type": "get_available_models", "id": "t3-1"}}
{"time": "2026-11-10T13:53:52.429Z", "pid": 835658, "direction": "Pi->T3", "data": {"id": "t3-1", "type": "response", "command": "get_available_models", "success": true, "data": {"models": [{"provider": "auditplain", "id": "haiku-fixture"}, {"provider": "audit/slash", "id": "haiku-fixture"}, {"provider": "audit/hub", "id": "family/model"}], "unrelated_entries_redacted": 4}}}
{"time": "2026-11-10T13:53:52.521Z", "pid": 835658, "direction": "T3->Pi", "data": {"type": "get_available_models", "id": "t3-3"}}
{"time": "2026-11-10T13:53:52.524Z", "pid": 835658, "direction": "Pi->T3", "data": {"id": "t3-3", "type": "response", "command": "get_available_models", "success": true, "data": {"models": [{"provider": "auditplain", "id": "haiku-fixture"}, {"provider": "audit/slash", "id": "haiku-fixture"}, {"provider": "audit/hub", "id": "family/model"}], "unrelated_entries_redacted": 4}}}
{"time": "2026-11-10T13:53:52.810Z", "label": "F12-adapter-bare", "run_statuses": ["failed"], "assistant_texts": [], "user_facing_errors": ["The provider could not start this turn. Retry the turn; if it keeps failing, check the provider setup and server logs."], "thread_title": "F12-adapter-bare"}
{"time": "2026-11-10T13:53:52.852Z", "driver-step": {"label": "F12-background-bare", "action": "regenerate-title", "threadId": "7b67b863-88ad-4a09-ac58-f69d1efafe28", "slug": "bare-slug"}}
{"time": "2026-11-10T13:53:52.961Z", "pid": 835700, "direction": "launch", "data": {"args": ["--mode", "rpc", "--no-session", "--offline", "--no-extensions", "--no-tools"], "agentDir": "/tmp/lead-32585-r1/evidence-capture-1/2026-11-10T13-53-47-363Z-after-malformed/pi-agent"}}
{"time": "2026-11-10T13:53:52.968Z", "pid": 835700, "direction": "real-pi", "data": {"pid": 835718}}
{"time": "2026-11-10T13:53:52.973Z", "pid": 835700, "direction": "T3->Pi", "data": {"type": "get_available_models", "id": "t3-0"}}
{"time": "2026-11-10T13:53:53.920Z", "pid": 835700, "direction": "Pi->T3", "data": {"id": "t3-0", "type": "response", "command": "get_available_models", "success": true, "data": {"models": [{"provider": "auditplain", "id": "haiku-fixture"}], "unrelated_entries_redacted": 4}}}
{"time": "2026-11-10T13:53:55.021Z", "label": "F12-background-bare", "run_statuses": ["completed"], "assistant_texts": ["pong"], "user_facing_errors": [], "thread_title": "F12-control", "note": "Title generation completion does not create a chat run. An error is logged and the current title is retained."}
{"time": "2026-11-10T13:53:55.021Z", "driver-step": {"label": "F12-adapter-leading", "action": "launch", "slug": "/leading"}}
{"time": "2026-11-10T13:53:55.323Z", "pid": 835793, "direction": "launch", "data": {"args": ["--mode", "rpc", "--extension", "/tmp/lead-32585-r1/evidence-capture-1/fixtures.ts", "--extension", "/home/user/wt/pr-32585/.t3/caches/pi-t3-mcp-extension.ts"], "agentDir": "/tmp/lead-32585-r1/evidence-capture-1/2026-11-10T13-53-47-363Z-after-malformed/pi-agent"}}
{"time": "2026-11-10T13:53:55.327Z", "pid": 835793, "direction": "real-pi", "data": {"pid": 835813}}
{"time": "2026-11-10T13:53:56.294Z", "pid": 835793, "direction": "T3->Pi", "data": {"type": "get_available_models", "id": "t3-1"}}
{"time": "2026-11-10T13:53:56.296Z", "pid": 835793, "direction": "Pi->T3", "data": {"id": "t3-1", "type": "response", "command": "get_available_models", "success": true, "data": {"models": [{"provider": "auditplain", "id": "haiku-fixture"}, {"provider": "audit/slash", "id": "haiku-fixture"}, {"provider": "audit/hub", "id": "family/model"}], "unrelated_entries_redacted": 4}}}
{"time": "2026-11-10T13:53:56.525Z", "pid": 835793, "direction": "T3->Pi", "data": {"type": "get_available_models", "id": "t3-3"}}
{"time": "2026-11-10T13:53:56.529Z", "pid": 835793, "direction": "Pi->T3", "data": {"id": "t3-3", "type": "response", "command": "get_available_models", "success": true, "data": {"models": [{"provider": "auditplain", "id": "haiku-fixture"}, {"provider": "audit/slash", "id": "haiku-fixture"}, {"provider": "audit/hub", "id": "family/model"}], "unrelated_entries_redacted": 4}}}
{"time": "2026-11-10T13:53:56.804Z", "label": "F12-adapter-leading", "run_statuses": ["failed"], "assistant_texts": [], "user_facing_errors": ["The provider could not start this turn. Retry the turn; if it keeps failing, check the provider setup and server logs."], "thread_title": "F12-adapter-leading"}
{"time": "2026-11-10T13:53:56.839Z", "driver-step": {"label": "F12-background-leading", "action": "regenerate-title", "threadId": "7b67b863-88ad-4a09-ac58-f69d1efafe28", "slug": "/leading"}}
{"time": "2026-11-10T13:53:56.993Z", "pid": 835857, "direction": "launch", "data": {"args": ["--mode", "rpc", "--no-session", "--offline", "--no-extensions", "--no-tools"], "agentDir": "/tmp/lead-32585-r1/evidence-capture-1/2026-11-10T13-53-47-363Z-after-malformed/pi-agent"}}
{"time": "2026-11-10T13:53:57.007Z", "pid": 835857, "direction": "real-pi", "data": {"pid": 835878}}
{"time": "2026-11-10T13:53:57.027Z", "pid": 835857, "direction": "T3->Pi", "data": {"type": "get_available_models", "id": "t3-0"}}
{"time": "2026-11-10T13:53:58.543Z", "pid": 835857, "direction": "Pi->T3", "data": {"id": "t3-0", "type": "response", "command": "get_available_models", "success": true, "data": {"models": [{"provider": "auditplain", "id": "haiku-fixture"}], "unrelated_entries_redacted": 4}}}
{"time": "2026-11-10T13:53:59.734Z", "label": "F12-background-leading", "run_statuses": ["completed"], "assistant_texts": ["pong"], "user_facing_errors": [], "thread_title": "F12-control", "note": "Title generation completion does not create a chat run. An error is logged and the current title is retained."}
{"time": "2026-11-10T13:53:59.734Z", "driver-step": {"label": "F12-adapter-trailing", "action": "launch", "slug": "trailing/"}}
{"time": "2026-11-10T13:54:00.048Z", "pid": 835921, "direction": "launch", "data": {"args": ["--mode", "rpc", "--extension", "/tmp/lead-32585-r1/evidence-capture-1/fixtures.ts", "--extension", "/home/user/wt/pr-32585/.t3/caches/pi-t3-mcp-extension.ts"], "agentDir": "/tmp/lead-32585-r1/evidence-capture-1/2026-11-10T13-53-47-363Z-after-malformed/pi-agent"}}
{"time": "2026-11-10T13:54:00.056Z", "pid": 835921, "direction": "real-pi", "data": {"pid": 835939}}
{"time": "2026-11-10T13:54:01.307Z", "pid": 835921, "direction": "T3->Pi", "data": {"type": "get_available_models", "id": "t3-1"}}
{"time": "2026-11-10T13:54:01.309Z", "pid": 835921, "direction": "Pi->T3", "data": {"id": "t3-1", "type": "response", "command": "get_available_models", "success": true, "data": {"models": [{"provider": "auditplain", "id": "haiku-fixture"}, {"provider": "audit/slash", "id": "haiku-fixture"}, {"provider": "audit/hub", "id": "family/model"}], "unrelated_entries_redacted": 4}}}
{"time": "2026-11-10T13:54:01.412Z", "pid": 835921, "direction": "T3->Pi", "data": {"type": "get_available_models", "id": "t3-3"}}
{"time": "2026-11-10T13:54:01.414Z", "pid": 835921, "direction": "Pi->T3", "data": {"id": "t3-3", "type": "response", "command": "get_available_models", "success": true, "data": {"models": [{"provider": "auditplain", "id": "haiku-fixture"}, {"provider": "audit/slash", "id": "haiku-fixture"}, {"provider": "audit/hub", "id": "family/model"}], "unrelated_entries_redacted": 4}}}
{"time": "2026-11-10T13:54:01.796Z", "label": "F12-adapter-trailing", "run_statuses": ["failed"], "assistant_texts": [], "user_facing_errors": ["The provider could not start this turn. Retry the turn; if it keeps failing, check the provider setup and server logs."], "thread_title": "F12-adapter-trailing"}
{"time": "2026-11-10T13:54:01.860Z", "driver-step": {"label": "F12-background-trailing", "action": "regenerate-title", "threadId": "7b67b863-88ad-4a09-ac58-f69d1efafe28", "slug": "trailing/"}}
{"time": "2026-11-10T13:54:02.133Z", "pid": 835958, "direction": "launch", "data": {"args": ["--mode", "rpc", "--no-session", "--offline", "--no-extensions", "--no-tools"], "agentDir": "/tmp/lead-32585-r1/evidence-capture-1/2026-11-10T13-53-47-363Z-after-malformed/pi-agent"}}
{"time": "2026-11-10T13:54:02.143Z", "pid": 835958, "direction": "real-pi", "data": {"pid": 835975}}
{"time": "2026-11-10T13:54:02.155Z", "pid": 835958, "direction": "T3->Pi", "data": {"type": "get_available_models", "id": "t3-0"}}
{"time": "2026-11-10T13:54:02.726Z", "pid": 835958, "direction": "Pi->T3", "data": {"id": "t3-0", "type": "response", "command": "get_available_models", "success": true, "data": {"models": [{"provider": "auditplain", "id": "haiku-fixture"}], "unrelated_entries_redacted": 4}}}
{"time": "2026-11-10T13:54:03.968Z", "label": "F12-background-trailing", "run_statuses": ["completed"], "assistant_texts": ["pong"], "user_facing_errors": [], "thread_title": "F12-control", "note": "Title generation completion does not create a chat run. An error is logged and the current title is retained."}
```

Relevant server log records:

```text
[13:53:52.191] INFO (#6556) http.span=6ms: Sent HTTP response
  http.method: POST
  http.url: /mcp
  http.status: 200
[13:53:52.227] INFO (#6560) http.span=4ms: Sent HTTP response
  http.method: POST
  http.url: /mcp
  http.status: 202
[13:53:52.259] INFO (#6563) http.span=24ms: Sent HTTP response
  http.method: POST
  http.url: /mcp
  http.status: 200
[13:53:52.538] ERROR (#6498): orchestration V2 provider turn start failed
  {
    runId: 'run:thread:64dfafd5-e7ba-4706-b9ea-e00dd5a90d6f:ordinal:1',
    cause: 'ProviderAdapterTurnStartError: Failed to start run run:thread:64dfafd5-e7ba-4706-b9ea-e00dd5a90d6f:ordinal:1 on pi provider thread provider-thread:provider:pi:native-thread:pending%3Arun%3Athread%3A64dfafd5-e7ba-4706-b9ea-e00dd5a90d6f%3Aordinal%3A1.\n' +
      '    at file:///home/user/wt/pr-32585/packages/provider-pi/src/server/adapter.ts:2889:19\n' +
      '    at file:///home/user/wt/pr-32585/node_modules/.pnpm/effect@4.1.2/node_modules/effect/dist/internal/effect.js:152:23\n' +
      '    at Array.map (<anonymous>)\n' +
      '    at file:///home/user/wt/pr-32585/node_modules/.pnpm/effect@4.1.2/node_modules/effect/dist/internal/effect.js:149:33\n' +
      '    at file:///home/user/wt/pr-32585/node_modules/.pnpm/effect@4.1.2/node_modules/effect/dist/Function.js:79:18\n' +
      '    at PiAdapter.startTurn (file:///home/user/wt/pr-32585/apps/server/src/orchestration-v2/ProviderSessionManager.ts:2119:29)\n' +
      '    at PiAdapter.startTurn (definition) (file:///home/user/wt/pr-32585/packages/provider-pi/src/server/adapter.ts:2717:27)\n' +
      '    at RunExecutionService.startRootRun (file:///home/user/wt/pr-32585/apps/server/src/orchestration-v2/ProviderTurnStartService.ts:1674:27)\n' +
      '    at RunExecutionService.startRootRun (definition) (file:///home/user/wt/pr-32585/apps/server/src/orchestration-v2/RunExecutionService.ts:895:28)\n' +
      '    at ProviderTurnStartService.start (file:///home/user/wt/pr-32585/apps/server/src/orchestration-v2/EffectWorker.ts:143:16)\n' +
      '    at ProviderTurnStartService.start (definition) (file:///home/user/wt/pr-32585/apps/server/src/orchestration-v2/ProviderTurnStartService.ts:1727:21)\n' +
      '    at OrchestrationEffectExecutorV2.execute (file:///home/user/wt/pr-32585/apps/server/src/orchestration-v2/EffectWorker.ts:786:14)\n' +
      '    at OrchestrationEffectExecutorV2.execute (definition) (file:///home/user/wt/pr-32585/apps/server/src/orchestration-v2/EffectWorker.ts:98:23)\n' +
      '    at serverActivation.forkParkedFiber (file:///home/user/wt/pr-32585/apps/server/src/serverRuntimeStartup.ts:394:30)\n' +
      '    at serverActivation.forkParkedFiber (definition) (file:///home/user/wt/pr-32585/apps/server/src/serverActivation.ts:12:39) {\n' +
      "  [cause]: ProviderAdapterProtocolError: pi provider protocol error: Pi model 'bare-slug' must use provider/model format.\n" +
      '      at protocolError (file:///home/user/wt/pr-32585/packages/provider-pi/src/server/adapter.ts:438:5)\n' +
      '      at file:///home/user/wt/pr-32585/packages/provider-pi/src/server/adapter.ts:2585:27\n' +
      '}'
  }
[13:53:54.935] WARN (#6697): Thread title generation failed
  {
    threadId: '7b67b863-88ad-4a09-ac58-f69d1efafe28',
    requestId: 'f6a17c41-2bce-4f58-b44e-96bed99d94f9',
    cause: "TextGenerationError: Text generation failed in generateThreadTitle: Pi model 'bare-slug' must use provider/model format.\n" +
      '    at Effect.fn.operation.operation (file:///home/user/wt/pr-32585/packages/provider-pi/src/server/textGeneration.ts:69:25)\n' +
      '    at Effect.fn.operation.operation.next (<anonymous>)\n' +
      '    at ThreadTitleRegenerationService.execute (file:///home/user/wt/pr-32585/apps/server/src/orchestration-v2/EffectWorker.ts:543:16)\n' +
      '    at ThreadTitleRegenerationService.execute (definition) (file:///home/user/wt/pr-32585/apps/server/src/orchestration-v2/ThreadTitleRegenerationService.ts:110:80)\n' +
      '    at OrchestrationEffectExecutorV2.execute (file:///home/user/wt/pr-32585/apps/server/src/orchestration-v2/EffectWorker.ts:786:14)\n' +
      '    at OrchestrationEffectExecutorV2.execute (definition) (file:///home/user/wt/pr-32585/apps/server/src/orchestration-v2/EffectWorker.ts:98:23)\n' +
      '    at serverActivation.forkParkedFiber (file:///home/user/wt/pr-32585/apps/server/src/serverRuntimeStartup.ts:394:30)\n' +
      '    at serverActivation.forkParkedFiber (definition) (file:///home/user/wt/pr-32585/apps/server/src/serverActivation.ts:12:39)\n' +
      '    at ServerRuntimeStartup.startEffectWorkerWithRelay (file:///home/user/wt/pr-32585/apps/server/src/serverRuntimeStartup.ts:552:9)\n' +
      '    at ServerRuntimeStartup.startEffectWorkerWithRelay (definition) (file:///home/user/wt/pr-32585/apps/server/src/serverRuntimeStartup.ts:387:50)\n' +
      '    at server.startup.orchestration-v2.effect-worker.start (file:///home/user/wt/pr-32585/apps/server/src/serverRuntimeStartup.ts:378:12)\n' +
      '    at serverRuntimeStartup.runOrderedV2StartupPhases (file:///home/user/wt/pr-32585/apps/server/src/serverRuntimeStartup.ts:534:62)'
  }
[13:53:55.908] INFO (#6929) http.span=6ms: Sent HTTP response
  http.method: POST
  http.url: /mcp
  http.status: 200
[13:53:55.934] INFO (#6935) http.span=3ms: Sent HTTP response
  http.method: POST
  http.url: /mcp
  http.status: 202
[13:53:55.967] INFO (#6938) http.span=28ms: Sent HTTP response
  http.method: POST
  http.url: /mcp
  http.status: 200
[13:53:56.534] ERROR (#6875): orchestration V2 provider turn start failed
  {
    runId: 'run:thread:b8f88451-1bae-4b27-88d1-0813eb17cb89:ordinal:1',
    cause: 'ProviderAdapterTurnStartError: Failed to start run run:thread:b8f88451-1bae-4b27-88d1-0813eb17cb89:ordinal:1 on pi provider thread provider-thread:provider:pi:native-thread:pending%3Arun%3Athread%3Ab8f88451-1bae-4b27-88d1-0813eb17cb89%3Aordinal%3A1.\n' +
      '    at file:///home/user/wt/pr-32585/packages/provider-pi/src/server/adapter.ts:2889:19\n' +
      '    at file:///home/user/wt/pr-32585/node_modules/.pnpm/effect@4.1.2/node_modules/effect/dist/internal/effect.js:152:23\n' +
      '    at Array.map (<anonymous>)\n' +
      '    at file:///home/user/wt/pr-32585/node_modules/.pnpm/effect@4.1.2/node_modules/effect/dist/internal/effect.js:149:33\n' +
      '    at file:///home/user/wt/pr-32585/node_modules/.pnpm/effect@4.1.2/node_modules/effect/dist/Function.js:79:18\n' +
      '    at PiAdapter.startTurn (file:///home/user/wt/pr-32585/apps/server/src/orchestration-v2/ProviderSessionManager.ts:2119:29)\n' +
      '    at PiAdapter.startTurn (definition) (file:///home/user/wt/pr-32585/packages/provider-pi/src/server/adapter.ts:2717:27)\n' +
      '    at RunExecutionService.startRootRun (file:///home/user/wt/pr-32585/apps/server/src/orchestration-v2/ProviderTurnStartService.ts:1674:27)\n' +
      '    at RunExecutionService.startRootRun (definition) (file:///home/user/wt/pr-32585/apps/server/src/orchestration-v2/RunExecutionService.ts:895:28)\n' +
      '    at ProviderTurnStartService.start (file:///home/user/wt/pr-32585/apps/server/src/orchestration-v2/EffectWorker.ts:143:16)\n' +
      '    at ProviderTurnStartService.start (definition) (file:///home/user/wt/pr-32585/apps/server/src/orchestration-v2/ProviderTurnStartService.ts:1727:21)\n' +
      '    at OrchestrationEffectExecutorV2.execute (file:///home/user/wt/pr-32585/apps/server/src/orchestration-v2/EffectWorker.ts:786:14)\n' +
      '    at OrchestrationEffectExecutorV2.execute (definition) (file:///home/user/wt/pr-32585/apps/server/src/orchestration-v2/EffectWorker.ts:98:23)\n' +
      '    at serverActivation.forkParkedFiber (file:///home/user/wt/pr-32585/apps/server/src/serverRuntimeStartup.ts:394:30)\n' +
      '    at serverActivation.forkParkedFiber (definition) (file:///home/user/wt/pr-32585/apps/server/src/serverActivation.ts:12:39) {\n' +
      "  [cause]: ProviderAdapterProtocolError: pi provider protocol error: Pi model '/leading' must use provider/model format.\n" +
      '      at protocolError (file:///home/user/wt/pr-32585/packages/provider-pi/src/server/adapter.ts:438:5)\n' +
      '      at file:///home/user/wt/pr-32585/packages/provider-pi/src/server/adapter.ts:2585:27\n' +
      '}'
  }
[13:53:59.550] WARN (#7074): Thread title generation failed
  {
    threadId: '7b67b863-88ad-4a09-ac58-f69d1efafe28',
    requestId: 'f395c75e-a17b-49c6-b580-5d89c46532ba',
    cause: "TextGenerationError: Text generation failed in generateThreadTitle: Pi model '/leading' must use provider/model format.\n" +
      '    at Effect.fn.operation.operation (file:///home/user/wt/pr-32585/packages/provider-pi/src/server/textGeneration.ts:69:25)\n' +
      '    at Effect.fn.operation.operation.next (<anonymous>)\n' +
      '    at ThreadTitleRegenerationService.execute (file:///home/user/wt/pr-32585/apps/server/src/orchestration-v2/EffectWorker.ts:543:16)\n' +
      '    at ThreadTitleRegenerationService.execute (definition) (file:///home/user/wt/pr-32585/apps/server/src/orchestration-v2/ThreadTitleRegenerationService.ts:110:80)\n' +
      '    at OrchestrationEffectExecutorV2.execute (file:///home/user/wt/pr-32585/apps/server/src/orchestration-v2/EffectWorker.ts:786:14)\n' +
      '    at OrchestrationEffectExecutorV2.execute (definition) (file:///home/user/wt/pr-32585/apps/server/src/orchestration-v2/EffectWorker.ts:98:23)\n' +
      '    at serverActivation.forkParkedFiber (file:///home/user/wt/pr-32585/apps/server/src/serverRuntimeStartup.ts:394:30)\n' +
      '    at serverActivation.forkParkedFiber (definition) (file:///home/user/wt/pr-32585/apps/server/src/serverActivation.ts:12:39)\n' +
      '    at ServerRuntimeStartup.startEffectWorkerWithRelay (file:///home/user/wt/pr-32585/apps/server/src/serverRuntimeStartup.ts:552:9)\n' +
      '    at ServerRuntimeStartup.startEffectWorkerWithRelay (definition) (file:///home/user/wt/pr-32585/apps/server/src/serverRuntimeStartup.ts:387:50)\n' +
      '    at server.startup.orchestration-v2.effect-worker.start (file:///home/user/wt/pr-32585/apps/server/src/serverRuntimeStartup.ts:378:12)\n' +
      '    at serverRuntimeStartup.runOrderedV2StartupPhases (file:///home/user/wt/pr-32585/apps/server/src/serverRuntimeStartup.ts:534:62)'
  }
[13:54:00.833] INFO (#7324) http.span=7ms: Sent HTTP response
  http.method: POST
  http.url: /mcp
  http.status: 200
[13:54:00.928] INFO (#7328) http.span=6ms: Sent HTTP response
  http.method: POST
  http.url: /mcp
  http.status: 202
[13:54:00.982] INFO (#7331) http.span=30ms: Sent HTTP response
  http.method: POST
  http.url: /mcp
  http.status: 200
[13:54:01.418] ERROR (#7267): orchestration V2 provider turn start failed
  {
    runId: 'run:thread:4d7831b7-a8d8-4b7f-96fb-e87ffb4d230f:ordinal:1',
    cause: 'ProviderAdapterTurnStartError: Failed to start run run:thread:4d7831b7-a8d8-4b7f-96fb-e87ffb4d230f:ordinal:1 on pi provider thread provider-thread:provider:pi:native-thread:pending%3Arun%3Athread%3A4d7831b7-a8d8-4b7f-96fb-e87ffb4d230f%3Aordinal%3A1.\n' +
      '    at file:///home/user/wt/pr-32585/packages/provider-pi/src/server/adapter.ts:2889:19\n' +
      '    at file:///home/user/wt/pr-32585/node_modules/.pnpm/effect@4.1.2/node_modules/effect/dist/internal/effect.js:152:23\n' +
      '    at Array.map (<anonymous>)\n' +
      '    at file:///home/user/wt/pr-32585/node_modules/.pnpm/effect@4.1.2/node_modules/effect/dist/internal/effect.js:149:33\n' +
      '    at file:///home/user/wt/pr-32585/node_modules/.pnpm/effect@4.1.2/node_modules/effect/dist/Function.js:79:18\n' +
      '    at PiAdapter.startTurn (file:///home/user/wt/pr-32585/apps/server/src/orchestration-v2/ProviderSessionManager.ts:2119:29)\n' +
      '    at PiAdapter.startTurn (definition) (file:///home/user/wt/pr-32585/packages/provider-pi/src/server/adapter.ts:2717:27)\n' +
      '    at RunExecutionService.startRootRun (file:///home/user/wt/pr-32585/apps/server/src/orchestration-v2/ProviderTurnStartService.ts:1674:27)\n' +
      '    at RunExecutionService.startRootRun (definition) (file:///home/user/wt/pr-32585/apps/server/src/orchestration-v2/RunExecutionService.ts:895:28)\n' +
      '    at ProviderTurnStartService.start (file:///home/user/wt/pr-32585/apps/server/src/orchestration-v2/EffectWorker.ts:143:16)\n' +
      '    at ProviderTurnStartService.start (definition) (file:///home/user/wt/pr-32585/apps/server/src/orchestration-v2/ProviderTurnStartService.ts:1727:21)\n' +
      '    at OrchestrationEffectExecutorV2.execute (file:///home/user/wt/pr-32585/apps/server/src/orchestration-v2/EffectWorker.ts:786:14)\n' +
      '    at OrchestrationEffectExecutorV2.execute (definition) (file:///home/user/wt/pr-32585/apps/server/src/orchestration-v2/EffectWorker.ts:98:23)\n' +
      '    at serverActivation.forkParkedFiber (file:///home/user/wt/pr-32585/apps/server/src/serverRuntimeStartup.ts:394:30)\n' +
      '    at serverActivation.forkParkedFiber (definition) (file:///home/user/wt/pr-32585/apps/server/src/serverActivation.ts:12:39) {\n' +
      "  [cause]: ProviderAdapterProtocolError: pi provider protocol error: Pi model 'trailing/' must use provider/model format.\n" +
      '      at protocolError (file:///home/user/wt/pr-32585/packages/provider-pi/src/server/adapter.ts:438:5)\n' +
      '      at file:///home/user/wt/pr-32585/packages/provider-pi/src/server/adapter.ts:2585:27\n' +
      '}'
  }
[13:54:03.735] WARN (#7473): Thread title generation failed
  {
    threadId: '7b67b863-88ad-4a09-ac58-f69d1efafe28',
    requestId: '26aeba94-e722-4b0a-be5f-60249338c944',
    cause: "TextGenerationError: Text generation failed in generateThreadTitle: Pi model 'trailing/' must use provider/model format.\n" +
      '    at Effect.fn.operation.operation (file:///home/user/wt/pr-32585/packages/provider-pi/src/server/textGeneration.ts:69:25)\n' +
      '    at Effect.fn.operation.operation.next (<anonymous>)\n' +
      '    at ThreadTitleRegenerationService.execute (file:///home/user/wt/pr-32585/apps/server/src/orchestration-v2/EffectWorker.ts:543:16)\n' +
      '    at ThreadTitleRegenerationService.execute (definition) (file:///home/user/wt/pr-32585/apps/server/src/orchestration-v2/ThreadTitleRegenerationService.ts:110:80)\n' +
      '    at OrchestrationEffectExecutorV2.execute (file:///home/user/wt/pr-32585/apps/server/src/orchestration-v2/EffectWorker.ts:786:14)\n' +
      '    at OrchestrationEffectExecutorV2.execute (definition) (file:///home/user/wt/pr-32585/apps/server/src/orchestration-v2/EffectWorker.ts:98:23)\n' +
      '    at serverActivation.forkParkedFiber (file:///home/user/wt/pr-32585/apps/server/src/serverRuntimeStartup.ts:394:30)\n' +
      '    at serverActivation.forkParkedFiber (definition) (file:///home/user/wt/pr-32585/apps/server/src/serverActivation.ts:12:39)\n' +
      '    at ServerRuntimeStartup.startEffectWorkerWithRelay (file:///home/user/wt/pr-32585/apps/server/src/serverRuntimeStartup.ts:552:9)\n' +
      '    at ServerRuntimeStartup.startEffectWorkerWithRelay (definition) (file:///home/user/wt/pr-32585/apps/server/src/serverRuntimeStartup.ts:387:50)\n' +
      '    at server.startup.orchestration-v2.effect-worker.start (file:///home/user/wt/pr-32585/apps/server/src/serverRuntimeStartup.ts:378:12)\n' +
      '    at serverRuntimeStartup.runOrderedV2StartupPhases (file:///home/user/wt/pr-32585/apps/server/src/serverRuntimeStartup.ts:534:62)'
  }
```

## What else changed

- F02 and F05 stop failing model selection; the exact structured pair survives slash-containing IDs.
- F06 changes which valid colliding pair is selected: first reported pair after, second pair before. Both reply, so the ACK/pair evidence is necessary.
- F10 refreshes the cached inventory on the newly selected slash slug and succeeds after a supported Pi extension reload. The late ordinary fallback control succeeds on both revisions.
- F11 adds a second best-effort inventory attempt in the initial adapter cache-miss/failure case. Both still fall back and reply with the ordinary pair. Recovery discovers inventory on both, while only after resolves the slash pair correctly.
- Background non-default generation now requests inventory before selection, including an injected error and malformed-slug paths. Its discovery error is swallowed and ordinary selection still succeeds.
- Malformed custom slugs remain rejected without selecting or prompting. The new inventory lookup increases adapter requests from one to two and helper requests from zero to one per invalid form.
- The real background title differs (`Pong response` before, `Pong Response Test` after). Both are successful generated titles; wording is nondeterministic. Failed malformed-title regeneration retains `F12-control` on both.
- No other behavioral difference was observed in these fixtures. IDs, timestamps, token usage and stack line numbers differ naturally. No UI path was exercised or changed.

## Unverified scope

No requested row is unverified. Optional reverse collision order and inventory timeout injection were not run; F06 uses the specified first-pair order, and F11 uses the allowed inventory protocol-error injection. This report makes no claim about UI, other providers, or background extension loading.

## Cleanup

Both final dev servers, their tracked descendants, all evidence Pi processes, and the alias proxy were stopped. Server and web ports were confirmed closed. The before worktree was removed with the requested `git worktree remove --force` command. The after checkout remains in place, clean, at the requested head. The capture-created `.t3` was removed after its redacted logs were uploaded. Free disk remained 107 GB. No raw evidence was deleted before upload.

## Friction

```text
FRICTION:
tool | Exploratory driver reused a project root and initially omitted required creation fields on follow-up messages | Use a scenario-specific root and the current RPC creation fields; both were corrected before the final fresh-database pass.
runbook | Pi 1.5.1 accepted direct late registration in an event handler but its RPC inventory/selection snapshot still omitted those models | Use the documented extension command and ctx.reload() path; final F10 captures that supported reload and real inventory refresh.
infra | Sending SIGINT to the exploratory dev runner left its web process and Node watcher children alive | Track the spawned process tree; the final supervisor recorded and stopped exact child PIDs, and ports were checked afterward.
```

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

## Evidence artifacts

[redacted-runtime-logs.zip](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/9b09abb46bfee46c/redacted-runtime-logs.zip)
[driver.mjs](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/d9558b9d1cbb0e23/driver.mjs)
[fixtures.ts](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/5199d35e2507cd96/fixtures.ts)
[pi-interposer.mjs](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/84f0d9ea9d2c2c15/pi-interposer.mjs)
[alias-proxy.mjs](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/9053d91d813ef641/alias-proxy.mjs)
[run-matrix.mjs](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/9b59080b40a17bd4/run-matrix.mjs)
[package-evidence.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/259c0738b1ae85c8/package-evidence.py)
[build-report.py](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/8121a7f7cae69cee/build-report.py)
