Evidence driver for issue 34280

Prerequisites: two disposable checkouts at the base/head commits, vp i in each,
provider CLIs authenticated, and private runtime model identifiers passed as arguments.
This is real server/CLI evidence, with no mock provider or projection injection.

1. Run instrument.py with both checkout directories. It only observes CLI MCP
   responses and provider credentials; adapter and projection logic are unchanged.
2. Create a fresh scratch root with repo/, before/home/userdata/, after/home/userdata/.
   Initialize repo/ with an empty git commit. Each settings.json under userdata/ is:
   {"providerInstances":{"pi":{"driver":"pi","enabled":true,"config":{"enabled":true}}}}
3. From each checkout's apps/server directory start:
   T3CODE_DEV_SEED=0 PROOF_CREDENTIALS=<side>/credentials.jsonl node src/bin.ts serve
     --base-dir <side>/home --port <separate-free-port> <scratch>/repo
   Add the repo with node src/bin.ts project add --base-dir <side>/home <scratch>/repo.
4. Direct reproduction for both providers:
   PROOF_RAW=<private-output> node src/bin.ts thread start --base-dir <side>/home
     --provider <codex-or-pi> --model <private-model> --wait --json <scratch>/repo
     "Reply with the single word OK."
5. Create one initial Codex thread as above, to create credentials.jsonl.
   From apps/server run active-driver.mjs with arguments:
     <side>/home <side>/credentials.jsonl <private-output.json>
     <private-codex-model> <private-pi-model>
   Keep mcp-driver.mjs beside active-driver.mjs. The active driver keeps a real
   parent turn alive with a shell sleep, then reads both completed child tasks.
   The MCP driver calls capabilities once, delegates Codex and Pi with mode=wait,
   then captures raw task_status and t3_thread_read(runLimit=1) responses.
6. Inspect outputs privately. Redact all runtime model identifiers, credentials,
   machine names and internal paths before sharing any output. Null must remain null.
   Published transcript files contain selected raw structuredContent fields.
7. Stop spawned servers by their tracked PIDs; remove disposable state/checkouts.

The parent must be active for delegate_task. An idle parent is rejected by the
real server. The parent shell delay is only a fixture, not part of the bug.
The comparison concerns terminal model metadata, not streaming or timing.

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