CORECMSAI+0
Core Versioning Rebuild, Slice 4 — Capture Wrappers
every write that passes through Core reaches the history inside the scope of its root, opened before its SQL: a save of a record with its translations, a translation written alone, a membership change from either side of a relation, a delete. A hard delete is owned by one coordinator that writes the snapshot set and removes the edit history in the same transaction.
Tasks.
- Task A1: Translation changes are rows of the owner (D10, D11, D28, D45 rule 3)6/6
- Task A2: The save of a root opens its scope (D28, D34)6/6
- Task A3: A translation written alone opens its owner's scope (D52)4/4
- Task A4: A translation-only revision raises the owner's
lock_versiononce (D23)2/2 - Task A5:
withinRevision()and the translation job (D28)3/3 - Task B1: The descriptor gains coverage; a symmetric relation is refused (D24, D57)2/2
- Task B2: Membership rows from the pivot events (D41, D42)2/2
- Task B3: Relation subclasses open the scope on both sides (D42, D52)3/3
- Task B4: A CRUD update of a record and its relations is one revision (D42)2/2
- Task C1: The delete wrapper (D44)2/2
- Task C2: The coordinator writes the snapshot set and removes the history (D29, D44, D54, D55)2/2
- Task C3:
model:clear-expiredthrough the coordinator (D29)4/4