Tickets that unify Beagle's branch-vs-commit-hash disambiguation behind one keeper-owned, branch-first, hash-length-agnostic rule (origin in DIS-025, grammar in URI-spec). Each entry below is one ticket with its live state; an entry drops off once the whole ticket closes. The fix-and-land method is Issues.
082b172c (shared/uri.js fromGit + wire/get/head/post/put intakes, unit test/uri.js). OPEN remainder: file + link the C twin ticket (keeper/WIRECLI.c wcli_spawn still has no scp handling). Filed 2026-07-07.2ff62ff6 — hunk links/banners/status-bar use word URI shape (verb OUT of the scheme slot); the C weave/graf is a linked follow-up. CLOSED.c43324f4 — URI hygiene: ALL URI parse/compose routed through the URI class (URI.make/uri._parse/navUri); manual indexOf/slice+concat retired across ~30 files. CLOSED.0f8bc010 — pager follow inherits the context authority (pager.js _resolveSpell composes via URI.make, idempotent). CLOSED.3edf5cb4 — //name addresses every tree under SRC_ROOT; pager nav restructuring (relative URIs, verbs receive whole URIs). CLOSED..?/dir/file?, or .//../) MUST resolve against cwd then re-anchor to the WT ROOT: jab post .? in be/test means be/test? (submodule onto trunk); live repro cd blog && jab put escher.mkd → PUTNONE. IMPLEMENTED in wt //URI-010 (resolveWtPath; put/delete/post-narrow/log; 148/149 green) — UNCOMMITTED, pending review/merge; native cross-check open. Filed 2026-06-28.d09bd197 — be get file:/…/.be?/proj "no baseline" fix: BE.cli.c trims a trailing / before the .be store-path test (PATHu8sBase returned empty on …/.be/), fixing detection + the .be// round-trip. Repro test/get/59.be: = local keeper (no ssh); file: becomes worktree-only (no own-store clone), slash-agnostic. St.1 LANDED 096b425e (be:-local), URI-007 LANDED 31050b3f (parity), St.3 LANDED 49943c98 (21 file:// tests migrated). St.2 LANDED 6a0ce1b7 (file: worktree-only + slash-agnostic; clone/push path removed; deps URI-008 fa31e6f6 + SUBS-031 60cf0b10). EPIC DONE — be: carries the wire role (local hostless or ssh), file: is local worktree attach.31050b3f — be:-local now at full file:-local parity: cross-name ?/<proj> selector resolution + FF/back-regress refusal (one fix in keeper/REFS.c) + head/patch routing. Unblocks URI-006 St.3. CLOSED — St.3 + St.2 (6a0ce1b7) landed green.fa31e6f6 — be:-local recursive clone now fetches sub objects + co-resident shard: sniff/SUBS.c subs_loc_cb path-probes be:/keeper: like file:, and BE.cli.c hoists the be:→authority rewrite before be_sub_shard_setup. Repro get/63/64. CLOSED — SUBS-031 60cf0b10 gated official sub-push; St.2 6a0ce1b7 landed green (get/63/64 became triangle wt-identity tests).URI-001 (unify branch/commit naming: St.1 branch-first + St.2 length-agnostic full-sha + St.3 scope-only canonical form + St.4-5 retire-guessers/remote-delegation) DONE — all 5 stages landed/confirmed. Topic closed.