dog/ is the shared layer between abc/ and the verb dogs (sniff/keeper/graf/spot/bro). Tickets here move generic, multiply-used machinery DOWN into dog/ and rework its APIs. Current focus: relocate the token-level history engine out of graf/ into a columnar, HUNK-compliant dog/WEAVE reusable by every dog and keyed on real commit ids. Plan-shaped pages, cleared via the Issues loop.
dog/WEAVE ({text,toks,ins,rms,commits}); full design in its api. new API, delete graf/WEAVE.{c,h}, update both INDEX.md.
dog/ out of beagle into a libdog submodule (the libabc pattern); zero consumer churn, blocks JAB-005.Review-originated (2026-07-06 libdog code-quality review; security first):
WEAVEParse/WEAVEStep/WEAVEAlive trust wire inserter/remover indices + token offsets → controllable OOB write + reads..be anchors (CVE-2022-24765 class): store-root redirect, .. segment escape, symlink-follow creates, TOML injection.URIutf8FeedSafe, skip-and-continue rebuild.HUNKu8sRelay use-after-rewind; unified-diff 4096-cap drops lines / inconsistent @@ headers.u64map vs HASHx, dup ULOG walks + HUNK render blocks, qsort → SORT.git/PACKResolveOfs ping-pong sizing invariant (half<=baselen) undocumented → latent heap overflow; distinct from MEM-022.git/IGNOGlob catastrophic backtracking ReDoS from an untrusted .gitignore; iterative wildmatch / step budget.FILE_WANT_BUFS[fd], NEILShift bound, HOMEProjectExists doc drift, etc.Perf (2026-07-07 WEAVE perf audit session):
Fuzz coverage (2026-07-12 dog/fuzz review):
DELTApply (only the OFS chase is fuzzed today).fuzz/NEIL.c back into the build; drop its dead graf/JOIN.h dependency.