What changed: SMON_MAX_DB_BYTES (2 GiB default) sets
PRAGMA max_page_count at connect — writes past the ceiling fail
SQLITE_FULL, which is an error, not corruption. The writer counts
consecutive commit failures in WriteHealth; /readyz answers a real 503
unavailable while that count is nonzero, and it clears only when a write
lands — recovery is proven by a commit, never a timer. The monitor’s own
output honors the same guardrail: SMON_LOG_FILE rotates at
SMON_LOG_MAX_BYTES, keeping two generations.
Proof: the three write-failure tests plus the live drill — capped the
database, watched commits refuse and readiness go 503 while the API stayed
responsive; the log rotated to .1.
One SQLite truth learned live: max_page_count clamps to the database’s
current size, so a ceiling only bites on growth — the disk-pressure test
fills free pages until the cap refuses.