GET tickets: checkout / fetch / view / search

be get fetches, checks out, and indexes a version/branch/project (with be head as its dry-run). Tickets below close gaps in be:// store resolution and wire-fetch sizing/dedup. Each entry is one active ticket with its live state; an entry drops off once the whole ticket lands (landed commits stay on the board's GET line). The fix-and-land method is Issues.

Active tickets

GET-021 (a worktree silently diffs/statuses against an advanced cur — phantom mod/mis, revert landmine; be status now PREPENDS a cur-vs-tip post/miss commit block via SNIFF's own DAG walk) landed ef8901fa. Follow-up: the per-file stale re-materialize (the miss rows already warn the user to be get).

GET-040 HIGH (non-force jab get deleted UNTRACKED files, incl. via sub recursion — only get! may clean) landed 0092271c: checkout.js apply force/oldTip model (unlink only tracked deletions, preserve dirty), sub pin+force threaded via submount.js; repro test/sub/untracked. GET-031 HIGH (be get silently overwrote put/patch-STAGED content) landed 8a1f8413: get_pending_stage_stamp routes pending-staged paths to the same weave-merge arm as unstamped edits; two-arm repro test/get/66-staged-overlap-merge. GET-028 (be execs a stale keeper helper → opaque ZINFFAIL clone) landed 39641d17: add_dependencies(be-cli keeper-cli spot-cli graf-cli sniff-cli) in beagle/CMakeLists.txt. GET-014 (back-regress arm: be get trunk re-sync FF-gated via KEEPIsAncestor, keeper/REFS.c reachability-aware) landed b89011fa; repro test/get/57, adversarial test/get/58.

GET-033 (be get …?/<shard>#<sha> dropped the explicit pin — always took trunk tip) landed f425d6a8: BE.cli.c carries the fragment (pinned_explicit), sniff/GET.c gates the empty-query NULL-out on u8csEmpty(u->fragment), + repro be-get-store-shard-pin. (be head ?/<shard> hang + //#hash anchor replay noted, did not recur.)

GET-030 (be get be://host wire keeper: not foundwcli_remote_path() auto-carries the remote dog PATH) landed bbb3692f. GET-029 (bare-post wtlog tail "no baseline") CLOSED — subsumed by DIS-049 9e80e5f0 (single-project clone; test/get/55 covers it).

GET-020 (be get file:<wt> left a HALF-POPULATED tree + SNIFFFAIL under concurrent worktree creation) landed 49039f36. GET-026 (bare be get = default GET + resulting-state banner via the shared ROWS path; orphaned overview moved to STATUS-001) landed 1b5d3def + sub-test fix cb94e64e. GET-027 (be get be:// clone read a degenerate zero-length pack bookmark → WIRECRPT; the "off-by-one hashlet" theory was wrong, two independent bugs fixed) landed a8fa2e87. GET-023 (be get '?#<sha>' silently dropped the #fragment → landed on the tip; classify-or-reject arm + composer-built source URI) landed d6f35358; its regression GET-024 (?#<sha> recorded a DETACHED cur-tip → POSTDET, broke the SSH-gated be-put-06-triangle) landed 134b9e30 — fixed in the same arm (record trunk-state) + a non-SSH-gated guard in test/get/33-detached-refuse-commit. GET-025 (a SHORT ?#<short> recorded the wtlog cur-tip + keeper REFS tip verbatim → the 40-char-only baseline resolver read EMPTY: whole tree new, be head stuck) landed 4737404d — record the RESOLVED full sha (a_sha1hex(tgt_commit_sha)) in the row + REFSAppendVerb; step 6 in get/33 + fragref case 2. Also repaired the live dogs/refs (2 short rows the bug had written last night, blocking all posts).