# Issue 7928 — final evidence index

Issue [#7928](https://git.cafe/pingdotgg/t3code/issues/7928). Before: [8acbefefc5](https://git.cafe/pingdotgg/t3code/commit/8acbefefc51b4d281dcd04108c82baa1ab902b0e). After: [751372650d](https://git.cafe/pingdotgg/t3code/commit/751372650dbc797dc1ece787dd03dd426c41437f). Exact final merge-base is the before SHA. Fixture commit [1380d6b1b3](https://git.cafe/pingdotgg/t3code/commit/1380d6b1b34765be8b970530c00896b69ab41a6c) is included in head. No implementation changes were made by this test agent. No push, PR, forge write, or watcher.

## Coverage and limits

11 matrix rows accounted for; 10 paired capture cells cover F1/F2/F3, with 20 recordings plus 20 whole-surface key frames and 20 diff images. F6 adds one head recovery recording and key frame (21 recordings total). This is useful web evidence, not complete matrix/native sign-off. F4, additional F5 variants, F7–F9 and native F10/F11 remain explicitly unverified/deferred below.

## Rendering and fixture conditions

- Product-native collaborative server browser; own tab, paired Default profile; Linux Chrome Headless Shell 154.0.0.0, desktop UA. Responsive 390 web is not native mobile.
- CSS viewports: 1440×900 and 390×844; devicePixelRatio=2; visualViewport.scale=1; root font=16px, default appearance/font settings, T3 Code theme. Explicit light/dark selected through Settings > Appearance.
- Browser snapshots save desktop at 1280×800 (scaled whole surface) and narrow at 780×1688. CSS viewport is independently measured. No crops or masked pixels in delivered frames/diffs.
- Same isolated .t3 app state, same project /tmp/issue-7928-repo, same draft 2cd73aaa-41a7-4f9b-b2f3-44bd08474406, Current checkout; main and feature have different committed example.txt; main has the conflicting tracked edit. No provider turn/message was started.
- Capture helper fixes Date/Date.now to 2026-10-22T01:25:00Z, scroll [0,0]. This fixes display dates, not browser timers/performance clock. Normal toast timeout still runs. Sidebar is closed in matched selected frames. Toolbar capture has Details closed; F2 has Details open, including its responsive overlay at 390.
- Captures were retried around normal server watch restarts, an exited lead dev session, and intermittent browser transport disconnects. Invalid expired-toast PNGs and connection-error attempts are excluded.
- One exception: F1 desktop light BEFORE key frame is extracted from its recording at approximately 8.5s because direct PNG repeatedly expired. Its 2880×1800 recording frame is normalized with Lanczos to 1280×800 for the pair/diff. Original path and video provenance remain in captures.json. Compression/resampling, cursor, and caret noise make its exact diff unsuitable for claiming an otherwise pixel-identical surface. Other final stills are saved browser PNGs.

## Paired cells

Diff0 = absolute RGB difference, amplified 8×, with no masking. DiffT = binary mask where max absolute RGB channel difference >16/255. Counts and bounding boxes are in delivered image pixels. Diff columns compare both listed SHAs. None of these comparisons is zero-diff.

| Cell | Before<br>[8acbefefc5](https://git.cafe/pingdotgg/t3code/commit/8acbefefc51b4d281dcd04108c82baa1ab902b0e) | After<br>[751372650d](https://git.cafe/pingdotgg/t3code/commit/751372650dbc797dc1ece787dd03dd426c41437f) | Diff0 ×8<br>[8acbefefc5](https://git.cafe/pingdotgg/t3code/commit/8acbefefc51b4d281dcd04108c82baa1ab902b0e) → [751372650d](https://git.cafe/pingdotgg/t3code/commit/751372650dbc797dc1ece787dd03dd426c41437f) | DiffT >16<br>[8acbefefc5](https://git.cafe/pingdotgg/t3code/commit/8acbefefc51b4d281dcd04108c82baa1ab902b0e) → [751372650d](https://git.cafe/pingdotgg/t3code/commit/751372650dbc797dc1ece787dd03dd426c41437f) |
|---|---|---|---|---|
| F1 1440×900 light | ![F1-1440-light-before.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/de02b78ecfd1be1d/F1-1440-light-before.png)<br>[Before recording](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/e631ae2d6640958b/F1-1440-light-before.mp4) | ![F1-1440-light-after.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/6b2caa1710b6c7c2/F1-1440-light-after.png)<br>[After recording](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/77b43e0f5fad65e7/F1-1440-light-after.mp4) | ![F1-1440-light-diff0-x8.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/d6d2627580fe3abe/F1-1440-light-diff0-x8.png) | ![F1-1440-light-diffT16.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/f9f964872b6a1d8c/F1-1440-light-diffT16.png) |
| F1 1440×900 dark | ![F1-1440-dark-before.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/457807be411a2865/F1-1440-dark-before.png)<br>[Before recording](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/47fc8672ae503bdd/F1-1440-dark-before.mp4) | ![F1-1440-dark-after.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/74f44fe9f87560d8/F1-1440-dark-after.png)<br>[After recording](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/904d0845c7decf4a/F1-1440-dark-after.mp4) | ![F1-1440-dark-diff0-x8.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/dffb2101bef27bd3/F1-1440-dark-diff0-x8.png) | ![F1-1440-dark-diffT16.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/c5298de2fea44c03/F1-1440-dark-diffT16.png) |
| F1 390×844 light | ![F1-390-light-before.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/6db26f6535c54ee9/F1-390-light-before.png)<br>[Before recording](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/02a4c2c26722d80b/F1-390-light-before.mp4) | ![F1-390-light-after.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/bd213354d857f4fd/F1-390-light-after.png)<br>[After recording](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/7910d5f1a91679dd/F1-390-light-after.mp4) | ![F1-390-light-diff0-x8.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/dd243a1c87a74c9c/F1-390-light-diff0-x8.png) | ![F1-390-light-diffT16.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/92ad13545d983f83/F1-390-light-diffT16.png) |
| F1 390×844 dark | ![F1-390-dark-before.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/c35a3756c165b640/F1-390-dark-before.png)<br>[Before recording](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/a68791fda198f36e/F1-390-dark-before.mp4) | ![F1-390-dark-after.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/80a8c123157a1b0a/F1-390-dark-after.png)<br>[After recording](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/ef8663905b76c277/F1-390-dark-after.mp4) | ![F1-390-dark-diff0-x8.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/cd97c8d61640ca91/F1-390-dark-diff0-x8.png) | ![F1-390-dark-diffT16.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/9f8ede639a539304/F1-390-dark-diffT16.png) |
| F2 1440×900 light | ![F2-1440-light-before.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/ca5786232aaab636/F2-1440-light-before.png)<br>[Before recording](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/799fcf9cccf1a261/F2-1440-light-before.mp4) | ![F2-1440-light-after.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/9788b2f4b92243cf/F2-1440-light-after.png)<br>[After recording](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/1027945aa5eb05d1/F2-1440-light-after.mp4) | ![F2-1440-light-diff0-x8.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/1aa9ce1f54f183b4/F2-1440-light-diff0-x8.png) | ![F2-1440-light-diffT16.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/7d984d791ae79054/F2-1440-light-diffT16.png) |
| F2 1440×900 dark | ![F2-1440-dark-before.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/4861805b8c8ec686/F2-1440-dark-before.png)<br>[Before recording](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/b8c3906859054095/F2-1440-dark-before.mp4) | ![F2-1440-dark-after.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/81e74b5afdbfc9ca/F2-1440-dark-after.png)<br>[After recording](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/8f2ba9178acc58f1/F2-1440-dark-after.mp4) | ![F2-1440-dark-diff0-x8.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/4556faa5d7131384/F2-1440-dark-diff0-x8.png) | ![F2-1440-dark-diffT16.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/feed7ae396cf0a88/F2-1440-dark-diffT16.png) |
| F2 390×844 light | ![F2-390-light-before.png](/tmp/issue-7928-evidence/F2-390-light-before.png)<br>[Before recording](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/afe472a77f3143f0/F2-390-light-before.mp4) | ![F2-390-light-after.png](/tmp/issue-7928-evidence/F2-390-light-after.png)<br>[After recording](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/2539f33a4252ba8a/F2-390-light-after.mp4) | ![F2-390-light-diff0-x8.png](/tmp/issue-7928-evidence/F2-390-light-diff0-x8.png) | ![F2-390-light-diffT16.png](/tmp/issue-7928-evidence/F2-390-light-diffT16.png) |
| F2 390×844 dark | ![F2-390-dark-before.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/677f0204e21f8b6f/F2-390-dark-before.png)<br>[Before recording](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/3da517397838c7b5/F2-390-dark-before.mp4) | ![F2-390-dark-after.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/f505323666a3fe65/F2-390-dark-after.png)<br>[After recording](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/8218a1c8f3fe1f71/F2-390-dark-after.mp4) | ![F2-390-dark-diff0-x8.png](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/8c091b3b6ab0d28f/F2-390-dark-diff0-x8.png) | ![F2-390-dark-diffT16.png](/tmp/issue-7928-evidence/F2-390-dark-diffT16.png) |
| F3 390×844 light | ![F3-390-light-before.png](/tmp/issue-7928-evidence/F3-390-light-before.png)<br>[Before recording](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/37ccec1227dbd4e7/F3-390-light-before.mp4) | ![F3-390-light-after.png](/tmp/issue-7928-evidence/F3-390-light-after.png)<br>[After recording](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/66ca3a143b967668/F3-390-light-after.mp4) | ![F3-390-light-diff0-x8.png](/tmp/issue-7928-evidence/F3-390-light-diff0-x8.png) | ![F3-390-light-diffT16.png](/tmp/issue-7928-evidence/F3-390-light-diffT16.png) |
| F3 390×844 dark | ![F3-390-dark-before.png](/tmp/issue-7928-evidence/F3-390-dark-before.png)<br>[Before recording](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/04191b396024cb28/F3-390-dark-before.mp4) | ![F3-390-dark-after.png](/tmp/issue-7928-evidence/F3-390-dark-after.png)<br>[After recording](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/3ecbd56f2bb81489/F3-390-dark-after.mp4) | ![F3-390-dark-diff0-x8.png](/tmp/issue-7928-evidence/F3-390-dark-diff0-x8.png) | ![F3-390-dark-diffT16.png](/tmp/issue-7928-evidence/F3-390-dark-diffT16.png) |

## Observed results and every visible difference

- F1/F2 intended: title remains `Failed to switch ref.`; operation/cwd prefix and generic `git checkout failed` are replaced by `Your local changes would be overwritten by switching branches. Commit, stash, or discard them, then switch again.` The complete sentence is visible at both widths/themes. Ref label returns to main; fixture edit remains present. F2 recordings use search feature, ArrowDown, Enter; toolbar recordings use mouse selection.
- F3 intended: stale Create new ref row, then CLI creates evidence-create-race before clicking that row. This produces real createRef failure with branch_already_exists. Before contains GitVcsDriver.createRef and fixture path; after shows `git branch create failed (branch_already_exists)`. Reason appears once in both. Toast description shrinks from three lines to one at 390, reducing toast height 108→68 CSS px and moving its copy control/shadow. No fabricated error, transport override, harness or source edit was used. Temporary branch removed after each attempt.
- F1/F2 cell differences restricted to description glyphs/line wrapping where diff bounds are confined to the toast. F1 narrow dark additionally differs at the effort-button hover/focus background. F3 light additionally differs at the prompt caret, effort-button hover background, and low-level composer shadow/edge rasterization. F3 dark additionally has low-level toast shadow/edge rasterization outside its text. These are incidental capture differences, not intended implementation effects.
- F1 desktop light additionally has recording compression/resampling noise across header, composer, text edges and shadows, a visible pointer in the baseline recording frame, and prompt-caret differences. It has matching underlying layout but is not a strict identical-raster pair. No blanket “nothing else changed” assertion is made.

| Cell | Pixels changed at 0 | Pixels changed >16 | Diff0 bounding box | Interpretation |
|---|---:|---:|---|---|
| F3-390-dark | 132623 / 1316640 | 15165 | [0, 193, 780, 434] | Toast plus incidental differences listed above |
| F2-390-dark | 16012 / 1316640 | 13610 | [62, 214, 628, 320] | Toast text |
| F2-1440-light | 4311 / 1024000 | 3440 | [945, 109, 1197, 157] | Toast text |
| F2-390-light | 16172 / 1316640 | 14028 | [62, 214, 628, 320] | Toast text |
| F3-390-light | 143022 / 1316640 | 77916 | [0, 193, 780, 1039] | Toast plus incidental differences listed above |
| F1-1440-dark | 4244 / 1024000 | 3203 | [945, 109, 1197, 157] | Toast text |
| F2-1440-dark | 4244 / 1024000 | 3185 | [945, 109, 1197, 157] | Toast text |
| F1-390-dark | 16110 / 1316640 | 13709 | [50, 214, 709, 960] | Toast plus incidental differences listed above |
| F1-390-light | 16172 / 1316640 | 14031 | [62, 214, 628, 320] | Toast text |
| F1-1440-light | 50264 / 1024000 | 8817 | [12, 11, 1280, 501] | Toast plus incidental differences listed above |

## Interaction steps and timestamps

Times below are capture-host UTC timestamps, not the frozen display clock. Recordings include real asynchronous failure and return to main. They do not establish deterministic initial-loading, pagination, or duplicate-action gating; those are F7 gaps.

- **F1 390 dark after**: 2026-10-22T01:46:36.355Z: recording start; 2026-10-22T01:46:38.831Z: picker opened; 2026-10-22T01:46:41.351Z: selection submitted; 2026-10-22T01:46:47.319Z: hovered toast to retain it; 2026-10-22T01:46:48.236Z: error frame; 2026-10-22T01:46:48.822Z: recording stop.
- **F1 390 dark before**: 2026-10-22T01:53:59.908Z: recording start; 2026-10-22T01:54:01.609Z: picker opened; 2026-10-22T01:54:03.724Z: selection submitted; 2026-10-22T01:54:06.626Z: hover toast; 2026-10-22T01:54:07.550Z: error frame; 2026-10-22T01:54:08.642Z: recording stop.
- **F1 390 light after**: 2026-10-22T01:55:48.450Z: recording start; 2026-10-22T01:55:51.026Z: picker opened; 2026-10-22T01:55:52.232Z: selection submitted; 2026-10-22T01:55:54.524Z: hover toast; 2026-10-22T01:55:55.510Z: error frame; 2026-10-22T01:55:56.641Z: recording stop.
- **F1 390 light before**: 2026-10-22T01:53:21.749Z: recording start; 2026-10-22T01:53:22.931Z: picker opened; 2026-10-22T01:53:24.239Z: selection submitted; 2026-10-22T01:53:25.629Z: hover toast; 2026-10-22T01:53:26.048Z: error frame; 2026-10-22T01:53:26.639Z: recording stop.
- **F1 1440 dark after**: 2026-10-22T01:35:08.831Z: recording start; 2026-10-22T01:35:09.920Z: picker opened; 2026-10-22T01:35:13.124Z: selection submitted; 2026-10-22T01:35:14.434Z: error frame; 2026-10-22T01:35:14.744Z: recording stop.
- **F1 1440 dark before**: 2026-10-22T01:37:10.851Z: recording start; 2026-10-22T01:37:14.538Z: picker opened; 2026-10-22T01:37:25.941Z: selection submitted; 2026-10-22T01:37:32.412Z: error frame; 2026-10-22T01:38:28.814Z: recording stop.
- **F1 1440 light after**: 2026-10-22T01:50:37.636Z: recording start; 2026-10-22T01:50:40.328Z: picker opened; 2026-10-22T01:50:49.111Z: selection submitted; 2026-10-22T01:50:50.538Z: pointer placed over notification area; 2026-10-22T01:50:56.347Z: error frame; 2026-10-22T01:51:00.414Z: recording stop.
- **F1 1440 light before**: 2026-10-22T02:00:58.928Z: recording start; 2026-10-22T02:01:00.612Z: picker opened; 2026-10-22T02:01:02.152Z: selection submitted; 2026-10-22T02:01:07.944Z: hover toast; 2026-10-22T02:01:08.948Z: error frame; 2026-10-22T02:01:09.624Z: recording stop.
- **F2 390 dark after**: 2026-10-22T01:33:22.644Z: recording start; 2026-10-22T01:33:25.732Z: picker opened; 2026-10-22T01:33:27.328Z: search entered; 2026-10-22T01:33:30.312Z: selection submitted; 2026-10-22T01:33:34.753Z: error frame; 2026-10-22T01:33:37.521Z: recording stop.
- **F2 390 dark before**: 2026-10-22T01:39:52.915Z: recording start; 2026-10-22T01:39:55.520Z: picker opened; 2026-10-22T01:39:56.220Z: search entered; 2026-10-22T01:39:58.215Z: selection submitted; 2026-10-22T01:40:02.423Z: error frame; 2026-10-22T01:40:03.213Z: recording stop.
- **F2 390 light after**: 2026-10-22T01:34:34.213Z: recording start; 2026-10-22T01:34:35.225Z: picker opened; 2026-10-22T01:34:35.440Z: search entered; 2026-10-22T01:34:35.952Z: selection submitted; 2026-10-22T01:34:37.226Z: error frame; 2026-10-22T01:34:37.446Z: recording stop.
- **F2 390 light before**: 2026-10-22T01:42:24.530Z: recording start; 2026-10-22T01:42:26.446Z: picker opened; 2026-10-22T01:42:29.719Z: search entered; 2026-10-22T01:42:33.465Z: selection submitted; 2026-10-22T01:42:39.653Z: error frame; 2026-10-22T01:42:43.832Z: recording stop.
- **F2 1440 dark after**: 2026-10-22T01:35:17.655Z: recording start; 2026-10-22T01:35:19.008Z: picker opened; 2026-10-22T01:35:19.409Z: search entered; 2026-10-22T01:35:20.343Z: selection submitted; 2026-10-22T01:35:23.925Z: error frame; 2026-10-22T01:35:24.521Z: recording stop.
- **F2 1440 dark before**: 2026-10-22T01:38:43.454Z: recording start; 2026-10-22T01:38:44.864Z: picker opened; 2026-10-22T01:38:46.648Z: search entered; 2026-10-22T01:38:49.932Z: selection submitted; 2026-10-22T01:38:55.844Z: error frame; 2026-10-22T01:38:56.240Z: recording stop.
- **F2 1440 light after**: 2026-10-22T01:34:16.359Z: recording start; 2026-10-22T01:34:17.345Z: picker opened; 2026-10-22T01:34:17.559Z: search entered; 2026-10-22T01:34:19.126Z: selection submitted; 2026-10-22T01:34:20.427Z: error frame; 2026-10-22T01:34:21.038Z: recording stop.
- **F2 1440 light before**: 2026-10-22T01:41:32.715Z: recording start; 2026-10-22T01:41:34.241Z: picker opened; 2026-10-22T01:41:36.519Z: search entered; 2026-10-22T01:41:37.532Z: selection submitted; 2026-10-22T01:41:41.851Z: error frame; 2026-10-22T01:41:47.955Z: recording stop.
- **F3 390 dark after**: 2026-10-22T01:32:22.724Z: recording start; 2026-10-22T01:32:24.743Z: picker opened; 2026-10-22T01:32:25.255Z: search entered; 2026-10-22T01:32:28.225Z: CLI created branch while stale Create row remained open; 2026-10-22T01:32:30.137Z: selection submitted; 2026-10-22T01:32:32.525Z: error frame; 2026-10-22T01:32:32.827Z: recording stop.
- **F3 390 dark before**: 2026-10-22T01:40:07.945Z: recording start; 2026-10-22T01:40:10.731Z: picker opened; 2026-10-22T01:40:12.247Z: search entered; 2026-10-22T01:40:16.042Z: CLI created branch while stale Create row remained open; 2026-10-22T01:40:17.743Z: selection submitted; 2026-10-22T01:40:20.638Z: error frame; 2026-10-22T01:40:21.256Z: recording stop.
- **F3 390 light after**: 2026-10-22T01:34:39.431Z: recording start; 2026-10-22T01:34:40.253Z: picker opened; 2026-10-22T01:34:40.522Z: search entered; 2026-10-22T01:34:41.350Z: CLI created branch while stale Create row remained open; 2026-10-22T01:34:42.142Z: selection submitted; 2026-10-22T01:34:43.123Z: error frame; 2026-10-22T01:34:43.424Z: recording stop.
- **F3 390 light before**: 2026-10-22T01:57:09.716Z: recording start; 2026-10-22T01:57:10.916Z: picker opened; 2026-10-22T01:57:11.438Z: search entered; 2026-10-22T01:57:13.718Z: CLI created branch while stale Create row remained open; 2026-10-22T01:57:14.755Z: selection submitted; 2026-10-22T01:57:17.022Z: hover toast; 2026-10-22T01:57:17.439Z: error frame; 2026-10-22T01:57:18.033Z: recording stop.

## Matrix accounting

| Row | Status | Evidence / reason |
|---|---|---|
| F1 | Captured with qualification | Four before/after cells, real toolbar; desktop light baseline uses recording frame/resolution normalization as disclosed. |
| F2 | Captured | Four before/after cells, real Details selector; responsive panel used at 390. |
| F3 | Captured | Two before/after narrow theme cells; actual stale Create row / branch-already-exists race. |
| F4 | Cannot verify here | Native desktop clipboard/context-menu bridge inaccessible in this web browser. Ordinary Error.message behavior is unchanged. No new UI infrastructure was built. |
| F5 | Partial | Decoded structured GitCommandError without reason is proven through real F1/F2 server wire; reason-bearing decoded error through F3. Ordinary Error and unknown/null fallback are unchanged by helper relocation and were not separately captured. Artificial >=180-char detail/four-line-clamp fixture unverified; no harness built. |
| F6 | Captured on head, partial | [Recovery recording](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/7ca3476288056565/F6-recovery-after.mp4); blocked checkout, dismiss, stash edit, reopen/retry, successful feature label. Copy affordance not exercised. Fixture restored after recording. |
| F7 | Unverified | Deterministic refs loading/pagination/interruption/duplicate gating not exercised; excessive for focused capture pass; no timing injection/harness. |
| F8 | Unverified | Remote/worktree/origin/null/long-name variants not exercised. No permissions or auth restriction fixture was manufactured. Standard isolated browser pairing recovery only. |
| F9 | Unverified | Separate untracked-collision and other checkout-error fixture not captured. No claim that tracked guidance fixes untracked overwrites. |
| F10 | Deferred | Native mobile is outside original web+desktop scope. Responsive web is not native-app evidence. |
| F11 | Unverified | Native Electron shell/context menu/clipboard requires dispatcher-prepared desktop host. Shared React web captures do not verify native bridge. |

F6 recovery key frame:

![F6-recovery-after.png](/tmp/issue-7928-evidence/F6-recovery-after.png)

Recovery timestamps: 2026-10-22T02:02:39.818Z: record start; 2026-10-22T02:02:45.220Z: blocked checkout / rollback; 2026-10-22T02:02:47.812Z: dismiss notification; 2026-10-22T02:02:51.609Z: temporarily stash tracked edit; 2026-10-22T02:02:55.721Z: retry succeeded feature label.

## Reproduction and final state

- Committed fixture utility: [seed-branch-checkout-conflict.mjs](https://git.cafe/pingdotgg/t3code/src/commit/751372650dbc797dc1ece787dd03dd426c41437f/scripts/seed-branch-checkout-conflict.mjs). Run with Node; it creates a fresh temp repo and prints an expression for the paired isolated browser. Expression calls supported projects.mutate RPC with a fresh project ID and no auth changes. Then New thread > fixture project > Current checkout > feature. Never submits a message.
- Utility executed successfully to create its disposable Git repo; node --check passed. Same supported projects.mutate envelope was exercised against the running isolated app and returned ProjectConflictError for its already-registered fixture root, establishing request decoding/dispatch. Fresh project creation from the printed expression was not run; app fixture project was pre-seeded by lead.
- Lead reported post-merge focused tests passed: 181 tests / 2 files, exit 0, 340.89s. This test agent did not rerun repo-wide checks.
- Worktree returned to fix/issue-7928 at final head, clean. /tmp/issue-7928-repo returned to main with its original edit, no stashes, SHA-256 example.txt = 16efb9fd9a8b3f3a5883d34ae410e856697893449bca6c819d1111f996296c97. No dev server was spawned/stopped by this agent. Lead owns teardown.

## FRICTION

| category | what | avoid |
|---|---|---|
| browser | Intermittent server-browser disconnects and delayed calls; direct PNG sometimes saved after toast expiry | Keep wait+snapshot adjacent, validate actual saved pixels, retry native status/open recovery, exclude invalid attempts |
| timing | Finishing all Web Animations can finish toast exit/entry and invalidate frames | Use normal UI hover; never force all animations for proof |
| raster | Snapshot desktop export is scaled; recording frame uses DPR resolution | Record CSS viewport and export dimensions separately; disclose normalization/noise |
| state | Sidebar automatically reopens when crossing responsive breakpoint | Check sidebar after resize, then compare whole-surface diff |
| platform | Native desktop clipboard bridge and native clients unavailable here | Keep explicit native gaps; do not relabel responsive web as mobile |
| scope | Additional long/artificial errors and broad regressions remain unverified | Focus real changed render paths; preserve explicit gaps rather than claiming full sign-off |
