JAB-017: Buf.grow's _grow hook is dead growing a mapped Buf silently severs its file backing

Now
OPEN
Sev
MED

Buf.grow (jab/buf.cpp:100-108) has an if (this._grow) mapped-backing branch that nothing ever installs (grep across jab/*.cpp, test/, jsrc/ cont.cpp's P._grow is the unrelated PACK scratch grower), so growing an io.ram/io.mmap("rw") Buf falls into the heap-copy path: a fresh Uint8Array replaces the mapping and later msync() no longer flushes the file. API.md:118 promises "io.buf/ram: realloc-or-mremap", which the code cannot do. Found in the 2026-07-24 jab/ review; sibling of the JAB-006 contract gaps.

Input

Context

Goals

Constraints

WIP

Design decisions

TODOs

Blockers and bummers

Outcome