GET-001: weave merge of long-history files exhausts BASS (BNOROOM)

GET's checkout weave-merges every wt-dirty file the incoming commit also touched; on a large file with long history the merge aborts with BNOROOM, so GET prints merge failed … (graf err) and leaves that file unmerged. The cause is in Graf: the per-file history-replay loop calls WEAVEFromBlob / WEAVEDiff directly with no per-version BASS rewind, so the per-call WEAVE_DECODE scratch — sized off the weave's TLV, which grows each version — accumulates across all versions until the 1 GB arena overflows. The goal is to reclaim that scratch per version. See GET, Graf, BASS.

Issues

A direct (un-called) replay loop accumulates BASS scratch quadratically.

Repro

Confirmed against the live store (base 10e0bebd, tgt c54a8c72) via a harness calling GRAFMergeWtFile directly.

Blockers

None; the fix is local to build_tip_weave_tunable in graf/GET.c.

Planned

Give each replay step a call() boundary so its scratch is reclaimed per version; verified to turn both files' merges from BNOROOM into OK.