docs: ADR-0006 Amendment 1 — undo/snapshot design (every-mutation, hybrid, batch) + plan

Settles the undo/snapshot half (U1/U2) before implementation:
- every-mutation single-step undo (supersedes destructive-only model)
- hybrid whole-project snapshot (db backup API + yaml/csv copy),
  reconciling ADR-0006 with ADR-0015's derived-db model
- persisted N=50 ring; redo discarded on new work
- batch ops (replay + future) record one undo step; import excluded
- --no-undo disable switch
Adds the implementation plan and updates README index, requirements
U1/U2, and CLAUDE.md in lockstep.
This commit is contained in:
claude@clouddev1
2026-05-24 19:57:47 +00:00
parent 2e3131669a
commit 6cf5705022
5 changed files with 628 additions and 9 deletions
+8 -3
View File
@@ -58,9 +58,14 @@ Current decisions at a glance (each backed by an ADR):
supported. No real UUIDs (ADR-0005). FK column type
compatibility via `Type::fk_target_type()``serial → int`,
`shortid → text`, others identity (ADR-0011).
- **Safety:** auto-snapshot before destructive ops; `:undo`;
append-only `history.log` for replay and scripting (ADR-0006).
*(Designed; not yet implemented.)*
- **Safety:** append-only `history.log` for replay and scripting
(ADR-0006 U3/U4) — *implemented* (ADR-0034). Undo/snapshot half
(U1/U2): `undo` / `redo` app commands (no sigil) with auto-snapshot
before **every** mutation into a persisted N=50 ring; hybrid
whole-project snapshot (db backup API + yaml/csv copy); `--no-undo`
to disable (ADR-0006 **Amendment 1**). *(Designed + amended +
planned in `docs/plans/20260524-adr-0006-undo-snapshots.md`; not
yet implemented.)*
- **Sharing:** `export` command produces a zip without the `.db`;
no hosted publishing (ADR-0007).
- **Testing:** four-tier strategy from `cargo test` units up to