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 merge is 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.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.rms-column NOROOM.dog/).25fb62bd (beagle) / 489865d8 (libdog): 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.WEAVE.{c,h}; follow-ups DIS-043 f9aac14b/DIS-044 29210947/DIS-045 05e61136 landed. Closed.8eece3f3. Emit is DOG-004 (WIP).