Add serializable project commands

This commit is contained in:
2026-07-23 21:23:31 +02:00
parent 903d977443
commit b79faed320
9 changed files with 206 additions and 39 deletions
@@ -140,6 +140,11 @@ Completed foundation:
- projects carry a monotonic `currentRevision` counter starting at zero
- project revision metadata and versioned forward/inverse change-set payloads
have separate persistence entities
- forward and inverse payloads store complete serialized command envelopes;
command type and schema version are derived from those envelopes rather than
duplicated caller metadata
- command serialization rejects non-finite numbers, `undefined`, non-plain
objects and cyclic payloads before a revision transaction starts
- the SQLite revision repository advances the project counter and stores both
history records atomically
- revision appends use an expected-revision compare-and-set and reject stale
@@ -147,7 +152,8 @@ Completed foundation:
Remaining constraints before implementing history:
- model project-scoped command descriptions independently from React callbacks
- define concrete project-scoped command unions and executors independently
from React callbacks; the generic versioned command envelope is complete
- route domain writes and revision recording through one shared project
transaction boundary; the current revision repository only commits history
records and the counter together