Files
pad/docs
xarmian 7dc4931323 fix(db): a finished SQLite→Postgres migration marks its source so the abandoned file refuses writes (BUG-3072, BUG-3077) (#1361)
* probe(BUG-3072): measure SQLite auto-reprepare against a deferred append

Not a keeper — the three legs become the proving tests.

Claude-Session: https://claude.ai/code/session_01PDYjP67KTAcqpFpo3ijAAA

* wip(BUG-3072): snapshot + marker + refusal triggers, with BUG-3077 folded in

Claude-Session: https://claude.ai/code/session_01PDYjP67KTAcqpFpo3ijAAA

* docs(BUG-3072): sweep the prose the snapshot and the marker falsified (CONVE-23)

Claude-Session: https://claude.ai/code/session_01PDYjP67KTAcqpFpo3ijAAA

* fix(BUG-3072): correct the snapshot justification to what was measured

The design was argued on pooled reads diverging under a held transaction.
Measured: they do not — SQLite has one write lock, so while BEGIN IMMEDIATE
is held nothing else commits and a pooled read sees what the tx sees. The
*Q threading stays, on the narrower and true grounds, and the property the
argument now rests on is pinned by a test.

Claude-Session: https://claude.ai/code/session_01PDYjP67KTAcqpFpo3ijAAA

* test(BUG-3072): cover the two marker arms nothing else reached

Claude-Session: https://claude.ai/code/session_01PDYjP67KTAcqpFpo3ijAAA

* fix(BUG-3072): measure the outcome of a failed commit instead of asserting it

codex round 2. Every other failure arm can honestly promise the source is
unchanged because a rollback undoes the work; the commit arm cannot, and it
was claiming so anyway. It now reads the marker on the pool and distinguishes
landed / not-landed / genuinely-unknown.

Claude-Session: https://claude.ai/code/session_01PDYjP67KTAcqpFpo3ijAAA
2026-09-14 08:51:45 -04:00
..