# Sidebar terminal toggle evidence

Both sides: Linux Chromium web client, 1280x800, dark appearance, separate dev servers and fresh worktree databases (`T3CODE_DEV_SEED=0 vp run dev`). No copied user data and no provider turns.

1. Apply `python3 instrument.py CHECKOUT` to each checkout before loading the app. This imports the repository's existing React DevTools fiber counter before React starts. The counter hook is installed unconditionally so the browser's pre-existing hook cannot prevent measurement. No application behavior code is changed.
2. Add the same synthetic project with `node apps/server/src/bin.ts project add --base-dir .t3 --title 'Sidebar render demo' SYNTHETIC_DIRECTORY`. Pair each browser through its server's pairing token. Set `window.evidenceProjectId` to the returned project ID and evaluate `seed.js` in each browser. It creates 30 named empty threads through the real orchestration RPC. One automatic server project/thread also exists on both sides, giving 31 mounted row wrappers.
3. Evaluate `jump-bindings.js` on both sides. Default numbered jumps are desktop-only; these explicit web bindings use Ctrl+1 through Ctrl+9 when `!terminalFocus && !modelPickerOpen && isWeb`.
4. Evaluate `driver.js` in each page. Run once to initialize the terminals, then record a second identical pass. Start recording before invoking the driver without awaiting its promise (the browser tool's 15-second call deadline is shorter than the sequence).
5. The driver selects Demo task 30, then Demo task 29. For each, it counts six Ctrl+J toggles, with Control held for 70 ms and one second between toggles. Navigation is outside the measured windows. It then holds Control for 1.6 seconds, releases it, and holds again while opening/focusing the terminal. Events are scripted DOM KeyboardEvents delivered to the active element and bubbling to the app's real shortcut handlers.
6. The overlay reports committed Sidebar and SortableThreadRow renders using the repository's fiber traversal, not DOM mutation counts. It does not count its own DOM updates. Terminal output and runtime selectors are hidden identically for privacy; the real terminal drawer and its focus behavior remain active.

Observed: initialized base has 24 Sidebar / 744 SortableThreadRow renders per six-toggle window, on both tasks. Initialized head has zero of both on both tasks. Hints appear after the hold and disappear on release or terminal focus on both sides.

The first head run also observed one Sidebar render / 31 row-wrapper renders during initial terminal creation on task 30; task 29 had zero. That first-run recording is included separately. These captures demonstrate repeated terminal toggles, not elimination of every possible sidebar update during initial terminal creation. No claim about frame latency, macOS, Electron shell behavior, arbitrary custom shortcut expressions, or preview-focus conditions is made.

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