# Delegated-result evidence

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

Environment for every recording: Linux web development app, Chromium preview browser, 1440 × 1000 CSS viewport at 2× device scale, dark theme. Separate unmodified worktrees and independent synthetic databases for [base d290c1f1](https://git.cafe/pingdotgg/t3code/commit/d290c1f1b6c93416dfda6c9f7cd15d928a9aeb4c) and [head 714c5b23](https://git.cafe/pingdotgg/t3code/commit/714c5b23b0ece3e023baf2bcfbaa9fc50f6a0b6d). Each ran its own `T3CODE_DEV_SEED=0 vp run dev`. No live database was used. Application code and orchestration state were not patched.

The synthetic provider implements the real ACP protocol and calls the running server's MCP delegation tools. It emits deterministic provider events through the production adapter. This is a protocol fixture, not a live language model. Its background scenario starts a real shell subprocess, returns an initial final reply, then emits the native background-command completion and follow-up reply. The app's normal adapter, orchestrator, persistence and web UI handle all of these events. Recordings contain the product UI, not a terminal or driver conclusions. Parent replies quote the wake prompt the provider received, exposing the follow-up label.

## Reproduce

Put the scripts in one artifacts directory. In each checkout, install dependencies with `vp i`. Configure the fixture before starting its server:

```sh
python3 configure-evidence.py --checkout "$CHECKOUT" --artifacts "$ARTIFACTS" --mode approval-required
cd "$CHECKOUT"
T3CODE_DEV_SEED=0 EVIDENCE_DIR="$ARTIFACTS" vp run dev
```

From a second terminal in that checkout:

```sh
node apps/server/src/bin.ts project add --base-dir .t3 --title 'Delegation evidence' "$ARTIFACTS/synthetic-project"
python3 "$ARTIFACTS/seed-evidence.py" --checkout "$CHECKOUT" --project "$ARTIFACTS/synthetic-project" --output-dir "$ARTIFACTS/runs" --scenario restart
```

The seeder prints a new timestamped directory containing synthetic thread IDs. Open each thread in the real app at its dev origin, followed by the environment ID and URI-encoded thread ID. Pair the preview browser through the dev server's normal pairing flow. Never upload pairing credentials. Collapse the left sidebar. Keep the same viewport, theme and right-sidebar layout on both commits.

Restart sequence: inspect the thirteen threads in this order: assistant answer, reasoning, dynamic tool, command execution, file search, web search, file change, task list, proposed plan, provider-native subagent, user-input request, approval request, no output. Each parent has delegated a check. Its first completion delivery produces exactly the named output and stays unfinished. The no-output case emits no provider item. Stop the dev server with Ctrl-C and restart it with the same command and existing isolated database. Inspect the same threads in the same order. Do not answer the input or approval request. Ordinary restart continuations are shown separately by the app. The evidence is the repeated delegated-task notification and task/result in the conversation, rather than the ordinary continuation. The no-output case must retry on BOTH commits; its second notification is expected.

Background repeat: use `--scenario repeat` instead of restart. The child returns “Synthetic check passed: 7 files checked.” while a shell command runs in the background. Its completion wakes the child, which repeats that reply with no parent or user message. Observe the parent's conversation until settled. Both commits retain the second child result. Only the base adds another parent reply to the same result. The parent-only recording uses a 12-second background command. The additional child-to-parent walkthrough uses 30 seconds, views the child's first reply and command completion, then returns to the parent. Set `EVIDENCE_BACKGROUND_SECONDS=30` when starting the server to reproduce that walkthrough.

Changed follow-up: use `--scenario changed`. After the background command, the child returns “Synthetic check updated: 8 files checked.” Both commits wake the parent. Read the second parent reply: only the head's received wake includes “a follow-up of task … after the child ran again” with the original task ID.

Requested-repeat controls: after the repeat scenario settles, type `Ask child repeat` into the parent's composer and submit. The parent sends a child message asking for the same result. Both commits wake the parent. Next open that child, type `Repeat the same result at my request.` and submit, then return to the parent. Both commits wake it again. The head labels both as follow-ups of the original task. These controls used full-access mode on both commits; restart cases used approval-required mode so a real pending approval could be displayed.

## Recording and inspection

Captured using the browser's recording tools while navigating, typing and restarting the real servers. Videos retain real timing, including navigation and reconnect delays. Uniform privacy crop: source 2880 × 2000, crop 2100 × 2000 at x=80,y=0, resize to 1260 × 1200. This removes the machine sidebar without hiding the conversation or composer. No conclusions were composited into the recordings. Each background walkthrough appends a later recording of the settled parent view after a cut; no actions or results were synthesized. Every output video was decoded and its interaction and final-state frames visually inspected before upload. Loading frames during navigation are not the results; use the chapter guide to find the rendered cases.

`observations.json` is an additional read-only synthetic projection summary, not the visual proof. It counts only notifications whose source is `delegated_task`; ordinary restart notices are excluded. All twelve output cases have two completion notifications on the base and one on the head. The no-output control has two on both.

No test results are offered as evidence. Desktop, mobile and a live external provider were not exercised; this proof covers the shared server behavior through the real web client and deterministic protocol fixture.
