# Remote delegated-task follower proof

This driver runs two real T3 servers and a Chromium web client, with fresh synthetic projects, normal peer pairing, real MCP delegation, and free ACP replay agents. Each commit serves its own production web build. No unit or integration test is used as evidence.

The Node loader injects `Effect.die(new Error("controlled-internal-defect-detail"))` at the beginning of `RemoteDelegation.followOnce`, before its event-sequence read. It injects either one defect or three consecutive defects. Production retry delays and all result/wake handling are unchanged. Base stops after its first defect; head retries.

The loader also saves the replay provider's own MCP credential locally for the driver. It does not change authorization or invocation scopes. These credential files are not part of the evidence upload.

The parent replay agent holds its first response until delegation is accepted, then says it is waiting and ends its turn. Only a real subsequent prompt makes it print “Parent resumed after delegated task completion.” For repeated defects, it also prints the failure sentence extracted from that real continuation prompt. The remote replay agent delays its recorded turn by 12 seconds. Snapshots are read through authenticated HTTP after the same 20-second observation window on both commits.

Captures use Chromium, 1280×800, light theme. Infinite CSS animations are paused only while taking the final pair of stills, then resumed. Each retained still follows a byte-identical capture at least 500 ms earlier. Recordings retain the actual transition and are trimmed from the loaded thread to just after the final capture; no result frames are synthesized.

## Files

Put `remote-follower-defect.e2e.ts` and `start-proof-app.ts` in `scripts/scenarios/`, and use the supplied `e2e.config.ts` at `scripts/e2e.config.ts`. Keep `fault-loader.mjs` outside the checkout.

Create separate head and base worktrees. Run `vp i` and `vp run --filter=@t3tools/web build` in each. The base is the merge-base of the fixed commit with main.

From the driver checkout's `scripts/` directory, run the same command for each app checkout and defect count:

```bash
export T3_PROOF_SCRATCH="$(mktemp -d)"
export T3CODE_DEV_SEED=0
export E2E_TELEMETRY_DISABLED=1
export NODE_OPTIONS="--import=$FAULT_LOADER"
export T3_SCENARIO_INHERIT_ENV=NODE_OPTIONS,T3CODE_DEV_SEED,T3_PROOF_SCRATCH
T3_SCENARIO_APP_DIR="$APP_CHECKOUT" T3_PROOF_DEFECT_COUNT=3 \
  node_modules/.bin/e2e run scenarios/remote-follower-defect.e2e.ts --target web --output .e2e/repeated
```

Run again with `T3_PROOF_DEFECT_COUNT=1` and a different output directory. Every run recreates its own app T3 home and creates a separate remote T3 home. The driver stops both servers. Do not upload the scratch directory: it includes ephemeral credentials and raw server logs. The uploaded observations contain only synthetic task results, run states, replay messages, and injected-defect counts.

Model and harness: gpt-6.1-sol through Codex.
