# Linked handshake reproduction

Fresh synthetic data; Chromium 156, Linux, light theme, 1280×800. Two real source servers per run. The deterministic ACP agent makes the real t3_thread_list MCP call using its injected thread credential; it does not synthesize a tool response. The proxy forwards descriptors throughout and withholds one handshake response per stage.

Place linked-handshake.e2e.ts and start-app.ts in scripts/scenarios, and e2e.config.ts in scripts. These fixture changes enable Linked environments and select only web. Install with vp i. Run from scripts with E2E_TELEMETRY_DISABLED=1 T3CODE_DEV_SEED=0 T3_SCENARIO_APP_DIR=<checkout> ./node_modules/.bin/e2e run scenarios/linked-handshake.e2e.ts --target web --output .e2e/handshake-proof. Use a fresh output directory for each run. Base exits 1 on the timeout assertion; head exits 0.

Videos retain both complete handshake interactions and Settings reloads; startup before the initial linked status is trimmed. Settings stills were byte-identical to a second screenshot taken 500 ms apart. Runtime observations contain only synthetic outcomes. The long-call check delays an established tools/call response by 4.5 seconds.

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