dog/WEAVE core — format + Parse/Next/Merge/Produce
Build the new dog/WEAVE engine per DOG-001/api: the columnar parsed view, the HUNK-compliant codec, and the build/produce ops — WEAVEParse, WEAVENext (linear fold), WEAVEMerge (identity-keyed fork merge), WEAVEProduce (any past rev as scoped-alive bytes) — plus the sequential cursor and a table-driven test. Emission is DOG-004; this ticket owns the data model and correctness core. Gates on DOG-002.
WEAVEFromBlob/Diff/DiffCarry/Apply + WEAVE_DECODE/wdec
/weavedec with one columnar form (the runtime decode made canonical).
(commits[ins], ordinal) on a stable u64 id, so mergeis a shared-sequence interleave — the DIS-003 robust fix.
WEAVEParse zero-copy view; WEAVENext(into,w,blob,ext,commit) folds one
blob (RAPHash + relocated BRAM/NEIL); pos recomputed, not stored.
WEAVEMerge(into,a,b,merge_commit) unions removers and orders concurrent
runs by commit id (total, deterministic — no timestamp tie-break).
WEAVEProduce(w,scope,out) emits rev content; WEAVEAlive the tip fast
path; weavecur decodes ins/rms in lockstep with toks.
tok32 offset): detect-and-fallback wired here,
exercised by DOG-004's large-file path. commits[0] = spine.
u64 identity collision guarded by must() at table insert.ins/rms are
blocked-ZINT, pre-expanded to BASS u64 columns at Parse for O(1) access.
WEAVEMerge walks A/B by per-commit ordinal: shared tokens match by id,side-only runs splice in, collisions order by id. Markers are render-only.
from today's weave_diff_core (DIFFu64AddEntry, no raw writes — MEM-036).
dog/WEAVE.h (signatures + doc) per api; dog/INDEX.md entry.WEAVEParse/codec; weavecur; WEAVEAlive/WEAVEProduce.WEAVENext (fold one blob); WEAVEMerge (identity interleave).dog/test/WEAVE01 (round-trip + diff_fold + merge_fold);
the abac/aabc holdout class folded in as merge_fold_multirm.
Next/Merge content-recovery: dog/fuzz/WEAVE.c (DWEAVEfuzz),
corpus $HOME/Corpus/DWEAVE.
every shared id, union removers); fixed the rms-column NOROOM.
split out as DIS-043; needs a stable per-token order key.
dog/).linear/simple-fork histories only until the order key lands.
25fb62bd: columnar dog/WEAVE core (Parse/Serialize/Next/Merge/Produce/
Alive/Step/Scope) + dog/fuzz/WEAVE (DWEAVEfuzz) content-recovery fuzzer + dog/test/WEAVE01. NOROOM (rms column) + LCS→identity-JOIN fixed here.
landed 8eece3f3. Emit is DOG-004 (WIP).