MEM-024 DONT: push-side recursive walk holds 1MB mmap per frame (keeper/WIRECLI.c)

Now
DONT

On the push path wpush_walk_commit and wpush_walk_tree mmap a 1MB buffer and recurse before unmapping, so a long linear commit chain or deep tree stacks one C frame plus one live mmap per level. The dedup count caps bound distinct objects, not single-chain depth: haveset-build callers pass out==NULL so no count cap applies at all, and pack mode's cap (65536) far exceeds the ~8MB C stack. A deep/force-pushed history stack-overflow SIGSEGV; the discarded recursive return also drops errors. (Category is unbounded recursion the NORESERVE mmap is reclaimed on unwind, not leaked.) The goal is to bound depth and stop holding the buffer across recursion.

Issues

Recursion per parent/subtree with a 1MB mmap live across the call; caps don't bound depth.

Blockers

None.

WIP

Re-verified 2026-07-07: the tree arm was fixed by KEEP-001/POST-021; the commit-chain recursion (and a new sibling walker) remains.

TODOs

Blockers and bummers

None.