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:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user