be blame: mis-attributes lines to the root commit + slow commit load (research)
be blame:ABC.md attributes 5 pieces to c7184818 ("initial", 31Jul24) — the ROOT commit — but ABC.md is a recent doc that almost certainly did NOT exist at that 31Jul24 import. So the line-trace appears to FALL BACK to root when it loses a line's true origin. Separately, clicking/loading c7184818 takes SECONDS. Two suspected defects (one correctness, one perf) — research first, then decide fixes. Method: Issues.
be blame:ABC.md (307 hunk lines) pins 5 pieces to ?c7184818#initial
(first piece is line 1). be log: tail confirms c7184818 (31Jul24 "initial", parent of 31902055 "compat: bswap") is the root commit.
was NOT in the 31Jul24 initial tree. Blaming its lines to root ⇒ the blame DAG/line-trace likely falls through to root instead of stopping at the file's real introduction (or a diff mis-attributes context onto the boundary commit).
c7184818 link in the blame view takes seconds to load.
The initial import is large, so commit:?c7184818 may inflate/serve a huge tree/diff, or the load path is inefficient.
be blame:ABC.md.
in c7184818's tree at all? where was it actually introduced? is there a root-fallback / lost-origin path in the line trace?
commit:?c7184818 load.GRAFblameident).ABC.md was DELETED at 006b9039 (18Nov24 repo reorg) and
RE-ADDED as a different doc at 8948262e (22May) — its true add commit, owning 20/28 pieces. The 5 root-pinned pieces (line 1 H1 title + 4 blank lines before ## headers) are structural tokens whose content-only RAPHash (BLAME/WEAVE.c :502,510) COLLIDES across the delete/readd.
graf/BLAME.c:480 (if (dr==BLAME_DESC_ABSENT) continue;)
+ the twin at :492: when the file is absent at a commit, GRAFFileWeave SKIPS it instead of folding an empty (delete) layer, so the old root tokens never die; the readd's matching tokens then inherit root's seq via the WEAVE EQ keep-seq branch (WEAVE.c:579-586). Fix: fold a delete as an explicit empty layer (the all-delete path WEAVE.c:534-540 already exists) so tokens die at the delete commit → readd is a clean all-INS at 8948262e.
commit:?<root> (BE.cli.c:332/relay :453-459) runs graf
diff:?<root>; graf_first_parent_hex GRAFNONEs the parentless root, falling to GRAF.exe.c:505 → GRAFDiffTreeRefs (DIFFREF.c:564) which token-diffs the ENTIRE 291-file initial tree as all-INS — O(repo), 4.35s (vs 0.16s typical). Fix: emit raw all-add when one side is empty (skip token-level weave diff).
BLAME.c
480/492 + WEAVE fold-on-delete) and BLAME-006b (root/whole-tree diff: perf, GRAF.exe.c:505/DIFFREF.c:564). Independent; any blame fix keeps GRAFblameident byte-identical.
8948262e (deleted 006b9039, root not it); the 5mis-attributed = title + blank lines that RAPHash-collide across the readd.
graf/BLAME.c:480/492 skip-on-absent, no empty fold.GRAFDiffTreeRefs whole-tree all-INS (DIFFREF.c:564).
BLAME-006b (root/whole-tree diff: perf). This ticket = the umbrella scan; fixes land under 006a/006b.