Proof audit, pass 2, target only [#25761](https://git.cafe/pingdotgg/t3code/pull/25761), [GitHub mirror #25761](https://github.com/pingdotgg/t3code/pull/25761). Read-only review of [bbb5f62a6f](https://github.com/pingdotgg/t3code/commit/bbb5f62a6ff0346b82fd9779187098bec572088a). No source edits, forge mutations, comments, pushes, or device leases. Audit began 2026-11-02 23:29:49 UTC; completed within the 45-minute limit.

1. **INSUFFICIENT: none of the 81 matrix rows is complete.** Five IDs have partial captures; 76 have none. Native, Electron, modern snapshot readers, live hover/click previews, rich sparse data, persistence, paging/races, error controls, and check-pagination scenarios remain unproved. The evidence document itself accurately acknowledges 0/81 complete. Unit tests do not fill its recording obligations.
2. **A04 is stale and its recordings do not reach the delivered settled endpoint.** `A04-after.mp4` ends at 4.933s showing Open/Merge but Authored 2, with the reopened PR absent. The supplied later `A04-settled-final-after.png` shows Authored 3 and that row first. `A04-before.mp4` ends at 13.033s with the row last and a lingering “More pull request actions” tooltip despite the pointer being in blank content. Neither holds the delivered settled list for the recipe's four seconds. More decisively, the later runtime change keeps a post-commit permissions/detail read instead of restarting it; the captured after count of two post-action detail requests is not the head's expected single post-commit read. The matrix's missing-permissions gate and closed-list variant were never exercised. [After last frame](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/1e059c4b933a3d9a/A04-after-last.png), [before last frame](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/920f00aff4fa8fb5/A04-before-last.png).
3. **A03 Android is rejected, including before the action.** `A03-android-after.png` lacks `action.txt` and its divider while still saying one changed file. The after movie already lacks that file row in the opening Open state, and initially shows “4 behind main”; the before movie starts with the file and no such divergence label. This is an uncontrolled cache/fixture mismatch, not evidence that close removed the file. The before movie shows ghosted detail/list navigation and ends back on detail, so its written “return to the open-filtered list” step has no clean settled matching endpoint. The before diagnostic is only 0.75 fps. Logical viewport/density is absent. No native timing, file preservation, or list parity claim is proved.
4. **A05 is the wrong required theme and has unrelated visible fixture differences.** The matrix requires W-L/I-L/A-L; the only pair is W-D. `A05-diff0.png`/`A05-diff16.png` light up PR/query/checkout numbers and source branches, because the fixtures are separate PRs with different identifiers. This is candidly disclosed, and the counter evidence for one removed server confirmation read is useful, but it fails the requested controlled visual-comparison rule. Rebuild with equivalent displayed identities/data or label it a diagnostic; do not mask the differences.
5. **Historical SHA labels are accurate but are not current provenance.** All delivered columns and video strips use before [cc59f99e73](https://github.com/pingdotgg/t3code/commit/cc59f99e735300120a6fc74d9a0bd59bf315dfb447de), after [25ff493224](https://github.com/pingdotgg/t3code/commit/25ff493224c0642222b93a0bd59bf315dfb447de). Current head is [bbb5f62a6f](https://github.com/pingdotgg/t3code/commit/bbb5f62a6ff0346b82fd9779187098bec572088a); its merge-base with local origin/main and forge-observed base is [71646e031a](https://github.com/pingdotgg/t3code/commit/71646e031a6dc9db1309b3b9dff597f872cf2fd3). Do not relabel old captures. The per-variant source assessment below preserves unchanged endpoints while marking changed timing stale.
6. **Two broad PR-body claims lack the claimed proof.** “New tests in each provider package” is contradicted by the head diff: new action-reply tests are added only in the GitHub package. Existing non-GitHub action tests inspected discard the return rather than assert the new summary/void behavior, e.g. [packages/source-control-gitlab/src/server/GitLabPullRequestProvider.test.ts:113](https://github.com/pingdotgg/t3code/blob/bbb5f62a6ff0346b82fd9779187098bec572088a/packages/source-control-gitlab/src/server/GitLabPullRequestProvider.test.ts#L113) and [packages/source-control-gitcafe/src/server/GitCafePullRequestProvider.test.ts:713](https://github.com/pingdotgg/t3code/blob/bbb5f62a6ff0346b82fd9779187098bec572088a/packages/source-control-gitcafe/src/server/GitCafePullRequestProvider.test.ts#L713). The body also still says there is no live web/mobile runtime pass or before/after capture, although this evidence exists. Correct the body and supply provider-boundary assertions for F11/F14–F17. The “every client from the host's reply” title needs a scope qualification: modern linked snapshots are not directly patched, and untouched clients use ordinary refresh reads. B12/B19/C15 captures remain necessary.
7. **Exact replay is unavailable; the closest head rebuild has a non-AA fixture delta.** The GitHub fixture is archived; the GitCafe fixture is deleted. The uploaded read logs omit response bodies, and project seeding omits the original sidebar thread. I rebuilt the settled B06 closed detail plus filtered empty list through the real head client and a read-only archived fixture. It differs by AE0=3,467, AE16=2,501, maximum channel delta=247. The entire list pane and detail below the title are pixel-identical. Differences are the changed fixture title and missing original sidebar seed. This is a reproducibility finding, not a reproduced product regression. Exact action replay or a full identical render cannot be certified from the retained fixtures/scripts.

The matrix row table follows. **I-P** means INSUFFICIENT, partial or rejected capture; **I-M** means INSUFFICIENT, no capture. Every profile/host/data variant printed in the supplied matrix remains required unless specifically credited here. T-codes describe logical unit coverage only, with exact head references below; no T-code certifies visual timing or layout.

| Row | Fixture | Status | Evidence gap / logical test coverage |
|---|---|---|---|
| A01 | Draft becomes ready | I-P | GH W-D detail/list only; missing preview/summary/native/other hosts. T1. |
| A02 | Ready becomes draft | I-M | T1 basic draft patch only; no ready→draft client flow. |
| A03 | Close with siblings | I-P | GH/GC W-D clean endpoints; N-L static only; Android rejected; watched/native/other controls absent. T1. |
| A04 | Reopen with missing branch permissions | I-P | Ordinary reopen only; stale read count; movie ends before settled list; no permission gate/native. T2. |
| A05 | Confirmed merge with merge time | I-P | GH W-D only; required light/native absent; unrelated number/branch pixels. T5. |
| A06 | Merge accepted but still open | I-M | T5 queued reply/confirmation logic; UI unproved. |
| A07 | Arm auto-merge, requirements pending | I-M | No arm-auto client capture. |
| A08 | Disarm auto-merge | I-M | No disarm-auto client capture or sparse explicit-false fixture. |
| A09 | Enable auto-merge merges immediately | I-M | T5 GH routing only; no merged UI chapter. |
| A10 | Update branch by merge, new head | I-M | No new-head/render/permissions gate. |
| A11 | Update branch by rebase, new head | I-M | No rebase/refusal/new-head capture. |
| A12 | Update already-current branch | I-M | No already-current void fallback capture. |
| A13 | Comment then close | I-M | No comment-and-close capture. |
| A14 | Comment then reopen | I-M | No comment-and-reopen capture. |
| A15 | State action rejected after optimistic list change | I-M | No rejected optimistic action/rollback capture. |
| A16 | Delete source branch, void reply | I-M | No delete-branch fallback capture. |
| A17 | Revert opens another change request, void reply | I-M | No revert/new-request notification capture. |
| A18 | Approve workflows, void reply | I-M | GH workflow tests cover host approval logic, not changed fallback UI. |
| B01 | Thread-details ready action | I-M | No thread-details/expanded rows capture. |
| B02 | Thread-details merge action and watching | I-M | No watch/default method/cancel capture. |
| B03 | Thread row conflict/check control branches | I-M | No conflict/check control or popover capture. |
| B04 | Thread row without detail, with/without watch | I-M | No missing/pending/error/watch fallback capture. |
| B05 | Speed ready, quick actions change | I-M | No Shift-ready busy/action swap capture. |
| B06 | Speed close removes final filtered row | I-P | GH W-D basic 1→0 works; GC/GL fallback and controlled late list response absent. T1/T2. |
| B07 | Speed reopen from closed list | I-M | No quick reopen/closed-list capture. |
| B08 | Speed merged row in all list | I-M | No older row reorder/selection capture. |
| B09 | Speed queued merge stays open | I-M | T3 web queued override logic; no quick queued merge film. |
| B10 | Quick-action availability guard | I-M | T7 authorization logic; modifier/focus/disabled rendering unproved. |
| B11 | Close sweep batch, mixed outcomes | I-M | T7 ordered refused batch only; no actual sweep/toast/cancel capture. |
| B12 | Thread linked-list quick action (snapshot reader) | I-M | Modern snapshot bypass source confirmed; no gated real reader. |
| B13 | Detail caller, tabs and condensed chrome | I-M | No thread caller/tab/condensed or long content capture. |
| B14 | Markdown live hover and preview read | I-M | No mounted markdown hover/click capture. |
| B15 | Context-chip hover, narrow and missing author | I-M | No context chip/null-author/long-content capture. |
| B16 | Hover failure independent of click | I-M | No independent hover-failure/click-success capture. |
| B17 | Tabs and composer exact/list lookup | I-M | No composer/exact lookup/unlinked tab capture. |
| B18 | Legacy/branch linked-summary readers | I-M | T1 legacy query atom only; no sidebar/search/virtualization capture. |
| B19 | Modern linked badge and snapshot tab readers | I-M | Snapshot source preference tested; no reply-vs-snapshot arrival film. |
| C01 | Draft filter membership and query precedence | I-M | T1 removes one draft-filter mismatch; qualifier precedence and native UI absent. |
| C02 | Missing row in head versus cursor page | I-M | T1 missing accepting head refresh; T2 cursor rules; no composed paging UI. |
| C03 | Web accumulated pages and newer override | I-M | T2 query race + web override tests; accumulated-page rendering absent. |
| C04 | Mobile appended pages beyond head | I-M | Existing native page merge helpers do not test new actionReply pagesFamily path. |
| C05 | Sparse reply preserves rich detail and counters | I-M | T3 read-time preservation only; no 12-file/rich sparse/zero/null/false matrix. |
| C06 | Undefined reply and old-server compatibility | I-M | No full undefined/old-server protocol and real fallback reader capture. |
| C07 | Saved reply survives cold/offline restart | I-M | T1 snapshot callback invoked; no cold/offline disk restart or failed persistence proof. |
| C08 | Older host update wins over newer receipt | I-M | T3 older host time covered in detail/preview/card; list/linked rendered retention absent. |
| C09 | Equal/missing update time, observation ordering | I-M | T3 unstamped preview reread; equal/missing observation ordering both ways not exhausted. |
| C10 | Never unmerge | I-M | T3 never-unmerge and web queued override covered logically; UI controls absent. |
| C11 | Read begun before action returns late | I-M | T2 detail/head-list/cursor gates covered logically; previews/card/summary late reads and native rendering absent. |
| C12 | Action while reader has no value or failed previous | I-M | No no-value/failure-with-previous recovery capture. |
| C13 | Identity/account isolation and natural ref forms | I-M | T7 routing identity guards do not exhaust action reply atom-family isolation. |
| C14 | Routed action, destination identity differs | I-M | Routing read tests do not prove routed action reply identity/presentation. |
| C15 | Other client or agent action | I-M | T4 synthetic untouched registry refresh covered; no second real remote client/MCP film. |
| C16 | Disconnected/read-only/unsupported guards | I-M | T7 denied actions covered logically; offline/read-only/unsupported presentation absent. |
| D01 | Native list context menu lifecycle | I-M | No real iOS/Android list context menu/full/sidebar/tablet run. |
| D02 | Native reviewers screen permission transition | I-M | T2 query permissions reread only; no mounted native reviewer screen. |
| D03 | Native files and inline-comment new head | I-M | No native files/viewed/inline old-head capture. |
| D04 | Native guide/review/discussion readers | I-M | No guide/review/discussion/edit-draft preservation capture. |
| D05 | Electron shell integration | I-M | No Electron local/remote run; web is not shell evidence. |
| D06 | Theme, width, counts and long-content sweep | I-M | Short A03 N-L endpoint cannot prove long strings/counts/all states/themes. |
| F01 | GitHub checks: zero | I-M | Live no-check endpoint visible but no dedicated core/pagination request fixture. |
| F02 | GitHub checks: one | I-M | T6 core checks decode only; no one-check displayed capture. |
| F03 | GitHub checks: 100 boundary | I-M | No exact 100-context boundary fixture. |
| F04 | GitHub checks: 101, failure last | I-M | T6 continuation logic covered with 1+1 nodes, not actual 100+1 UI counts. |
| F05 | GitHub checks: continuation cap | I-M | No 1001-context/10-page cap proof. |
| F06 | GitHub checks: repeated cursor | I-M | No repeated check cursor proof (list cursor tests are a different path). |
| F07 | GitHub checks: missing continuation | I-M | No missing PR/rollup/context/endCursor continuation proof. |
| F08 | GitHub checks: head changes mid-walk | I-M | T6 mixed-head rejection adequately unit-tested at API boundary; no UI error capture. |
| F09 | GitHub checks: reviewer field refused | I-M | T6 reviewer refusal/retry/restore adequately unit-tested at API boundary; no UI film. |
| F10 | Merge summary missing timestamp / confirmation failure | I-M | T5 void/open/failure confirmation and trusted merged reply; missing mergedAt reply variant not exhaustively tested. |
| F11 | Successful write, unusable host reply | I-M | T5 GH malformed reply only; other providers absent. |
| F12 | GitCafe stack succeeds, void reply | I-M | Existing stack action tests are not this native-stack merge/void render fixture. |
| F13 | Stack partly merges then fails | I-M | No partial-stack failure film/transcript. |
| F14 | Bitbucket async merge task, void | I-M | No Bitbucket task-body vs PR summary return assertion or client fallback capture. |
| F15 | Forgejo state PATCH preserves conflict | I-M | No Forgejo PATCH sparse conflict/stats preservation capture or action-result assertion. |
| F16 | Azure update JSON supplies lifecycle summary | I-M | No Azure action JSON summary return/absence assertion or client capture. |
| F17 | GitLab cancel-auto sparse summary | I-M | Existing GL action test discards return; sparse cancel-auto summary unproved. |
| G01 | PR list capability/initial-loading ghosts | I-M | No capability/initial ghosts capture. |
| G02 | PR list total failure and retry | I-M | No total failure/retry/unsupported capture. |
| G03 | Partial host failure with retained rows | I-M | Server healthy-repository tests do not prove retained mixed-host error UI. |
| G04 | Empty list variants and carried search | I-M | B06 covers one filtered empty endpoint only; other carried/empty states absent. |
| G05 | Truncated footer and loading continuation | I-M | No truncated footer/loading continuation capture. |

All 16 delivered endpoint images, all 16 diff images and all eight full-surface comparison sheets were opened and visually inspected. All 14 labelled recordings were decoded and visually inspected through full-surface frame sequences (web at 0.5s intervals, native at 4s intervals plus relevant action/end frames); the 14 raw counterparts were also opened as sampled frame sequences. This is not a claim that every encoded frame was manually viewed. Settled images contain no apparent skeleton/spinner or corrupted unrendered text beyond the Android omission. Blank content in empty/no-comment fixtures is expected. Narrow A03 has a supported drawer with a visible sliver of the underlying list, plus deliberate ellipses for repository/author/checkout text; it proves only the short title and Closed badge, not full long-content readability. No supplied capture shows “under the chip” or “ring survives” as a specific interaction assertion; those are not established by these assets.

The written web action steps match the observed Ready, Close/Confirm, Reopen, Merge/Confirm and Shift quick-close sequences. There is no spoken narration or per-step in-video subtitle track: the clips have provenance and elapsed-time strips, and the narrative is in Evidence.md. A04's settlement/hold claim and Android's clean list-return claim are the exceptions described above. Initial/pending action spinners are expected interaction states, not accepted settled endpoint frames.

**Captured variant freshness and pixel audit.** Max RGB channel threshold 0 means any changed pixel; threshold 16 means strictly >16/255. I recomputed all masks and confirmed both supplied diff files pixel-for-pixel for every pair. Low-level avatar-only changes in A01/A03/A04 account for their Diff0 masks, not changed PR UI; Diff16 is empty. Under the strict “no unrelated lit pixels” rule those zero-threshold masks are also imperfect controls, although their residuals are below 10/255.

| Delivered variant | AE0 / AE16 / max | Observable change from capture to head | Status |
|---|---|---|---|
| A01 GH W-D | 103 / 0 / 8 | Same-head ready detail/list endpoint unchanged; own observedAt retention is invisible in this fixture. No preview/check-rich race was captured. | Useful historical partial endpoint; row incomplete. |
| A03 GH W-D | 200 / 0 / 9 | Same-head close 3→2 and retained detail unchanged; own read-time is invisible here. | Useful historical partial endpoint; row incomplete. |
| A04 GH W-D | 301 / 0 / 9 | Final Open endpoint unchanged; a pending post-commit detail read is now retained rather than restarted. Expected post-action detail request count 2→1 in this captured overlap. | Timing/read-count proof STALE; endpoint movie insufficient. |
| A05 GH W-D | 519 / 240 / 198 | Normal nonblank response head unchanged by SHA trimming; merged endpoint and confirmation skip unchanged. | Wrong matrix theme and uncontrolled fixture text; insufficient. |
| B06 GH W-D | 0 / 0 / 0 | Basic quick close/removal and retained detail unchanged; only single head page captured. | Useful historical partial endpoint, corroborated by closest rebuild. |
| A03 GH N-L | 0 / 0 / 0 | Static closed drawer render unchanged by runtime fixes. | Static only; no interaction recording; insufficient for timing/readability sweep. |
| A03 GC W-D | 0 / 0 / 0 | Same-head sparse close path unchanged; no nonzero-rich stats or missing-stamp preview mounted. | Useful historical partial endpoint; other host actions absent. |
| A03 Android diagnostic | 4,998 / 3,585 / 222 | The runtime fixes do not explain the missing file row. The main merge also changes Android adaptive workspace width/clipping; no current native run establishes equivalence. | Rejected baseline mismatch; fresh native capture needed. |

The reviewed diff [25ff493224…84c28b7f05](https://github.com/pingdotgg/t3code/compare/25ff493224...84c28b7f05) changes runtime freshness and server head SHA normalization, not web UI markup. A mounted cursor page now restarts a read sent during the action; it rereads a settled changed row but leaves unrelated settled pages alone. This affects unrecorded C02–C04/C11. Detail/list/linked readers preserve their own observedAt, affecting rich check ordering in C05/C08/C09. A preview with neither updatedAt nor observedAt rereads instead of receiving a patch, affecting B14–B16/C06/C09. None of those paths was demonstrated by the supplied successful endpoint fixtures. The [84c28b7f05…bbb5f62a6f](https://github.com/pingdotgg/t3code/compare/84c28b7f05...bbb5f62a6f) merge includes web Code-tab caching (not the captured Summary tab) and Android adaptive layout changes. A clean merge is not itself native visual verification.

**Head rebuild.** I used a detached head worktree, shared installed dependencies, a new isolated explicit home, no dev-data seed, and a fresh paired preview tab. I adapted the uploaded start/project seed paths, used the uploaded Date probe, and opened archived fixture PR1 without modifying its forge state. The primary host filter was cleared to match the delivered All-provider list (Filters 2), while selectedHost retained GitHub. Inter failed to load through Vite's shared-dependency outside-root URL; I loaded the exact checked-out Inter 5.3.0 woff2 into a FontFace. No product CSS/text was rewritten.

Rendering environment matches the supplied line: Chromium156 Linux; 1440×1000 CSS, DPR2, 16px root, dark, no device emulation, reducedMotion=false; Date frozen to 2026-11-02T22:00:00Z. Screenshot size 1280×889. Two independent final screenshots had AE0=0. Against delivered B06-after.png: AE0=3,467 / 1,137,920 pixels (0.305%); AE16=2,501 (0.220%); maximum=247. Sidebar AE0=2,078, detail AE0=1,389, list AE0=0, detail below y=97 AE0=0. No comparison mask was applied.

![Delivered after — left; closest head rebuild — centre; >16/255 difference — right](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/6502428838f6a522/B06-rebuild-sheet.png)

[Rebuilt capture](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/d2686d51741fff69/rebuild-B06-head.png), [pixel metrics](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/f38a2eed1e5d91b8/rebuild-metrics.json), [rendering environment](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/2c56e044e9cfda6a/rebuild-environment.json). The missing original sidebar seed and changed fixture title are non-AA differences, so this does not certify an exact replay. The settled close/list arrangement itself is identical outside those fixture regions.

**Named unit coverage at the head.** I ran exactly three focused files in the detached head worktree: runtime state, server service, GitHub API. All 291 tests passed in 41.39s; [transcript](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/a2f9026347fe4b82/focused-tests.log). Additional named web/native tests below were read, not rerun. No repository-wide check was run.

| Code | Rows / logical boundary adequately demonstrated | Exact definitions and remaining limits |
|---|---|---|
| T1 | Basic reply propagation to loaded detail/preview/legacy summary and existing list; filter removal and accepting missing-head refresh. Supports logic within A01/A02/A03/A05, C01/C02. | [packages/client-runtime/src/state/pullRequests.test.ts:1131](https://github.com/pingdotgg/t3code/blob/bbb5f62a6ff0346b82fd9779187098bec572088a/packages/client-runtime/src/state/pullRequests.test.ts#L1131) “shows an action's reply in loaded readers and moves list rows without reads”. The positive case does not mount previewCard, does not drive components, and asserts snapshot callbacks rather than disk restart. |
| T2 | Detail pre-action read, server-refreshed head list, in-action cursor read, unrelated settled cursor page, immediate reopen plus one retained post-commit read. Adequate for the corresponding query-level race subcases. | [packages/client-runtime/src/state/pullRequests.test.ts:1208](https://github.com/pingdotgg/t3code/blob/bbb5f62a6ff0346b82fd9779187098bec572088a/packages/client-runtime/src/state/pullRequests.test.ts#L1208), [packages/client-runtime/src/state/pullRequests.test.ts:1260](https://github.com/pingdotgg/t3code/blob/bbb5f62a6ff0346b82fd9779187098bec572088a/packages/client-runtime/src/state/pullRequests.test.ts#L1260), [packages/client-runtime/src/state/pullRequests.test.ts:1325](https://github.com/pingdotgg/t3code/blob/bbb5f62a6ff0346b82fd9779187098bec572088a/packages/client-runtime/src/state/pullRequests.test.ts#L1325), [packages/client-runtime/src/state/pullRequests.test.ts:1402](https://github.com/pingdotgg/t3code/blob/bbb5f62a6ff0346b82fd9779187098bec572088a/packages/client-runtime/src/state/pullRequests.test.ts#L1402), [packages/client-runtime/src/state/pullRequests.test.ts:1548](https://github.com/pingdotgg/t3code/blob/bbb5f62a6ff0346b82fd9779187098bec572088a/packages/client-runtime/src/state/pullRequests.test.ts#L1548), [packages/client-runtime/src/state/pullRequests.test.ts:1598](https://github.com/pingdotgg/t3code/blob/bbb5f62a6ff0346b82fd9779187098bec572088a/packages/client-runtime/src/state/pullRequests.test.ts#L1598). No composed web/mobile appended-page surface, all-family late response, or reviewer control film. |
| T3 | Retained own read time; unstamped preview fallback; older updatedAt and never-unmerge guards in detail/preview/card; queued web override remains open. | [packages/client-runtime/src/state/pullRequests.test.ts:1440](https://github.com/pingdotgg/t3code/blob/bbb5f62a6ff0346b82fd9779187098bec572088a/packages/client-runtime/src/state/pullRequests.test.ts#L1440), [packages/client-runtime/src/state/pullRequests.test.ts:1504](https://github.com/pingdotgg/t3code/blob/bbb5f62a6ff0346b82fd9779187098bec572088a/packages/client-runtime/src/state/pullRequests.test.ts#L1504), [packages/client-runtime/src/state/pullRequests.test.ts:1650](https://github.com/pingdotgg/t3code/blob/bbb5f62a6ff0346b82fd9779187098bec572088a/packages/client-runtime/src/state/pullRequests.test.ts#L1650), [apps/web/src/components/pullRequest/pullRequestList.logic.test.ts:601](https://github.com/pingdotgg/t3code/blob/bbb5f62a6ff0346b82fd9779187098bec572088a/apps/web/src/components/pullRequest/pullRequestList.logic.test.ts#L601). C08/C10 guard subcases are adequately unit-covered; C05 rich sparse values, C09 both observation directions, linked/list permutations and actual hover are not exhaustive. |
| T4 | Untouched client's mounted detail/summary/list refresh after close/reopen/merge through the shared synthetic subscription. | [packages/client-runtime/src/state/pullRequests.test.ts:1773](https://github.com/pingdotgg/t3code/blob/bbb5f62a6ff0346b82fd9779187098bec572088a/packages/client-runtime/src/state/pullRequests.test.ts#L1773), [packages/client-runtime/src/state/pullRequests.test.ts:1826](https://github.com/pingdotgg/t3code/blob/bbb5f62a6ff0346b82fd9779187098bec572088a/packages/client-runtime/src/state/pullRequests.test.ts#L1826). Adequate subscription logic for C15; no real second environment, relay/native client or MCP transport evidence. |
| T5 | Trusted complete merged reply skips confirmation; void/open/failure confirmation does not publish a false merge; queued refresh is announced before confirmation finishes; GH merge/queue summary decoding and malformed merge fallback. | [apps/server/src/pullRequest/PullRequestService.test.ts:1151](https://github.com/pingdotgg/t3code/blob/bbb5f62a6ff0346b82fd9779187098bec572088a/apps/server/src/pullRequest/PullRequestService.test.ts#L1151), [apps/server/src/pullRequest/PullRequestService.test.ts:1210](https://github.com/pingdotgg/t3code/blob/bbb5f62a6ff0346b82fd9779187098bec572088a/apps/server/src/pullRequest/PullRequestService.test.ts#L1210), [apps/server/src/pullRequest/PullRequestService.test.ts:1275](https://github.com/pingdotgg/t3code/blob/bbb5f62a6ff0346b82fd9779187098bec572088a/apps/server/src/pullRequest/PullRequestService.test.ts#L1275), [packages/source-control-github/src/server/GitHubPullRequestApi.test.ts:1998](https://github.com/pingdotgg/t3code/blob/bbb5f62a6ff0346b82fd9779187098bec572088a/packages/source-control-github/src/server/GitHubPullRequestApi.test.ts#L1998), [packages/source-control-github/src/server/GitHubPullRequestApi.test.ts:2062](https://github.com/pingdotgg/t3code/blob/bbb5f62a6ff0346b82fd9779187098bec572088a/packages/source-control-github/src/server/GitHubPullRequestApi.test.ts#L2062), [packages/source-control-github/src/server/GitHubPullRequestApi.test.ts:2436](https://github.com/pingdotgg/t3code/blob/bbb5f62a6ff0346b82fd9779187098bec572088a/packages/source-control-github/src/server/GitHubPullRequestApi.test.ts#L2436). F10's merged-without-mergedAt provider reply still needs its own fixture; F11 other providers absent; routing-to-immediate-merge test does not assert a mounted UI result. |
| T6 | Core-page continuation cursor avoids rereading page1; failed last check affects state; refused reviewer field retries with0 and restores100 on next read; mixed head rejects. F08/F09 backend boundaries are adequately covered. | [packages/source-control-github/src/server/GitHubPullRequestApi.test.ts:3413](https://github.com/pingdotgg/t3code/blob/bbb5f62a6ff0346b82fd9779187098bec572088a/packages/source-control-github/src/server/GitHubPullRequestApi.test.ts#L3413), [packages/source-control-github/src/server/GitHubPullRequestApi.test.ts:3492](https://github.com/pingdotgg/t3code/blob/bbb5f62a6ff0346b82fd9779187098bec572088a/packages/source-control-github/src/server/GitHubPullRequestApi.test.ts#L3492), [packages/source-control-github/src/server/GitHubPullRequestApi.test.ts:3552](https://github.com/pingdotgg/t3code/blob/bbb5f62a6ff0346b82fd9779187098bec572088a/packages/source-control-github/src/server/GitHubPullRequestApi.test.ts#L3552). Continuation uses 1+1 check nodes; it is not an exact100/101 boundary or10-page/repeated/missing-cursor test. UI count and error rendering remain uncaptured. |
| T7 | Fresh authorization on quick merge; ordered batch continues after refusal; routed writes denied without destination grant; server capability/viewer checks. | [packages/client-runtime/src/state/pullRequests.test.ts:1015](https://github.com/pingdotgg/t3code/blob/bbb5f62a6ff0346b82fd9779187098bec572088a/packages/client-runtime/src/state/pullRequests.test.ts#L1015), [packages/client-runtime/src/state/pullRequests.test.ts:1060](https://github.com/pingdotgg/t3code/blob/bbb5f62a6ff0346b82fd9779187098bec572088a/packages/client-runtime/src/state/pullRequests.test.ts#L1060), [packages/client-runtime/src/state/pullRequests.test.ts:2112](https://github.com/pingdotgg/t3code/blob/bbb5f62a6ff0346b82fd9779187098bec572088a/packages/client-runtime/src/state/pullRequests.test.ts#L2112), [apps/server/src/pullRequest/PullRequestService.test.ts:1077](https://github.com/pingdotgg/t3code/blob/bbb5f62a6ff0346b82fd9779187098bec572088a/apps/server/src/pullRequest/PullRequestService.test.ts#L1077), [apps/server/src/pullRequest/PullRequestService.test.ts:1438](https://github.com/pingdotgg/t3code/blob/bbb5f62a6ff0346b82fd9779187098bec572088a/apps/server/src/pullRequest/PullRequestService.test.ts#L1438), [apps/server/src/pullRequest/PullRequestService.test.ts:1472](https://github.com/pingdotgg/t3code/blob/bbb5f62a6ff0346b82fd9779187098bec572088a/apps/server/src/pullRequest/PullRequestService.test.ts#L1472). Adequate command guards; no visual Shift/modifier/sweep, rollback, offline or unsupported state proof. |

Modern snapshot source selection is itself documented by executable tests: [apps/mobile/src/state/use-thread-pr.test.ts:84](https://github.com/pingdotgg/t3code/blob/bbb5f62a6ff0346b82fd9779187098bec572088a/apps/mobile/src/state/use-thread-pr.test.ts#L84) “uses snapshots without polling once the server config loads”, and [apps/mobile/src/state/thread-pr-presentation.ts:106](https://github.com/pingdotgg/t3code/blob/bbb5f62a6ff0346b82fd9779187098bec572088a/apps/mobile/src/state/thread-pr-presentation.ts#L106). Web LinkRow reads link.snapshot and supplies no onActed at [apps/web/src/components/pullRequest/ThreadPullRequestsPanel.tsx:110](https://github.com/pingdotgg/t3code/blob/bbb5f62a6ff0346b82fd9779187098bec572088a/apps/web/src/components/pullRequest/ThreadPullRequestsPanel.tsx#L110) / [apps/web/src/components/pullRequest/ThreadPullRequestsPanel.tsx:281](https://github.com/pingdotgg/t3code/blob/bbb5f62a6ff0346b82fd9779187098bec572088a/apps/web/src/components/pullRequest/ThreadPullRequestsPanel.tsx#L281). Tabs prefer linkedSnapshot at [apps/web/src/components/RightPanelTabs.tsx:815](https://github.com/pingdotgg/t3code/blob/bbb5f62a6ff0346b82fd9779187098bec572088a/apps/web/src/components/RightPanelTabs.tsx#L815). Those named tests establish source selection, not immediate action-reply updates; B12/B19 genuinely need real captures.

**Smallest additional set and priority for the lead.** Under the stated all-81-row contract, no small subset can change the verdict to SUFFICIENT. The strict minimum is to finish all five partial rows and capture the 76 missing rows at their listed obligations. If one more round is available, the highest-value chapters are:

1. **A04 + C11 + C02/C03/C04 at the head:** gate the permissions/detail reply and cursor reads, show reopen before release, retain the post-commit read, include an acted appended row and unrelated settled cursor. Record W-D and actual native appended lists. This resolves behavior changed after the delivered capture; query-level unit tests already cover the primitives, so concentrate on the composed visible paths.
2. **B12 + B19, then B14/B15/B18:** act while modern linked snapshots and hover/legacy readers are retained; hold snapshot updates separately. Include a narrow long/null-author chip and show the actual badge/tab. This tests the broad “every client/reader” claim where existing query tests cannot substitute.
3. **C05 + C07 + C09:** rich nonzero counters/check observations, sparse/explicit false/null reply, equal/missing times in both directions, then a cold offline restart. These are not covered by an empty one-file detail or a callback-spy test.
4. **A03 + D01 + D05:** replace rejected Android proof, add actual iOS and Electron local/remote chapters, confirm file rows and list settlement survive. Retain the full rendering environment including native density and four settled seconds.
5. **A05 light + A06/A07/A08/A09, and F03–F07/F10/F11/F14–F17:** controlled identities, queue/auto paths and exact host response/check boundaries. F08/F09 API mechanics can use the passing named tests as backend proof, but displayed counts/errors still need client evidence.

Any capture round must label its real head/base, retain deterministic gate/RPC events, keep every settled state visible for four seconds, preserve the AE0 settle pair, and keep fixtures replayable until audit completion. There is no current proof of “under the chip”, long-content readability, or keyboard-ring survival; add those exact interactions only if the lead intends to claim them.

The owned preview tab and both owned dev processes were closed; ports6893/14933 were verified free. The detached audit worktree was removed. No device/emulator/lease was started. The lead worktree remained clean and was not removed. Disk stayed at15GB available. Scratch is removed after uploading the review artifact bundle and this report. No WIP branch is needed because no commits were made.

FRICTION:
- forge | GitHub fixture archived and GitCafe fixture deleted; full original action replay was unavailable, and sanitized RPC read bodies were omitted. | Retain disposable writable fixtures and complete synthetic read snapshots through pass2.
- runbook | Uploaded seeding covers projects but not the sidebar thread/cache state shown in delivered captures; paths and historical SHAs are hardcoded. | Ship a complete isolated fixture manifest and parameterized replay adapter.
- tool | Python urllib downloads returned403; curl worked. Preview rejects about:blank, trailing whitespace and >64k expressions. | Use curl and valid HTTP origins; trim/batch browser expressions.
- infra | Detached checkout initially lacked nested dependency links; shared Inter font URL was rejected by Vite outside-root policy. | Prepare dependencies and validate document.fonts before capture; exact font asset loading repaired the environment.

VERDICT: INSUFFICIENT <A01–A18, B01–B19, C01–C16, D01–D06, F01–F17, G01–G05>
