v0.2.5 — fail-closed snapshot + preview warning on snapshot-fetch failure
What's new
Prophylactic hardening for a latent silent-failure gap (flagged in the 2026-07-15 demo-rehearsal bug report at handlers.py:220-221).
A total snapshot-fetch failure (every per-record GET raising at preview time) previously persisted a hollow undoable=True snapshot with empty original_values — the operator only discovered undo was unavailable after approving. Now:
- Fail-closed snapshot (
snapshot.py): an UPDATE with no captured originals is markedundoable=False. CREATE stays undoable (its undo deletes viacreated_ids). - Preview-time warning (
handlers.py): when an UPDATE attempted fetches but captured nothing, awarningsurfaces in the preview so approval is informed. - New regression test:
test_bulk_update_snapshot_fetch_failure_warns_and_marks_non_undoable(TDD).
Note on BUG 11/12 from the 2026-07-15 report
Verified live on portal 148408595 against the actual 0.2.4 runtime: BUG 11 (count gate) and BUG 12 (bulk no snapshot) were not reproducible — they were artifacts of a stale venv-0.2.2-backup serving 0.2.2 code. BUG 9 and BUG 10 remain fixed. This release is hardening, not a regression fix.
Validation
claude plugin validate ./— cleanbash scripts/check-artifact-allowlist.sh— 257 files within allowlistpytest -q— 1080 passed, 3 skipped