Parents and children of check-in [2d30e99800]
|
2026-08-26
| ||
| 23:51 | Landed phase 4: the rule has a page, and the page says what it costs. check-in: 8f527acdb5 user: ai-local tags: trunk | |
| 23:51 | Landed phase 3: the merge is the fact, the reply is the claim, accept asks MayJoin. check-in: 2d30e99800 user: ai-local tags: trunk | |
| 23:51 | Landed phase 2: identity becomes a rule, the child enforces it. check-in: 8c6e2b5b59 user: ai-local tags: trunk | |
| 23:13 |
RFC 0007 phase 3: the merge is the fact; accept asks MayJoin
The fold reads accepted from the DAG, for every landing: the earliest target check-in after opening whose non-primary parent is on the proposed branch. A reply asserting acceptance with nothing merged leaves the record open and is recorded as a claim; the page says so, the timeline files it as conversation. Rejection has no DAG fact and stays the reply's to say. Re-derived after every branch recompute — which now also invalidates the count memo, since it can settle a landing — so a merge pushed from a clone with no reply settles. landing.accept refuses a non-owner on a protected target before writing, naming the owners. landing.get reports MayLand beside CanAccept so the page shows a disabled control with the reason. Fourteen existing tests settled records by reply alone, or asserted a by-hand merge does not count; each now carries the merge it announces or asserts the RFC's reading. Giving the web fixture real check-ins exposed checkin.diff dereferencing a nil store; it now refuses, after the lookups so not-found still wins. closed check-in: 4832508615 user: dmestas tags: protect-3 | |