91 ok over two files holding uncommitted work — unexplained, not reproducedObserved 2026-07-14 on journal/be: jab status reported 91 ok (all clean) while core/loop.js and verbs/mark/render.js both held uncommitted local work. After an unrelated same-tip jab get reconcile the SAME command reported 89 ok, 2 mod. Nothing but the two files' mtimes changed. Uncommitted work was invisible to status for an unknown period — a get! would have discarded it with no warning.
jab status | cat → 91 ok, and reproduced by a fresh-process jab status (so not a resident-loop artifact alone).verbs/mark/render.js (19078 B) carries a <figure>/<figcaption> renderer the tip does not have; core/loop.js (29376 B) carries a small edit (+33 B, same 514 lines).c72e6d54 (loop.js) and 2ea3e1bf (render.js) both miss store.open("/home/gritzko/.be","beagle-ext").getObject(h).render.js blob 06f9d7ab IS found by the same probe.f21f30f5 AND of the prior tip 33295788 both give render.js = 16770 B with zero figcaption hits.oldTip == tip (same-tip reconcile) base == theirs, so weave3 returns ours verbatim (verbs/get/get.js:895-899) — the mrg rows were byte-identical rewrites that only bumped mtime to 14:53:52.mrg row (cmp clean) — so the pre-get bytes were the same dirty bytes status called ok.mod immediately, and backdating the edit's mtime to before the last get record does NOT hide it (shared/classify.js:34 — hashes content, "never mtime alone").mod, never counted ok.get/get! over this tree as capable of discarding invisible work.be/..be.idx (binary wtlog index, mtime 13:26:24) → wtlog.curTip() yields a baseline that is not the wtlog's last get recordbe/.be line 54) died part-way, leaving wtlog/index state inconsistent — same blip as SUBS-053shared/classify.js:90-95 nestedPrefixes wrongly excludes paths from the wt scan (a dir carrying .be/.git); note be/jsrc -> . is a self-symlinkclassify.js/status.jsok over edited bytes//STATUS-008-f21): the "live repro" claim was WRONG — status there is CORRECT. The figcaption render.js was COMMITTED upstream between Jul-14 and Sat-18: c32ddd17's tree entry for verbs/mark/render.js IS 2ea3e1bf (19078 B, in store after today's get fetched c32's objects); disk == baseline ⇒ clean is truthful (wtEqBase classify.js:143-177 full-hashes, no skip; the STATUS-011 stamp shortcut provably did NOT fire — mtime 26714D0000 is not in the stamp set). Earlier "in no commit / not in store" checks were made against the OLD f21 pin / pre-fetch store — the wiki de-jure-vs-de-facto lesson: verify against the CURRENT baseline.core/loop.js (blob c72e6d54 ≠ either base, i.e. PENDING per GET-048) with c32's 422a2357 — no weave, no warning, edit unrecoverable. That is a GET data-loss vector (suspect the GET-050 stamp false-clean at get's pending check), NOT a status under-report → pursue in GET-050/GET-051.jab cat 'verbs/mark/render.js?#c32ddd17' in that tree returns blob ce2d06c8/19107 B — NEITHER the commit's tree entry NOR in the store; the <path>?#<commit> cat/resolve misresolution also tainted the manual verification → URI-018.STATUS-008.evidence/ snapshot is retained but is now known to be the committed blob.