@@ -32,8 +32,8 @@ tinting, navigation. Up: [`../CLAUDE.md`](../CLAUDE.md). Full file table and con
3232 ` firstSelectedIndex(idxs, hasParent) ` , which skips the ` .. ` row. Don't use raw ` idxs[0] ` ; it can be ` .. ` .
3333- ** Snapshot pane (` volumeId === 'search-results' ` ) couples two points** : ` computeHasParent ` returns ` false ` (no ` .. `
3434 row, via ` hasParentRow ` ) AND opening a real entry must LEAVE the snapshot volume — ` FilePane.handleNavigate ` (gated on
35- the ` isSearchResultsView ` capability ) resolves the entry's ` Location ` and bubbles it via ` onGoToLocation ` → the
36- ` { location } ` switch arm. Skip either → off-by-one selection, or ` search-results ` stuck on a real path.
35+ ` isSearchResultsView ` ) resolves the entry's ` Location ` and bubbles it via ` onGoToLocation ` → the switch arm. Skip
36+ either → off-by-one selection, or ` search-results ` stuck on a real path.
3737- ** The MTP clipboard refusal gate keys on ` caps.kind === 'mtp' ` , not ` !supportsSystemClipboard ` ** (network and
3838 search-results lack one too, so the MTP-worded toast would misfire).
3939- ** The focus guard (` DualPaneExplorer.handleFocusGuard ` ) must keep its ` [role="dialog"], [role="alertdialog"] `
@@ -42,11 +42,10 @@ tinting, navigation. Up: [`../CLAUDE.md`](../CLAUDE.md). Full file table and con
4242- ** Nav-state persistence fires from ONE subscriber** (` persistence-subscriber.svelte.ts ` , invariant A5). Don't scatter
4343 ` saveAppStatus ` / ` saveTabsForPaneSide ` calls across nav paths: mutate the store and the subscriber reacts (exceptions
4444 in DETAILS).
45- - ** ` navigate(intent, deps) ` is the single coordinator-level pane-nav entry.** ` { location } ` self-routes by volume;
46- ` { volumeId, path } ` always switches; resolve bare paths to a ` Location ` at the edge
47- (` navigation/resolve-location.ts ` ), never feed a bare path in. Refusal ` message ` strings are byte-pinned contract (the
48- MCP adapter forwards them verbatim); don't make the in-place arm commit immediately; don't add ` cd ` -style heuristics
49- in ` commitPathFromListing ` (extend the explicit prefix branch for a new virtual namespace). DETAILS § "The navigate()
45+ - ** ` navigate(intent, deps) ` is the single coordinator-level pane-nav entry.** ` { location } ` self-routes by volume
46+ (same → in-place, different → switch); ` { volumeId, path } ` always switches; resolve bare paths to a ` Location ` at the
47+ edge (` navigation/resolve-location.ts ` ), never feed a bare path in. Refusal ` message ` strings are byte-pinned (the MCP
48+ adapter forwards them verbatim); don't make the in-place arm commit immediately. DETAILS § "The navigate()
5049 transaction".
5150- ** Self-drag drop builds from recorded app state, not the pasteboard** (` handleDrop ` consumes
5251 ` consumableSelfDragIdentity ` only for an active self-drag from a registered backend-real volume). See
0 commit comments