Incident 2026-07-17, work/ABC-016: tree CLEAN at local head ?467fb44b (ahead 1, behind 5); jab get dissolved the committed delta into 11 mod rows AND del-ed test/EXIT.c (a file the local commit ADDED — the merge used the local head as diff base, so a local add read as an upstream deletion; data loss). gritzko clarified GET the same day: get "never changes history — it only resets the worktree to a chosen version, maybe re-applying uncommitted changes"; §4: ONLY uncommitted changes are carried by weave. get.js classifies per-file "differs from base" as dirty without asking whether the delta is committed.
be/verbs/get/get.js (weave path ~:485-530): dirty-vs-clean is judged against the BASE; a committed local head's files all "differ from base" and get weaved. Spec-conforming behavior for ABC-016's case: plain reset to the target, tracking re-pointed, ?467fb44b left intact in the store for an explicit patch '#467fb44b' + post (the Verbs.mkd cheat-sheet route).
get! and this ticket's machinery goes STALE — see there before extending it.del (wrong under ANY reading; a true 3-way base keeps a local add of uncommitted files).cat path?ref printing empty is separate, needs own ticket).get tests differentiate the case matrix; code complies with the clarified spec.
patch stays the merge verb (no auto-merge of divergent heads).Fix is 3 spots in verbs/get/get.js: leaf weave base = cur (oldSha), never the merge base (:986) — a committed delta reads clean and clean-overwrites to target; in diverged mode a path absent from the merge-base tree is a locally-committed add — unlinked by the reset but NO :951); basePaths demoted to del-row classifier (~:559). No auto-merge — divergent heads stay del row (patch's job.
del row; blob intact in store).-LE big; ABC-016 scenario re-run end-to-end (upd+post rows, one mrg for the real edit, head recoverable).test/get/dag-diverge DELETED as superseded (asserted the old §3.4 weave-of-committed-edits, spec text removed the same day; divergent-clean-reset covers the scenario spec-correctly). Suite 269/269 after re-glob; deletion pending as mis in the test subrepo.The dag-diverge contradiction above is the only red; its header also stale-claims the case is unregistered.
UNCOMMITTED in work/GET-048: mod verbs/get/get.js (3 hunks); test subrepo: 3 unk run.sh (test/get/divergent-*). Orchestrator re-verified the 3 new cases green + dag-diverge red. Suggested commit: GET-048: divergent get resets, never replays commits.