# Composer list evidence for [#17138](https://github.com/pingdotgg/t3code/pull/17138)

Issue: [#17124](https://git.cafe/pingdotgg/t3code/issues/17124). Recording correction completed within its fresh 30-minute budget. No public PR/issue write, push, label, or merge was performed.

Before production: [044f07257c](https://github.com/pingdotgg/t3code/commit/044f07257c9684ae4543bd1e1ebf9c394e9e3830). After implementation: [53ba38bb47](https://github.com/pingdotgg/t3code/commit/53ba38bb471143f27889e4b033f8abdc27904889). Earlier fixture-only head: [03613cb5d8](https://git.cafe/pingdotgg/t3code/commit/03613cb5d8a5d4ee95912585ccfcf46c850bde83) (fixture-only commit). Production code is byte-identical to the After implementation. The replacement Before captures temporarily replaced only the helper at the fixed integrated head. All other web production files match Before; the web test file also differs. Backend files remain those of the integrated head. Helper restored and worktree clean.

Final integrated head: [ae038086a6](https://github.com/pingdotgg/t3code/commit/ae038086a6614538833351eda489e8fb4db3e05e), merging current main [22840ab943](https://github.com/pingdotgg/t3code/commit/22840ab943). Main added no web changes; captured production composer bytes remain identical.

## Coverage and environment

16/16 replacement recordings; 80/80 A–E matrix cells checked in actual encoded frames, including 208/208 X demonstrations and 176/176 seed states. Rich/plain × 1440×900/390×844 CSS px × light/dark × Before/After. No missing matrix rows. D prefix offset is plain-only; rich uses its reachable start-of-content caret, as planned. All canonical starting texts matched the requested text; rich prefix caret position normalized structurally. Original still-capture per-operation text and caret observations: [observations.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/aa3162ce86cf2106/observations.json). Pixel counts and image dimensions: [metrics.json](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/0d073345e0200739/metrics.json).

Retained isolated server: localhost:6215, backend 14255, home /home/ubuntu/wt/issue-17124/.t3. No servers started/stopped. Own T3 preview tab, paired through pair --base-dir against this home; no tokenized capture URLs. Chrome 154 on Linux x86_64, zoom 1, DPR 2, default system font (-apple-system/BlinkMacSystemFont/Segoe UI/system-ui/sans-serif), fonts ready before capture. Recordings retain the whole surface at 2880×1800 and 780×1688 physical px. The preview screenshot transport downscales desktop PNGs to 1280×800; mobile PNGs remain 780×1688. Matching stills/diffs use these exact returned dimensions. Browser timestamp formatter fixed to 12:00 UTC; server clock unchanged.

Each final sequence starts from a fresh identical empty synthetic thread fixture (different durable IDs, recorded in observations) rather than reusing one ID after sending. This is a deviation from literal same-thread-ID reuse; it keeps history, title, project, checkout, and fixtures identical at sequence start. Sidebars collapsed/offscreen. Earlier draft-only, expanded-sidebar, and incorrect-theme attempts were superseded and excluded from upload.

Chapter A dispatches the canonical current draft with defer_start, then interrupts with holdQueue=true. This uses real guarded app commands and the real message renderer, but bypasses the Submit button to avoid a real provider. Persisted projections for all 16 final threads confirm interrupted status, startedAt=null, and zero providerTurns. Before message DOM is one ordered list with two sibling items; After has an ordered list nested inside the parent item. The renderer displays the nested marker as a. while canonical Markdown retains 1. This proves the fixture dispatch/render path, not provider execution or the ordinary Submit-button path.

## Observed differences

- A: Before adds two spaces and keeps 2./11.; After aligns children at three/four columns and resets to 1. Typing X stays mid-word. The sent fixture becomes truly nested in After, versus flat siblings in Before.
- B: After uses three spaces and child 2. after the sibling/grandchild scan; Before uses two spaces and original 3. Existing descendant lines remain unchanged.
- C: Plain After lifts through child 2., top-level 2., then exits; Before removes the nested marker immediately and subsequent newlines remain blank. Rich behavior is parity: both lift one level each time. X and deletion of only X demonstrate each caret.
- D: No-parent and blank-line fallback are unchanged at two spaces. Plain prefix caret changes from two spaces + X11. to four spaces + X1.; rich content caret yields four spaces + 1. Xchild after normalization.
- E: Bullet/task indentation remains two spaces with original markers. Matching delimiter continues 09) to 10) at the existing child indent; mismatched delimiter starts 1. at that indent. Before keeps current 2)/2. and two spaces.
- Stills also contain the intentional fixture interruption status and the ordinary git/context controls. Caret blink, antialiasing, and transient rendering timing can contribute to the zero-threshold pixel mask; the masks are not a claim that every changed pixel is a regression. No seed conversation text is visible in the selected captures.

## Paired recordings and stills

All 16 original recordings are superseded. Native preview cursor and click indicators can be visible in the replacement clips. Times below are approximate ranges inspected in the decoded replacement videos. They are not RPC wall-clock timestamps; the capture transport introduces a variable delay. Each seed and every keyboard result was held for at least 1.05 seconds; the final state was held for three additional seconds before its endpoint screenshot and recording stop. No audio narration is claimed; the written checkpoints describe the visible actions. Seed means reset with production buildDocJson/serializeEditorDoc and EditorView dispatch. Tab/X and Shift+Enter/X use actual preview keyboard events through ChatComposer. After each C observation, only X is deleted before the next Shift+Enter. Each sequence is A→B→C→D→E. The A-rendered and E endpoint stills each have two full-surface diff masks: max absolute RGB-channel delta >0 and >16 on the 0–255 scale. Changed pixels are amplified to solid magenta over a muted reference image; no crop, translation, registration, or ignored region.

### rich · 1440×900 · light

**Before chapters (decoded-video ranges):** A 3–14s; B 14–18s; C 18–30s; D 30–42s; E 42–61s.

**Before typing checkpoints:** A0 X visible 5–6s; A1 X visible 9–10s; B0 X visible 16–17s; C1 X visible 20–21s; C2 X visible 24–25s; C3 X visible 28–29s; D0 X visible 33–34s; D1 X visible 37–38s; D2 X visible 40–41s; E0 X visible 45–46s; E1 X visible 49–50s; E2 X visible 53–54s; E3 X visible 57–58s. Seeds, Tab results, each C Shift+Enter, X, and deletion were also checked in decoded frames. Ranges identify a visible frame, not RPC completion.

**After chapters (decoded-video ranges):** A 2–12s; B 12–15s; C 15–27s; D 27–38s; E 38–54s.

**After typing checkpoints:** A0 X visible 5–6s; A1 X visible 8–9s; B0 X visible 14–15s; C1 X visible 18–19s; C2 X visible 21–22s; C3 X visible 25–26s; D0 X visible 29–30s; D1 X visible 33–34s; D2 X visible 36–37s; E0 X visible 40–41s; E1 X visible 43–44s; E2 X visible 47–48s; E3 X visible 51–52s. Seeds, Tab results, each C Shift+Enter, X, and deletion were also checked in decoded frames. Ranges identify a visible frame, not RPC completion.

[Before keyboard sequence A–E — corrected](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/01a97b6f1ea6859d/rich-1440-light-before-corrected.mp4)

[After keyboard sequence A–E — corrected](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/3496226d9756c83d/rich-1440-light-after-corrected.mp4)

**A rendered-message endpoint**

Amplified differences: >0 = 8,881 pixels; >16 = 3,966 pixels.

| Before | After | Diff0 (>0) | DiffT (>16) |
| --- | --- | --- | --- |
| ![Before A rendered-message endpoint](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/efbf20d65a2e7506/rich-1440-light-before-A-rendered.png) | ![After A rendered-message endpoint](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/bab4dbede3d2c503/rich-1440-light-after-A-rendered.png) | ![Amplified zero-threshold difference](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/9325a2c753fd6982/rich-1440-light-renderedStill-diff-gt0.png) | ![Amplified difference, threshold 16](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/5084f3d11186dc59/rich-1440-light-renderedStill-diff-gt16.png) |
| [044f07257c](https://github.com/pingdotgg/t3code/commit/044f07257c9684ae4543bd1e1ebf9c394e9e3830) | [53ba38bb47](https://github.com/pingdotgg/t3code/commit/53ba38bb471143f27889e4b033f8abdc27904889) | same pair | same pair |

**E composer endpoint**

Amplified differences: >0 = 8,566 pixels; >16 = 3,706 pixels.

| Before | After | Diff0 (>0) | DiffT (>16) |
| --- | --- | --- | --- |
| ![Before E composer endpoint](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/544dcaf6341ac90f/rich-1440-light-before-E.png) | ![After E composer endpoint](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/549a257693a9a30c/rich-1440-light-after-E.png) | ![Amplified zero-threshold difference](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/b03d3d7b62fb9a03/rich-1440-light-endpoint-diff-gt0.png) | ![Amplified difference, threshold 16](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/beb10a8c3bfcda2e/rich-1440-light-endpoint-diff-gt16.png) |
| [044f07257c](https://github.com/pingdotgg/t3code/commit/044f07257c9684ae4543bd1e1ebf9c394e9e3830) | [53ba38bb47](https://github.com/pingdotgg/t3code/commit/53ba38bb471143f27889e4b033f8abdc27904889) | same pair | same pair |

### rich · 1440×900 · dark

**Before chapters (decoded-video ranges):** A 3–16s; B 16–20s; C 20–35s; D 35–47s; E 47–66s.

**Before typing checkpoints:** A0 X visible 6–7s; A1 X visible 10–11s; B0 X visible 18–19s; C1 X visible 23–24s; C2 X visible 28–29s; C3 X visible 32–33s; D0 X visible 37–38s; D1 X visible 42–43s; D2 X visible 46–47s; E0 X visible 50–51s; E1 X visible 53–54s; E2 X visible 57–58s; E3 X visible 62–63s. Seeds, Tab results, each C Shift+Enter, X, and deletion were also checked in decoded frames. Ranges identify a visible frame, not RPC completion.

**After chapters (decoded-video ranges):** A 2–12s; B 12–15s; C 15–27s; D 27–38s; E 38–55s.

**After typing checkpoints:** A0 X visible 5–6s; A1 X visible 8–9s; B0 X visible 14–15s; C1 X visible 18–19s; C2 X visible 21–22s; C3 X visible 25–26s; D0 X visible 30–31s; D1 X visible 34–35s; D2 X visible 37–38s; E0 X visible 41–42s; E1 X visible 44–45s; E2 X visible 48–49s; E3 X visible 52–53s. Seeds, Tab results, each C Shift+Enter, X, and deletion were also checked in decoded frames. Ranges identify a visible frame, not RPC completion.

[Before keyboard sequence A–E — corrected](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/5b825a095166d959/rich-1440-dark-before-corrected.mp4)

[After keyboard sequence A–E — corrected](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/abee8f71f584c766/rich-1440-dark-after-corrected.mp4)

**A rendered-message endpoint**

Amplified differences: >0 = 8,796 pixels; >16 = 4,034 pixels.

| Before | After | Diff0 (>0) | DiffT (>16) |
| --- | --- | --- | --- |
| ![Before A rendered-message endpoint](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/55883b0ed4476ee4/rich-1440-dark-before-A-rendered.png) | ![After A rendered-message endpoint](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/524822785572819e/rich-1440-dark-after-A-rendered.png) | ![Amplified zero-threshold difference](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/d480e28814ee5418/rich-1440-dark-renderedStill-diff-gt0.png) | ![Amplified difference, threshold 16](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/ea6c9620422c7d2d/rich-1440-dark-renderedStill-diff-gt16.png) |
| [044f07257c](https://github.com/pingdotgg/t3code/commit/044f07257c9684ae4543bd1e1ebf9c394e9e3830) | [53ba38bb47](https://github.com/pingdotgg/t3code/commit/53ba38bb471143f27889e4b033f8abdc27904889) | same pair | same pair |

**E composer endpoint**

Amplified differences: >0 = 8,481 pixels; >16 = 3,757 pixels.

| Before | After | Diff0 (>0) | DiffT (>16) |
| --- | --- | --- | --- |
| ![Before E composer endpoint](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/362227efe51ea330/rich-1440-dark-before-E.png) | ![After E composer endpoint](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/ad7e22eeac452aff/rich-1440-dark-after-E.png) | ![Amplified zero-threshold difference](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/6ad94ba71e066106/rich-1440-dark-endpoint-diff-gt0.png) | ![Amplified difference, threshold 16](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/ad95fece2ba40476/rich-1440-dark-endpoint-diff-gt16.png) |
| [044f07257c](https://github.com/pingdotgg/t3code/commit/044f07257c9684ae4543bd1e1ebf9c394e9e3830) | [53ba38bb47](https://github.com/pingdotgg/t3code/commit/53ba38bb471143f27889e4b033f8abdc27904889) | same pair | same pair |

### rich · 390×844 · light

**Before chapters (decoded-video ranges):** A 3–14s; B 14–19s; C 19–33s; D 33–45s; E 45–64s.

**Before typing checkpoints:** A0 X visible 5–6s; A1 X visible 10–11s; B0 X visible 17–18s; C1 X visible 22–23s; C2 X visible 26–27s; C3 X visible 30–31s; D0 X visible 36–37s; D1 X visible 40–41s; D2 X visible 43–44s; E0 X visible 48–49s; E1 X visible 52–53s; E2 X visible 56–57s; E3 X visible 60–61s. Seeds, Tab results, each C Shift+Enter, X, and deletion were also checked in decoded frames. Ranges identify a visible frame, not RPC completion.

**After chapters (decoded-video ranges):** A 2–13s; B 13–17s; C 17–30s; D 30–41s; E 41–59s.

**After typing checkpoints:** A0 X visible 5–6s; A1 X visible 9–10s; B0 X visible 15–16s; C1 X visible 19–20s; C2 X visible 23–24s; C3 X visible 27–28s; D0 X visible 32–33s; D1 X visible 36–37s; D2 X visible 40–41s; E0 X visible 44–45s; E1 X visible 48–49s; E2 X visible 51–52s; E3 X visible 56–57s. Seeds, Tab results, each C Shift+Enter, X, and deletion were also checked in decoded frames. Ranges identify a visible frame, not RPC completion.

[Before keyboard sequence A–E — corrected](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/be007f303cdc96ca/rich-390-light-before-corrected.mp4)

[After keyboard sequence A–E — corrected](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/bdc1caead5d9c033/rich-390-light-after-corrected.mp4)

**A rendered-message endpoint**

Amplified differences: >0 = 26,552 pixels; >16 = 12,052 pixels.

| Before | After | Diff0 (>0) | DiffT (>16) |
| --- | --- | --- | --- |
| ![Before A rendered-message endpoint](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/f75b5ccc7d336eb1/rich-390-light-before-A-rendered.png) | ![After A rendered-message endpoint](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/218639f45e0672ea/rich-390-light-after-A-rendered.png) | ![Amplified zero-threshold difference](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/16a73c5d69467a64/rich-390-light-renderedStill-diff-gt0.png) | ![Amplified difference, threshold 16](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/24b1b3e2f0dae986/rich-390-light-renderedStill-diff-gt16.png) |
| [044f07257c](https://github.com/pingdotgg/t3code/commit/044f07257c9684ae4543bd1e1ebf9c394e9e3830) | [53ba38bb47](https://github.com/pingdotgg/t3code/commit/53ba38bb471143f27889e4b033f8abdc27904889) | same pair | same pair |

**E composer endpoint**

Amplified differences: >0 = 25,381 pixels; >16 = 10,970 pixels.

| Before | After | Diff0 (>0) | DiffT (>16) |
| --- | --- | --- | --- |
| ![Before E composer endpoint](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/a32b45d26907a2e4/rich-390-light-before-E.png) | ![After E composer endpoint](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/54e27b4787c65b47/rich-390-light-after-E.png) | ![Amplified zero-threshold difference](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/d7c862584f6db105/rich-390-light-endpoint-diff-gt0.png) | ![Amplified difference, threshold 16](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/e57494c8fa871e5c/rich-390-light-endpoint-diff-gt16.png) |
| [044f07257c](https://github.com/pingdotgg/t3code/commit/044f07257c9684ae4543bd1e1ebf9c394e9e3830) | [53ba38bb47](https://github.com/pingdotgg/t3code/commit/53ba38bb471143f27889e4b033f8abdc27904889) | same pair | same pair |

### rich · 390×844 · dark

**Before chapters (decoded-video ranges):** A 2–13s; B 13–17s; C 17–32s; D 32–44s; E 44–63s.

**Before typing checkpoints:** A0 X visible 5–6s; A1 X visible 9–10s; B0 X visible 15–16s; C1 X visible 19–20s; C2 X visible 23–24s; C3 X visible 28–29s; D0 X visible 34–35s; D1 X visible 38–39s; D2 X visible 42–43s; E0 X visible 46–47s; E1 X visible 50–51s; E2 X visible 55–56s; E3 X visible 59–60s. Seeds, Tab results, each C Shift+Enter, X, and deletion were also checked in decoded frames. Ranges identify a visible frame, not RPC completion.

**After chapters (decoded-video ranges):** A 2–12s; B 12–16s; C 16–29s; D 29–41s; E 41–59s.

**After typing checkpoints:** A0 X visible 5–6s; A1 X visible 8–9s; B0 X visible 15–16s; C1 X visible 18–19s; C2 X visible 22–23s; C3 X visible 26–27s; D0 X visible 31–32s; D1 X visible 35–36s; D2 X visible 39–40s; E0 X visible 44–45s; E1 X visible 48–49s; E2 X visible 51–52s; E3 X visible 55–56s. Seeds, Tab results, each C Shift+Enter, X, and deletion were also checked in decoded frames. Ranges identify a visible frame, not RPC completion.

[Before keyboard sequence A–E — corrected](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/d98c2c09d868bfb1/rich-390-dark-before-corrected.mp4)

[After keyboard sequence A–E — corrected](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/587bcf0c1eb44fb1/rich-390-dark-after-corrected.mp4)

**A rendered-message endpoint**

Amplified differences: >0 = 26,502 pixels; >16 = 12,010 pixels.

| Before | After | Diff0 (>0) | DiffT (>16) |
| --- | --- | --- | --- |
| ![Before A rendered-message endpoint](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/fea63b5d37a76c26/rich-390-dark-before-A-rendered.png) | ![After A rendered-message endpoint](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/0128d6900d3f8156/rich-390-dark-after-A-rendered.png) | ![Amplified zero-threshold difference](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/aa723df90631227c/rich-390-dark-renderedStill-diff-gt0.png) | ![Amplified difference, threshold 16](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/5d90e716105aec61/rich-390-dark-renderedStill-diff-gt16.png) |
| [044f07257c](https://github.com/pingdotgg/t3code/commit/044f07257c9684ae4543bd1e1ebf9c394e9e3830) | [53ba38bb47](https://github.com/pingdotgg/t3code/commit/53ba38bb471143f27889e4b033f8abdc27904889) | same pair | same pair |

**E composer endpoint**

Amplified differences: >0 = 25,386 pixels; >16 = 10,996 pixels.

| Before | After | Diff0 (>0) | DiffT (>16) |
| --- | --- | --- | --- |
| ![Before E composer endpoint](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/82f04bbd52c47471/rich-390-dark-before-E.png) | ![After E composer endpoint](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/6cf2a79292aad8d1/rich-390-dark-after-E.png) | ![Amplified zero-threshold difference](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/f1751c1ef993870d/rich-390-dark-endpoint-diff-gt0.png) | ![Amplified difference, threshold 16](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/d00459accd0d5c0c/rich-390-dark-endpoint-diff-gt16.png) |
| [044f07257c](https://github.com/pingdotgg/t3code/commit/044f07257c9684ae4543bd1e1ebf9c394e9e3830) | [53ba38bb47](https://github.com/pingdotgg/t3code/commit/53ba38bb471143f27889e4b033f8abdc27904889) | same pair | same pair |

### plain · 1440×900 · light

**Before chapters (decoded-video ranges):** A 3–15s; B 15–20s; C 20–33s; D 33–44s; E 44–64s.

**Before typing checkpoints:** A0 X visible 5–6s; A1 X visible 10–11s; B0 X visible 18–19s; C1 X visible 22–23s; C2 X visible 26–27s; C3 X visible 30–31s; D0 X visible 35–36s; D1 X visible 39–40s; D2 X visible 43–44s; E0 X visible 47–48s; E1 X visible 51–52s; E2 X visible 55–56s; E3 X visible 60–61s. Seeds, Tab results, each C Shift+Enter, X, and deletion were also checked in decoded frames. Ranges identify a visible frame, not RPC completion.

**After chapters (decoded-video ranges):** A 2–12s; B 12–15s; C 15–27s; D 27–38s; E 38–55s.

**After typing checkpoints:** A0 X visible 5–6s; A1 X visible 8–9s; B0 X visible 14–15s; C1 X visible 18–19s; C2 X visible 21–22s; C3 X visible 25–26s; D0 X visible 29–30s; D1 X visible 33–34s; D2 X visible 36–37s; E0 X visible 40–41s; E1 X visible 44–45s; E2 X visible 47.0–47.75s; E3 X visible 51–52s. Seeds, Tab results, each C Shift+Enter, X, and deletion were also checked in decoded frames. Ranges identify a visible frame, not RPC completion.

[Before keyboard sequence A–E — corrected](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/2d6b2d7f21d78fab/plain-1440-light-before-corrected.mp4)

[After keyboard sequence A–E — corrected](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/2e41c806d5349c8a/plain-1440-light-after-corrected.mp4)

**A rendered-message endpoint**

Amplified differences: >0 = 8,550 pixels; >16 = 3,693 pixels.

| Before | After | Diff0 (>0) | DiffT (>16) |
| --- | --- | --- | --- |
| ![Before A rendered-message endpoint](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/a5fda14805febddb/plain-1440-light-before-A-rendered.png) | ![After A rendered-message endpoint](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/b09cf714affbebe2/plain-1440-light-after-A-rendered.png) | ![Amplified zero-threshold difference](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/1b9843cf660ef191/plain-1440-light-renderedStill-diff-gt0.png) | ![Amplified difference, threshold 16](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/75887868b1243677/plain-1440-light-renderedStill-diff-gt16.png) |
| [044f07257c](https://github.com/pingdotgg/t3code/commit/044f07257c9684ae4543bd1e1ebf9c394e9e3830) | [53ba38bb47](https://github.com/pingdotgg/t3code/commit/53ba38bb471143f27889e4b033f8abdc27904889) | same pair | same pair |

**E composer endpoint**

Amplified differences: >0 = 8,937 pixels; >16 = 4,027 pixels.

| Before | After | Diff0 (>0) | DiffT (>16) |
| --- | --- | --- | --- |
| ![Before E composer endpoint](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/bd12eaa597626184/plain-1440-light-before-E.png) | ![After E composer endpoint](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/be50b4bea41ea257/plain-1440-light-after-E.png) | ![Amplified zero-threshold difference](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/fa08a7178b307d2d/plain-1440-light-endpoint-diff-gt0.png) | ![Amplified difference, threshold 16](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/4487bfd958a4af9f/plain-1440-light-endpoint-diff-gt16.png) |
| [044f07257c](https://github.com/pingdotgg/t3code/commit/044f07257c9684ae4543bd1e1ebf9c394e9e3830) | [53ba38bb47](https://github.com/pingdotgg/t3code/commit/53ba38bb471143f27889e4b033f8abdc27904889) | same pair | same pair |

### plain · 1440×900 · dark

**Before chapters (decoded-video ranges):** A 3–13s; B 13–18s; C 18–31s; D 31–44s; E 44–64s.

**Before typing checkpoints:** A0 X visible 5–6s; A1 X visible 9–10s; B0 X visible 16–17s; C1 X visible 20–21s; C2 X visible 25–26s; C3 X visible 29–30s; D0 X visible 34–35s; D1 X visible 38–39s; D2 X visible 42–43s; E0 X visible 46–47s; E1 X visible 51–52s; E2 X visible 55–56s; E3 X visible 60–61s. Seeds, Tab results, each C Shift+Enter, X, and deletion were also checked in decoded frames. Ranges identify a visible frame, not RPC completion.

**After chapters (decoded-video ranges):** A 2–13s; B 13–16s; C 16–28s; D 28–39s; E 39–56s.

**After typing checkpoints:** A0 X visible 5–6s; A1 X visible 8–9s; B0 X visible 15–16s; C1 X visible 19–20s; C2 X visible 22–23s; C3 X visible 26–27s; D0 X visible 30–31s; D1 X visible 34–35s; D2 X visible 37–38s; E0 X visible 41–42s; E1 X visible 45–46s; E2 X visible 48–49s; E3 X visible 52–53s. Seeds, Tab results, each C Shift+Enter, X, and deletion were also checked in decoded frames. Ranges identify a visible frame, not RPC completion.

[Before keyboard sequence A–E — corrected](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/509db6bf0060c786/plain-1440-dark-before-corrected.mp4)

[After keyboard sequence A–E — corrected](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/f8d3870ac3f918ec/plain-1440-dark-after-corrected.mp4)

**A rendered-message endpoint**

Amplified differences: >0 = 8,497 pixels; >16 = 3,772 pixels.

| Before | After | Diff0 (>0) | DiffT (>16) |
| --- | --- | --- | --- |
| ![Before A rendered-message endpoint](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/9d318ea7fd03d8b8/plain-1440-dark-before-A-rendered.png) | ![After A rendered-message endpoint](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/cc9af15eaa12269b/plain-1440-dark-after-A-rendered.png) | ![Amplified zero-threshold difference](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/c9d7ec3f9988f3da/plain-1440-dark-renderedStill-diff-gt0.png) | ![Amplified difference, threshold 16](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/01fc82854d35667d/plain-1440-dark-renderedStill-diff-gt16.png) |
| [044f07257c](https://github.com/pingdotgg/t3code/commit/044f07257c9684ae4543bd1e1ebf9c394e9e3830) | [53ba38bb47](https://github.com/pingdotgg/t3code/commit/53ba38bb471143f27889e4b033f8abdc27904889) | same pair | same pair |

**E composer endpoint**

Amplified differences: >0 = 8,852 pixels; >16 = 4,082 pixels.

| Before | After | Diff0 (>0) | DiffT (>16) |
| --- | --- | --- | --- |
| ![Before E composer endpoint](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/7bc798a305f32a27/plain-1440-dark-before-E.png) | ![After E composer endpoint](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/2badec4025046b75/plain-1440-dark-after-E.png) | ![Amplified zero-threshold difference](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/10b2303eaccd8708/plain-1440-dark-endpoint-diff-gt0.png) | ![Amplified difference, threshold 16](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/c98c759c3039d25c/plain-1440-dark-endpoint-diff-gt16.png) |
| [044f07257c](https://github.com/pingdotgg/t3code/commit/044f07257c9684ae4543bd1e1ebf9c394e9e3830) | [53ba38bb47](https://github.com/pingdotgg/t3code/commit/53ba38bb471143f27889e4b033f8abdc27904889) | same pair | same pair |

### plain · 390×844 · light

**Before chapters (decoded-video ranges):** A 2–12s; B 12–16s; C 16–30s; D 30–42s; E 42–61s.

**Before typing checkpoints:** A0 X visible 5–6s; A1 X visible 9–10s; B0 X visible 15–16s; C1 X visible 19–20s; C2 X visible 23–24s; C3 X visible 27–28s; D0 X visible 32–33s; D1 X visible 36–37s; D2 X visible 40–41s; E0 X visible 45–46s; E1 X visible 49–50s; E2 X visible 53–54s; E3 X visible 57–58s. Seeds, Tab results, each C Shift+Enter, X, and deletion were also checked in decoded frames. Ranges identify a visible frame, not RPC completion.

**After chapters (decoded-video ranges):** A 2–13s; B 13–17s; C 17–30s; D 30–41s; E 41–60s.

**After typing checkpoints:** A0 X visible 5–6s; A1 X visible 9–10s; B0 X visible 16–17s; C1 X visible 20–21s; C2 X visible 23–24s; C3 X visible 27–28s; D0 X visible 32–33s; D1 X visible 36–37s; D2 X visible 39–40s; E0 X visible 43–44s; E1 X visible 48–49s; E2 X visible 52–53s; E3 X visible 56–57s. Seeds, Tab results, each C Shift+Enter, X, and deletion were also checked in decoded frames. Ranges identify a visible frame, not RPC completion.

[Before keyboard sequence A–E — corrected](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/161f1bcbf8b2f5b4/plain-390-light-before-corrected.mp4)

[After keyboard sequence A–E — corrected](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/1b0d8844c774bf2b/plain-390-light-after-corrected.mp4)

**A rendered-message endpoint**

Amplified differences: >0 = 25,641 pixels; >16 = 11,187 pixels.

| Before | After | Diff0 (>0) | DiffT (>16) |
| --- | --- | --- | --- |
| ![Before A rendered-message endpoint](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/103f11e352435d75/plain-390-light-before-A-rendered.png) | ![After A rendered-message endpoint](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/4c53085160f3ac64/plain-390-light-after-A-rendered.png) | ![Amplified zero-threshold difference](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/aacaaafde423a2dc/plain-390-light-renderedStill-diff-gt0.png) | ![Amplified difference, threshold 16](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/c8e04bf594869914/plain-390-light-renderedStill-diff-gt16.png) |
| [044f07257c](https://github.com/pingdotgg/t3code/commit/044f07257c9684ae4543bd1e1ebf9c394e9e3830) | [53ba38bb47](https://github.com/pingdotgg/t3code/commit/53ba38bb471143f27889e4b033f8abdc27904889) | same pair | same pair |

**E composer endpoint**

Amplified differences: >0 = 26,761 pixels; >16 = 12,275 pixels.

| Before | After | Diff0 (>0) | DiffT (>16) |
| --- | --- | --- | --- |
| ![Before E composer endpoint](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/f6e93c08c2c50b7d/plain-390-light-before-E.png) | ![After E composer endpoint](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/af546e3d29bba374/plain-390-light-after-E.png) | ![Amplified zero-threshold difference](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/7c109515b7b9e114/plain-390-light-endpoint-diff-gt0.png) | ![Amplified difference, threshold 16](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/3227a29d5d6962b6/plain-390-light-endpoint-diff-gt16.png) |
| [044f07257c](https://github.com/pingdotgg/t3code/commit/044f07257c9684ae4543bd1e1ebf9c394e9e3830) | [53ba38bb47](https://github.com/pingdotgg/t3code/commit/53ba38bb471143f27889e4b033f8abdc27904889) | same pair | same pair |

### plain · 390×844 · dark

**Before chapters (decoded-video ranges):** A 2–14s; B 14–18s; C 18–34s; D 34–47s; E 47–66s.

**Before typing checkpoints:** A0 X visible 5–6s; A1 X visible 9–10s; B0 X visible 16–17s; C1 X visible 20–21s; C2 X visible 25–26s; C3 X visible 30–31s; D0 X visible 37–38s; D1 X visible 41–42s; D2 X visible 45–46s; E0 X visible 49–50s; E1 X visible 54–55s; E2 X visible 58–59s; E3 X visible 62–63s. Seeds, Tab results, each C Shift+Enter, X, and deletion were also checked in decoded frames. Ranges identify a visible frame, not RPC completion.

**After chapters (decoded-video ranges):** A 3–13s; B 13–17s; C 17–30s; D 30–41s; E 41–60s.

**After typing checkpoints:** A0 X visible 5–6s; A1 X visible 9–10s; B0 X visible 16–17s; C1 X visible 20–21s; C2 X visible 23–24s; C3 X visible 27–28s; D0 X visible 32–33s; D1 X visible 36–37s; D2 X visible 40–41s; E0 X visible 44–45s; E1 X visible 48–49s; E2 X visible 52–53s; E3 X visible 56–57s. Seeds, Tab results, each C Shift+Enter, X, and deletion were also checked in decoded frames. Ranges identify a visible frame, not RPC completion.

[Before keyboard sequence A–E — corrected](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/2615e4c236353ab8/plain-390-dark-before-corrected.mp4)

[After keyboard sequence A–E — corrected](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/ddacddcfb1821735/plain-390-dark-after-corrected.mp4)

**A rendered-message endpoint**

Amplified differences: >0 = 25,653 pixels; >16 = 11,224 pixels.

| Before | After | Diff0 (>0) | DiffT (>16) |
| --- | --- | --- | --- |
| ![Before A rendered-message endpoint](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/3fe03cbb0dcf099e/plain-390-dark-before-A-rendered.png) | ![After A rendered-message endpoint](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/487b28bde194787e/plain-390-dark-after-A-rendered.png) | ![Amplified zero-threshold difference](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/475b3edc87c8ec7c/plain-390-dark-renderedStill-diff-gt0.png) | ![Amplified difference, threshold 16](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/5d5b8932ffcfe1a8/plain-390-dark-renderedStill-diff-gt16.png) |
| [044f07257c](https://github.com/pingdotgg/t3code/commit/044f07257c9684ae4543bd1e1ebf9c394e9e3830) | [53ba38bb47](https://github.com/pingdotgg/t3code/commit/53ba38bb471143f27889e4b033f8abdc27904889) | same pair | same pair |

**E composer endpoint**

Amplified differences: >0 = 26,767 pixels; >16 = 12,315 pixels.

| Before | After | Diff0 (>0) | DiffT (>16) |
| --- | --- | --- | --- |
| ![Before E composer endpoint](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/5c92e12efe9972d9/plain-390-dark-before-E.png) | ![After E composer endpoint](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/0fff6fdfaad0f92f/plain-390-dark-after-E.png) | ![Amplified zero-threshold difference](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/d104e5922fa89af0/plain-390-dark-endpoint-diff-gt0.png) | ![Amplified difference, threshold 16](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/cf95fa99171e13fd/plain-390-dark-endpoint-diff-gt16.png) |
| [044f07257c](https://github.com/pingdotgg/t3code/commit/044f07257c9684ae4543bd1e1ebf9c394e9e3830) | [53ba38bb47](https://github.com/pingdotgg/t3code/commit/53ba38bb471143f27889e4b033f8abdc27904889) | same pair | same pair |

## Replacement recording verification

All replacement captures ran with the checkout fixed at [ae038086a6](https://github.com/pingdotgg/t3code/commit/ae038086a6614538833351eda489e8fb4db3e05e). After web production bytes match [53ba38bb47](https://github.com/pingdotgg/t3code/commit/53ba38bb471143f27889e4b033f8abdc27904889). Each Before batch used the old helper only, then restored the exact saved After bytes (SHA-256 `251b3e61cca09527c2cc9b74d2584aa536dbdfafdd16c76d429b6d09b344e605`). No commits or persistent repository edits were made.

The prior independent audit validated all 32 original diff masks and pixel counts, and reproduced the E3 composer/message pixels exactly. Those stills and diff tables remain unchanged. The new endpoint screenshots were taken after the final hold and retained locally; git/context controls and caret timing can differ from the original stills.

Replacement canonical results match the original observations. All replacement persisted fixture runs are interrupted, have no startedAt, and have zero provider turns. Each sequence uses a new synthetic thread and the guarded defer_start → interrupt/holdQueue path. Failed early attempts were rejected, not uploaded.

[Replacement observations](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/78c4244ec66f7696/corrected-observations.json) · [Decoded-frame verification](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/cda7a0e93871746d/verification.json)

![Final encoded composer frames across all 16 replacement clips](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/a2a3dd6a4e024235/encoded-final-frames.png)

The verification used decoded whole-video frame sheets, inspecting all seeds and keyboard states; exact final source frames were decoded by frame index. Cropped frame sheets are inspection aids only: the uploaded recordings retain the complete viewport. Timestamp ranges are approximate visual indexes, not exact frame transition boundaries.

## Limits and checks

Real web route verified. Hosted web/desktop share this editor but were not independently launched; 390px is responsive web, not native mobile. Unchanged selection/IME/literal-answer/autocomplete/code-block guards were not re-tested in this capture-only task. No provider, wire-contract, Settings-entry-point, command-palette, or remote-mode implementation changed. No repo-wide tests ran. Fixture syntax check and commit formatting hook passed. No merge-readiness verdict.

## FRICTION

category | what | avoidance
--- | --- | ---
Pairing | Initial pair command saw no running runtime descriptor; the existing server recovered without intervention | Retry once against the explicit isolated --base-dir; never use live home
Tab ownership | A fresh default-profile tab was unpaired | Open an own tab, pair it, reload the pairing route, and capture only after the token hash disappears
Selector ambiguity | Two sidebar toggles included a hidden zero-size control | Inspect bounds and use the visible toggle; verify collapsed state after every navigation
Theme setup | applyThemePalette alone did not activate dark appearance | Set the root dark state as useTheme does, verify screenshots, reject incorrect-theme attempts
Fixture rendering | A deferred prepared message was initially hidden | Interrupt the unreleased run with queue held; verify zero provider turns
Artifact transport | Desktop PNGs are downscaled by preview_snapshot | Retain full-DPR recordings and disclose actual still dimensions before pixel comparison
Upload latency | Multi-file ghdrop prints output only after the batch finishes | Preserve the exact completed stdout in ghdrop-output.md; do not duplicate an active upload

All 82 initial upload Markdown lines are preserved verbatim in /home/ubuntu/issue-17124-evidence/ghdrop-output.md. Raw local artifacts, observations, metrics, and processing scripts are retained outside the worktree under /home/ubuntu/issue-17124-evidence. No /tmp files were created. Worktree helper replacements were restored; correction byte references remain outside the checkout.

Correction friction category | what | avoidance
--- | --- | ---
Recording cadence | Earlier clips dropped intermediate typing states and six final E states | Replace all 16; hold every state for >1 second and final state for >3 seconds; inspect decoded frames
Timestamp origin | RPC completion precedes the visible encoded action by a variable delay | Publish visually checked video ranges instead
Mobile composer | Fresh mobile threads hide the editor behind Expand composer; first A0 keyboard actions did not reach it | Reject those attempts; expand through the real UI before recording and click the visible editor before each seed
Selector visibility | A hidden editor caused one native click timeout | Inspect its bounds, expand the mobile composer, and target the visible editor
Hot reload | Vite destroyed the execution context during the first helper-swap setup | Restore in finally, then wait for reload before fixture setup
Artifact metadata | The aggregate JSON exceeded the shell argument-size limit after ten completed clips | Recover the retained run data and write one metadata file per run
Encoded metadata | The video container omitted nb_frames | Count decoded source frames and extract the exact last frame by index
Runtime helper | Before requires a temporary production helper swap | Save exact After bytes, restore in finally after every batch, and compare bytes plus clean status
Reproducibility | Existing fixtures embed this checkout path; harness orchestration is tool-context dependent | Preserve the complete correction orchestration outside the checkout; document substitutions; no portability commit to keep the supplied head fixed
Evidence transport | Browser screenshot and recording tools save attachments in app-owned artifact locations | Use tool-returned artifacts only; no server against or direct mutation of live userdata

Correction ghdrop Markdown stdout is retained verbatim in /home/ubuntu/issue-17124-evidence/corrected/ghdrop-output.md. Videos use ordinary Markdown links. All correction artifacts remain outside the repository.
