weave.fold: failed (out full?) — the diff/weave fold buffer overflows without grow-on-fullerr: Error: weave.fold: failed (out full?) — the JS weave.fold (WEAVENext, the diff/merge fold binding over the C WEAVE; see be/verbs/patch/patch.js:12) overflows its output buffer ("out full") on a large fold, and the caller does NOT grow-and-retry. be/core/loop.js:128-142 ALREADY does grow-on-"out full" (doubles the cap, replays the held records) — but a DIRECT weave.fold call (the diff:/commit: diff path in be/views/diff/diff.js) lacks that, so it throws. Surfaced live via COMMIT-006's commit: diff-inline on a commit with a large change. Sibling of DIFF-007 (diff outtoks overflow) + the JS-055 grow-on-NOROOM pattern. Method: Issues.
err: Error: weave.fold: failed (out full?). weave.fold =
WEAVENext (binding over C graf/dog WEAVE); its output buffer fills ("out
full" = the binding's NOROOM) on a large diff fold.be/core/loop.js:128-142 grows on "out full" (double cap + replay) for the
LOOP's records; :142 only grows when the error includes "full". A DIRECT
weave.fold call (diff.js / the commit: diff-inline) bypasses that → throws.graf/WEAVE.c (SNOROOM/NOROOM ~:324/452/587), dog/WEAVE.c
WEAVE_FULL_HUNK_MAX (:1260). The binding surfaces these as "out full".jab commit:?<sha> (COMMIT-006 diff-inline) / jab diff: on a big diff.weave.fold caller grows
the output buffer + retries (mirror loop.js:128-142 / JS-055), or sizes to content.jab diff: / commit: / patch over a large change render the full diff, no throw.loop.js / JS-055 pattern) over a bigger fixed
cap (a fixed bump just moves the cliff). Reuse loop.js's grow-on-full if shareable.weave.fold callers (be/views/diff/diff.js + be/verbs/patch/patch.js
+ any shared weave helper). ABC/JS style. Repro-first (CLAUDE §17).be/shared/weave.js: growOnFull(make, op, cap, hint)
(generalises loop.js:128-142) + fold/merge builders; diff/patch both reuse it.ctx.views is unpopulated in the live loop, so jab diff: returns empty;
the fold path is reached via commit:?<sha> (commit.js COMMIT-006, calls diff VIEW).jab commit:?<sha> on a 2800-line change → weave.fold: failed (out
full?), exit 1 (RED). diff.js diffFile fold overflows the fixed 1<<18 WEAVE cap.4febec96). Only the
pre-existing be-js-bro-universal stale xfail stays red; both untouched here.f3389efa + be/test 374cbae0) Fix: shared be/shared/weave.js grow-on-"out full" retry
(growOnFull/fold/merge), used by be/views/diff/diff.js (diffFile folds 94-114,
emitHunks render 136-139) + be/verbs/patch/patch.js (foldCommit, mergeApply,
aliveOf). weave.fold sites: diff.js:95-96/100-101 (was), patch.js:184/202/171/283.be/test/diff/12-large-fold-grow/run.sh (RED: out-full+exit1; GREEN: diff
renders). be/ suite green bar the two pre-existing bro fails. STOPPED pre-commit.