Add serializable project commands
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user