Codex+Opus regression-gate finding: _isRecoveryControlMessage / _streamRecoveryControlMessage fell back to matching provider_details_label==='interruption details'. But a GENUINE 'Response interrupted' card (Stop button, real provider crash) carries that exact label, so the filter would drop a real user-facing interruption from the transcript on the next render/restore — the inverse of the #3300 data-loss class. Require the explicit server-set recovery_control marker; keep only the two fully-anchored synthetic-text matches for pre-marker backward-compat. Adds a node-driven regression test (revert-verified) asserting a label-only interruption card and a real user turn stay visible while marker + strict text are filtered. |
||
|---|---|---|
| .. | ||
| vendor | ||
| apple-touch-icon.png | ||
| boot.js | ||
| commands.js | ||
| favicon-32.png | ||
| favicon-192.png | ||
| favicon-512.png | ||
| favicon-512.svg | ||
| favicon.ico | ||
| favicon.svg | ||
| i18n.js | ||
| icons.js | ||
| index.html | ||
| login.js | ||
| manifest.json | ||
| messages.js | ||
| onboarding.js | ||
| panels.js | ||
| pwa-startup.js | ||
| sessions.js | ||
| style.css | ||
| sw.js | ||
| terminal.js | ||
| ui.js | ||
| workspace.js | ||