Files
Michael Ramos 36d59d3bbd fix(ui): vim/popover Escape ownership, ladder defaultPrevented, doc-flow accuracy (PR7 review)
F1: with vim enabled, Escape on an open ActionMenu/ApproveDropdown/
DecisionControl was consumed by useVimDocumentFocus (registered first on
document, preventDefaults while reclaiming focus; the popover hook then
skips the defaultPrevented event) and the menu stayed open. Open popovers
now stamp data-pn-dismissable-popover and the vim hook's
BLOCKING_OVERLAY_SELECTOR treats them as blocking overlays, so vim defers.
Pinned in ActionMenu.test.tsx (verified failing without the selector entry).

F2: the plan editor's diff-exit Escape listener gains the defaultPrevented
early-return so a popover-consumed Escape no longer also exits the diff
view. Audit of the remaining document-level Escape listeners found only
component-internal ones (Settings theme preview, which already consumes;
dialog focus traps handle Tab, not Escape) — left alone.

F7: onDismiss callbacks memoized in ActionMenu/ApproveDropdown so
useDismissablePopover stops re-registering listeners every render while
open.

F8: ActionMenu.test.tsx, PlanHeaderMenu.mobile.test.tsx, and
ReviewHeaderMenu.mobile.test.tsx were DOM-gated but never registered in the
CI DOM lane; added to the test.yml file list so they actually run (the F1
pin lives in a lane-registered file).

F3-F5 (docs): test-opencode-review.sh stdout describes the decision control
(Approve at zero) instead of the removed always-on Send Feedback button;
UI-TESTING.md's platform-mode flow uses the real positional PR URL; the
AGENTS.md annotate flow diagram ends on the adaptive primary like the
review diagram.
2026-09-02 13:10:47 -07:00
..