Skip to content

Commit 3c9c19d

Browse files
author
gluck
committed
plans: the form-delta question is answered by the fork model, not by preference
Gluck: a bound form's fork IS the aria's fork (CreateForm says so in the store's own words), so a record below the fork base changed the ANCESTOR's board -- the child's bound form did not exist yet. The old label asserted that a form changed before it existed, and it also read the child's form for a version range stamped on the ancestor's. Owner-keyed corrects a read as well as a name. Unbound forms already key by the id figaro saw.
1 parent a973c37 commit 3c9c19d

1 file changed

Lines changed: 23 additions & 7 deletions

File tree

‎plans/composed-layer-on-tree.md‎

Lines changed: 23 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -445,17 +445,33 @@ position whether or not it has nodes. TestAnInquiryWithNoAnswerIsStillAPage.
445445
`--before N` reported `more.after: false` unconditionally. It is now true when
446446
turns exist after the anchor, which they do.
447447

448-
### AND THE ONE RAISED TO GLUCK, NOT DECIDED HERE
448+
### AND THE ONE RAISED TO GLUCK, NOW ANSWERED BY THE FORK MODEL
449449

450450
For a fork's INHERITED records, the bound-board form deltas are now keyed by
451451
the ANCESTOR node that owns them rather than by the aria being read:
452452

453453
- "86d12409.cwd": {"form": "86d12409"} the reader
454454
+ "01efd291.cwd": {"form": "01efd291"} the owner
455455

456-
`formdelta` keys a bound delta "<ariaID>.<path>", and the composed turn for an
457-
inherited record is composed ONCE, in the ancestor's node, and shared. It
458-
cannot carry the reader's id without being recomposed per descendant, which is
459-
the duplication the re-seat deletes. Owner-keyed is truthful and keeps one
460-
copy; reader-keyed keeps the old wire and kills the sharing. RAISED WITH THE
461-
MECHANISM AND THE DIFF; the current behaviour is owner-keyed.
456+
ANSWERED, GLUCK 2026-08-19: "for bound forms, the fork should create its own
457+
forked form at the fork point... Once a child is forked, its bound form is
458+
unique. All latter patches to the ancestors form should happen on the
459+
ancestors branch. For unbound forms, the identity is independent from figaro,
460+
so whatever form id figaro sees is what should be recorded."
461+
462+
THAT IS WHAT THE STORE ALREADY DOES, and `CreateForm` says so in its own
463+
words: "a bound form's fork is the aria's fork and it goes through ForkWith".
464+
A bound form has no separate identity -- it IS the aria's chanForm channel on
465+
the aria's trunk node -- so forking the aria forks the form at the fork point.
466+
467+
SO THE OWNER-KEYED LABEL IS NOT A PREFERENCE, IT IS THE MODEL: a record below
468+
the fork base changed the ANCESTOR'S board, because the child's bound form did
469+
not exist yet. The old label asserted that a form changed before it existed.
470+
471+
AND IT WAS NOT ONLY A LABEL. The old path called FormPatchesBetween(CHILD, ...)
472+
for an inherited record -- asking the child's form for a version range stamped
473+
on the ancestor's. The new path asks the aria that owns those versions, so the
474+
change corrected a READ as well as a name.
475+
476+
Unbound forms are untouched and already match: foldStudied keys by the form id
477+
carried in the record's own StudyVersions.

0 commit comments

Comments
 (0)