Files
pad/web/e2e
xarmian fe04de0f8f feat(web): detach at depth>0 — clear list highlight + gate pane-snap (TASK-2161) (#965)
At stamped pane depth>0 the split-pane detail is a detached mini-browser,
so the collection list must go inert. TASK-2157 already made
schedulePaneFollow bail at schedule time and re-check depth in its fired
callback, cancelled the pending follow on navigatePaneTo, and made a
detached list-row click RESET the stack (never a replace of the drilled
entry). This closes the two remaining detach gaps from PLAN-2154
Architecture C / D-detach:

- focusedItemId (the List/Board/Table row-highlight marker) now gates on
  currentPaneState().paneDepth === 0, so the highlight is CLEARED once the
  pane drills past its base and re-appears on unwind (page.state is
  reactive).
- the pane-snap $effect bails when depth>0, so it no longer snaps the
  cursor to a drilled item that may not even be in the list.

Together with the pre-existing schedulePaneFollow guards, j/k is fully
INERT at depth>0: no pane-follow and no visible highlight movement.

Tests (e2e/pane-controller.spec.ts): a highlight-cleared-and-restored test
(drill clears the row highlight, j/k can't re-introduce it, browser Back
restores it) and the R3 late-timer test (a j/k follow scheduled at depth 0
does not clobber a drill to depth>0). Full pane-controller suite (9) +
pane-a11y-focus (6) + collections vitest (157) green.

Claude-Session: https://claude.ai/code/session_01EZ6yr6pAUFb1uffan912ra
2026-07-18 18:41:52 -04:00
..