//WT/dir/ ($PWD); prompt-like address bar //WT/dir/: verb args; cd before verbsThe fat context URI (authority+path+?rev+#hash all mutable slots) is not working well; ruled 2026-07-12 to reduce context to worktree+path only, exactly $PWD for the verbs. The pager address bar becomes a shell-like invite: context left of : , verb invocation right of it. Verbs execute with the process actually cd'ed into the context dir so nothing is mistaken; the revision axis leaves context and goes explicit into spells and links. Rewrites the context part of Nav (already flagged stale, BRO-023, BE-030).
?branch/#hash; the slot-edit machinery around that bred bugs: mergeUri slot edits BRO-018, the stale follow resolver BRO-016, the empty initial context BRO-017, completion context BRO-022.resolve(context, base, rel) at the verb entry, the pager is arg-blind (URI-010, URI-011, BE-039).//WT/rel/dir/, nothing else; it is the $PWD of the nav framework, in the CLI it literally IS the pwd.:post in a pager at context //BRO-030/ ran against the LAUNCH tree (journal/be) — BE-039 threads context onto ARGS only, so an arg-less mutation verb keeps the launch ambient; post's implied ///be/ track then hit the POST-026 self fall-through → ` ? can not be fast-forwarded `. A MUTATION aimed at the wrong tree — the cd-before-verbs goal is the fix.//ABC-123/dog/: and the typed spell after it, e.g. //ABC-123/dog/: status.?rev/#hash appear in spells and in clickable links only; diff/status take the base of comparison as an arg, object-extraction views (blob, tree, commit) take it likewise; walking around a commit uses hash-carrying links... clamps at the //WT root; // addresses the main tree.///), outside it there is no context.resolve() + absolute paths remain the law at verb entry; the cd is a backstop, not a substitute — cross-worktree args (//OTHER-999/file) still resolve explicitly.be:// context) stays out of scope: TODO, remote resources reachable via explicit verb args only.//WT or // for the main tree; pwd must sit under SRC_ROOT (///).:put at //BRO-024/ staged only test/bro/context/* — PUT-008's ctxSub read be.ctxDir, a THIRD context source diverging from the handed context (launch dir was the cell root, so the divergence is in the ctxDir mint, not launch-stale).:diff shared/spell.js then :vim opens the file, because it was the only hunk open. The default arg comes from the VIEW's sole subject, never from the context (context stays dir-only); ambiguous multi-file views imply nothing.//WT/dir/-only context, invite format, explicit-rev links; drop the ?rev-context clauses//WT/dir/: ; keep the spell text right of the colon; red invite when the dir is gone (iter 1, work/BRO-024, test bro/context)//WT/dir on every navigation (follow, slot-edit, back); ?rev/#hash never enter it; verb word-calls (call flag) never move it (iter 1)//BRO-024: diff shared/spell.js renders the file diff but the bar read //BRO-024/: diff, and back/refresh re-ran the BARE verb (iter 3: view.call={verb,spell,context,disp} recorded; replay runs the RECORDED spell in ITS context; back re-anchors context from it)
:put x then R re-ran the put) — _refresh now refuses mutation replay, restores saved hunksdisp is never re-relativized after a later context move; O-click mutations still derive authority from _verbUri() not view.call.context_navTo→io.chdir; replay chdir's to the recorded call.context, restores in finally; DELETED: pager this.ctx + ctxFrom, launch this.context + launchContext, be.ctxDir + mint sites (ctxSub/argRel read io.cwd()); regression legs: ctxsub-root-whole-tree (the bare-put mis-scope), nav-chdir-cwd, nav-invite-from-cwd
/ query in ULOGAppendAt (.be/?/ → .be/?, broke sub-wtsrc) — verified by direct abc._ulog_append probe vs the Jul-10 binary; runtime ticket due (suspect: the JS-108 JABCStrOfSlice sniff, not the chdir binding)_restoreQuerySlash in shared/ulog.js repairs the strip post-write, self-neutralizes on a fixed runtime — DROP it once the C fix landsio.chdir landed in the jab runtime (work/JS-108b) and is in the installed jab; subsumed by the ONE-VAR TODO above (cwd IS the context, no per-verb wrap needed except replay)
_drive(spell, context) helper over the 5 driveSpell sites, _refresh passes call.contextio.spawn/spawnFds take no cwd arg — a child editor's cwd disagrees with the context (harmless today: vim absolutizes its file arg)?rev/#hash-carrying U tokens; commit-walk links carry hashes
.. at the //WT root — pager side (iter 1; mergeUri's silent-pop clamps once context is dir-only)// to the main tree; CLI: reject pwd outside SRC_ROOT (///) with a defined no-context error///work/JS-112/: status instead of //JS-112/: status — iter 5: navCwd (core/discover.js) named the tree by slicing the top-wt's fs path under srcRoot(); now a hive cell (*/work/<name>) is named by its CELL name, and a tree directly under SRC_ROOT never climbs past the hive boundary (test leg k, nested fixture)
wtdir/resolve lack the same nearest-hive awareness — //CELL from a nested hive does not round-trip (falls back to cwd scope; lossy after cross-tree nav), and with SRC_ROOT=//JS-112 ALIASES the flat ` vs the journal cell ~/src/journal/work/JS-112`be-js-bro-vim nav leg green again unedited (iter 2, _viewSubject)
diff discover.js open at //BRO-024/core/, bare :cat → no hunks: cat core/discover.js — the implied subject rode in the hunks' ROOT-relative unprefixed form and the verb re-resolved it against the context dir; fixed at the subject source: _viewSubject anchors via _fillAuth(subj, _context()) (test leg l; display stays relative)
diff <file> subject drops its ?query (v.uri = ctx dir, path never matches); _ctxKind's dir-check still stats the UN-anchored subject5ebf0c8d, 2026-07-12)
_resolveSpell (pager.js:329) survives on the follow path beside the new ctx tracking; retire-onto-one-composer still dueverb! peel + RESET-eats-?ref + FILE-as-DIR superseded (dir-only ctx); schemed-token verb re-derive + empty-verb buildSpell still open_fsCompletions roots on the LAUNCH tree (pager.js:678) and ./ anchors on _verbUri(), not _context() — completion vs resolution anchors disagree.. clamp, red-when-gone, bare-verb implied arg, recorded invocations + mutation-replay guard) committed 5ebf0c8d "BRO-024 working minimum" in work/BRO-024 (gritzko, 2026-07-12); not yet merged to trunk5ebf0c8d: 186/188, the 2 red are the pre-existing get #-framing pair (own ticket pending)