# Proof audit pass 2 re-audit for [#22947](https://git.cafe/pingdotgg/t3code/pulls/22947)

Audited: the revised [captures-index.md](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/662535bdc5400714/captures-index.md), checked against the [source-derived matrix](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/5b015d25764b5441/pr-22947-proof-matrix-pass-1.md) and the [prior pass-2 audit](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/c8f66dad031f11e7/pr-22947-proof-audit-pass-2.md). Auditor: Claude Opus 5.5 (Claude Code in T3 Code).

This re-audit edited no source, made no forge writes and stopped no servers. Its only state mutation was the authorized pairing, which wrote one pairing credential to the disposable `/home/ubuntu/wt/pr-22947-after/.t3`. The token was kept in a private temp file and is not in this report.

## Integrity (re-checked)

- **SHAs:** the after checkout `HEAD` is [995209445b](https://git.cafe/pingdotgg/t3code/commit/995209445bb3dca1a13649f5d509a6a46f49d6b7) and the before checkout `HEAD` is [680152e27b](https://git.cafe/pingdotgg/t3code/commit/680152e27b2a961686389ca69a1557cbb2c55f08). Both checkouts are clean.
- **Diff:** `git diff --stat 680152e27b 995209445b` shows `Orchestrator.ts` (+51 −12) and `runtimeLayer.test.ts` (+185), 224 insertions and 12 deletions. This matches "What else changed".
- **Artifacts:** I downloaded all 23 media, log, script and static artifacts linked from the revised index and compared each with `cmp`. All are byte-identical to `/tmp/pr-22947-evidence` and therefore unchanged since pass 2. One fetch (`after-narrow-dark.json`) failed transiently and matched on retry. The prior frame-level verification of all eight recordings carries over unchanged.
- **Static encodings:** `ffprobe` gives `static-before.mp4` 0.550733s with 2 frames and `static-after.mp4` 12.721367s with 3 frames. These match the corrected index text.

## Narration fixes (prior findings → status)

| Prior finding | Revised index | Status |
|---|---|---|
| 1. B02/Resume overstated in after narrow-light | Lines 5, 108 and 171 exclude after narrow-light. Dispatched commands are labelled as logs, not visual proof. | **Fixed** |
| 2. Rebuild instructions did not reproduce | Replaced with fresh-pairing instructions (line 189) | **Fixed and reproduced live** (below) |
| 3. Static-before duration vs wall clock | Line 152 separates the wall-clock window from the encoded duration (0.55s, 2 frames vs 12.72s) | **Fixed**, verified with ffprobe |
| 4. Checkpoint card cause | "Copied history" assertion removed; baseline contamination stated as uncertain | **Fixed** |
| 5. Stale `Queued: Resume…` chip after reload | Disclosed in both revisions, about 2s | **Fixed** |
| 6. Self-send labelled "Sent by another agent" | Not mentioned | Minor and still open. It is not a proof defect, because the index already says self-send is not the unrelated-coordinator fixture. |

Small nit: the narrow-light action table lists the "pre reload" and "sidebar closed" rows after Resume, out of chronological order. The offsets themselves are correct.

## Live rebuild of static-after (1440×900, light)

Method: I ran `node apps/server/src/bin.ts pair --base-dir /home/ubuntu/wt/pr-22947-after/.t3` from the after checkout, which output a `localhost:7222/pair#token=…` URL. I opened the complete URL in my own new preview tab and kept that tab. Pairing succeeded. I set the viewport to 1440×900 freeform and the appearance to light, then opened `http://localhost:7222/cb6f09f1-5aad-408c-ac87-fa519de22491/evidence-22947-static`. The thread loaded with the main sidebar and the thread-details panel open, so I clicked "Toggle thread details panel" and then "Toggle main sidebar" to collapse both. I recorded 20:02:30.206Z to about 20:02:37Z.

Environment, checked in the page: Chrome/154.0.0.0, DPR 2, body font `-apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif`, light theme. `document.activeElement` and `:hover` were both the "Toggle main sidebar" button. The composer was not focused.

Recording: h264 at 2880×1800, 8.6149s encoded, 3 frames at pts 0, 0.534 and 8.582s (variable frame rate). The ~7s wall-clock window again encoded only 3 frames.

Full-RGB comparison against published `static-after.png` (2880×1800), with no alignment, cropping or masking:

| Live frame | Pixels differ (threshold 0) | > 8/255 | Max channel Δ | Mean abs Δ /255 | Diff bbox |
|---|---|---|---|---|---|
| f1 (0.000s) | 2,680 / 5,184,000 | 304 | 57 | 0.002040 | (38,34)–(1520,1714) |
| f2 (0.534s) | 2,272 | 169 | 37 | 0.001388 | (0,34)–(608,467) |
| **f3 (8.582s, final)** | **2,088 (0.040%)** | **169** | **37** | **0.001352** | **(0,34)–(82,467)** |

Focus and caret: in the final frame, every difference lies in the left 82px. It is codec ringing around the sidebar-toggle icon plus one small block near y≈455. Both images show the same hover/focus background on "Toggle main sidebar". Neither shows a caret in the composer, and the placeholder, model, effort and access controls render identically. In f1, scattered text-edge differences reach the composer (a 1-pixel mark under the controls). These are keyframe codec noise, and they disappear by f3.

Conclusion: the published static-after is reproducible by a live rebuild through the real dev app, within codec noise (≤2,088 px, max Δ 37), with no structural, focus or caret difference. I rebuilt only the after side. The before side was not re-captured live; its published PNG was reproduced exactly from the retained mp4 in pass 2. The static pair still proves no timer behavior.

## Row-by-row against the matrix (49 rows: B01–B34, R01–R15)

Every matrix row's cells require web **and** Electron passes, and native rows require iOS/Android. No Electron or native take exists ("Agent device access is turned off for this environment"). Only Codex was exercised, and only local single-origin connections. Therefore **no matrix row is complete**. The revised coverage table accounts for all 49 rows without silently marking any row not applicable.

| Rows | Finding |
|---|---|
| B01, B04, B07 | Web subset verified in all four cells, before and after. Electron and native missing. |
| B02 | Web subset in 3 of 4 cells; after narrow-light is not visible (now correctly disclosed). Electron missing. |
| B10 | Self-sent continuation in four cells. Unrelated-coordinator recipe missing. |
| B24, B25/R07, B26, B27 | Partial, as disclosed: no expand/collapse, no post-reload ticks for B26, B27 in desktop-light only and no disconnect variant. |
| R01, R03 | Web chat timer in four cells (B02 caveat applies). Sidebar/drawer parity incomplete. Electron missing. |
| B03, B05, B06, B08, B09, B11–B23, B28–B34 | No evidence. |
| R02, R04–R06, R08–R15 | No evidence (native and Electron not run). |

The narration is now accurate to the evidence. Disclosure does not satisfy a row, though, and the brief does not allow certifying the full matrix because the gaps are disclosed.

## FRICTION

- The pairing CLI logged `Database migration history diverges from this build` (migrations 68–70 unknown to this build) for the seeded worktree `.t3`. The seed comes from a newer live database. This was harmless here, but it means fixture state is not schema-identical to the build under test.
- Variable-frame-rate recordings encode static scenes in 2–3 frames. "Last frame" is well defined, but "frame N seconds before the end" is not.
- The fixture URL opens with the sidebar and details panel expanded, so the rebuild requires two clicks. Those clicks leave focus and hover on the sidebar toggle, which happens to match the published capture. The instructions should state that pointer/focus state explicitly.
- Pairing then immediately navigating worked, but the instructions do not say to wait for pairing to finish before navigating.
- Native device access is disabled, Electron was not run, Codex was the only provider, and only local single-origin connections were used. The full matrix is unreachable in this environment.

VERDICT: INSUFFICIENT B01–B34, R01–R15 (no Electron/native pass for any row; B02 after narrow-light not visible; B03, B05, B06, B08, B09, B11–B23, B28–B34, R02, R04–R06, R08–R15 have no evidence; B10, B24–B27, R03, R07 partial)
