# PR #23608 proof matrix (audit pass 1, Claude Opus 5.5, head 8ab400149c)

Before = main 8d3b061121 (MessagesTimeline.tsx and ThreadFeed.tsx identical to merge base ed3f965e07). After = 8ab400149c.
Every visible row: a real provider turn N finishes with interim messages folded under "Worked for ..."; open that fold first; then start N+1.

| # | Row | Steps | Before | After | Visible in real app | Needs |
|---|---|---|---|---|---|---|
| 1 | User-opened fold + follow-up | Click "Worked for ..." open, send follow-up | Fold closes ~1 s in when N+1 starts | Fold stays open | Yes | Real provider |
| 2 | Thread switch and back + follow-up | Open fold, click another thread, come back (fold restored on both), send | Closes when N+1 starts | Stays open | Yes | Real provider + 2nd thread |
| 3 | Citation-opened fold | Open fold, select interim text, Cite, close fold, click composer chip (fold reopens), send | Closes when N+1 starts | Stays open | Yes | Real provider |
| 4 | Find-opened fold | Fold closed, Ctrl+F, type word only in folded message (fold opens), Escape, send | Closes when N+1 starts | Stays open | Yes, find must be closed before send | Real provider |
| 5 | Interrupt auto-expand then next run | Stop a multi-step run, send next prompt | Interrupted run never folds (interrupt item) | Same | No | Browser test `folds an interrupted turn it expanded once the next run starts` |
| 6 | Interrupted run already open then next run | As 5; cannot be pre-opened in real app | Same | Same | No | Browser test `keeps an interrupted turn that was already expanded open...` |
| 6b | Interrupt, thread switch, next run | Web clears marker on identity change | Unfolded | Unfolded | No | Code reading only |
| D | 390 dark pair | Row 1 at 390 wide, dark | As row 1 | As row 1 | Yes | Real provider |

Why rows 5/6 are invisible: Stop always writes run_interrupt_request (Orchestrator.ts) and the finalized run a run_interrupt_result (RunExecutionService.ts); web never folds a run with either item (MessagesTimeline.logic.ts ~1010-1023, 1118), mobile never folds one with the result item (apps/mobile/src/lib/threadActivity.ts ~1132, 1150).

Mobile: infeasible here. No static fixture mode (EXPO_PUBLIC_SHOWCASE needs three real paired servers and cannot start a run); Device panel access is off in this environment; only an EAS dev build + Metro tunnel with a live provider could show rows 1-2.
