Codex CORE: the dismissed-set was keyed by bare approval_id, but gateway/run sources preserve externally-supplied IDs without session namespacing — so two sessions carrying the same approval_id collide and dismissing in session A hides session B's still-pending approval. Fix: _approvalDismissKey(sid, approvalId) builds a session-namespaced composite key, threaded through _isApprovalDismissed, _markApprovalDismissed, _unmarkApprovalDismissed + all 5 call sites (showApprovalCard, dismissApprovalCard, respondApproval, no-pending poll cleanup). Updated 4 stale assertions to the namespaced signatures + added a functional node-driver cross-session-collision regression (proven non-vacuous). Co-authored-by: Rod Boev <rod.boev@gmail.com> |
||
|---|---|---|
| .. | ||
| vendor | ||
| apple-touch-icon.png | ||
| assistant_turn_anchors.js | ||
| 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 | ||
| outline.js | ||
| panels.js | ||
| pwa-startup.js | ||
| sessions.js | ||
| style.css | ||
| sw.js | ||
| terminal.js | ||
| ui.js | ||
| workspace.js | ||