fix(shared): an outside reader pinning the WAL no longer holds every write

Past the 10,000-frame ceiling, the checkpoint worker held writes until the WAL was
checkpointed and truncated. An outside read transaction (sqlite3, a backup) can stop
both indefinitely, so every server write waited for the reader to end.

The worker now admits writes when holding them cannot help: when a forced PASSIVE
checkpoint stops short of the frames it saw, or when TRUNCATE fails under the gate.
The ceiling becomes a pending verdict the worker clears for each generation, so
writes past it still wait for one checkpoint and truncate attempt.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
26d95959dbJulius Marminge committed on 10/22/2026, 8:43:11 AMparent9ab6ed5
1 file changedLine totals unavailable