be get/patch FF-weave bails with graf err and leaves the file UNMERGED when the commits aren't indexed — the correct fallback is to INDEX the commits and RETRY
When a store-backed worktree that is BEHIND trunk is fast-forwarded (be get '?'), files that diverged on both sides need a 3-way weave. If the relevant commit DAG is not indexed, the weave drops to build_tip_weave_tunable's no-history fallback (graf/GET.c:537-548), which stamps each side's blob with its own tip hashlet so the two sides share NO baseline birth-ids → WEAVEApply matches nothing → GRAFFAIL (sniff/GET.c:748), and sniff prints merge failed … (graf err) — leaving wt content untouched, i.e. the file is left UNMERGED. The only correct fallback is to index the commits and RETRY the weave — never bail, never silently return ours. See PATCH, POST, Graf.
be"): FF the BE-004 store-backed worktree ~/todo/BE-004-new (cloned behind trunk) onto current trunk → be get '?' → merge failed for bro/BRO.c (graf err) and graf/BLAME.c (graf err) — leaving wt content untouched. Reproducible on demand from any behind-worktree FF where both sides touched a file.(void)-ignored GRAFIndexFromTips guard (sniff/PATCH.c:1857, comment: "Without this the merge silently returns ours's bytes") is the smoking gun — the index step exists but its failure is swallowed.ours.be get '?' operation merges the divergent files (demonstrated on a live behind-worktree), not "tests green".graf err is a verb-layer base/target SELECTION failure" is withdrawn — it was asserted without a live repro. Diagnose from the repro now available, not theory.git merge-file (the frozen SUBS-019 trio, 135584 B, clean via GRAFMerge3Bytes/GRAFMergeWtFile/GRAFMergeWtFileTunable). So the engine is correct; the bug is the verb dropping to the un-indexed fallback instead of indexing + retrying.graf err (regression test, e.g. extend graf/test/MERGEWT01.c).build_tip_weave_tunable / GRAFIndexFromTips); propagate index failure (drop the (void)), never leave-untouched / return-ours.be get '?' on a real behind-worktree MERGES the divergent files.