CORECMSAI

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.

State
Done
Progress
100%
Steps
38 / 38
Started
2026-10-23
Finished
2026-10-29
Modules
LaraCore, LaraCMS, LaraAI

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_version once (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-expired through the coordinator (D29)4/4