life: let a row retire from the ties it declared #165

Merged
PerishFire merged 1 commit from land/cap/liveness into main 2026-08-19 07:15:48 +00:00
Owner

Ending a row scanned the whole model for anything still pointing at it and
refused if it found one. Half of that scan looked at the row's own bonds: a
team could not retire while it still had members, a room could not close while
it still listed guests. A bond has no lifecycle of its own — the model says so
where it draws the line between a bond and a resource — so a row was being held
open by relations it had declared itself.

The cost was not inconvenience. Dissolving a group meant unpicking its members
one at a time, and each cut dropped one person's authority, so the estate spent
the whole operation inside a half-dissolved group. Revoking authority should be
one write.

It now is, because the other half of this change makes a group principal count
only while its own row is live. bears resolved who = "team 5" by reading the
membership ties and never asked whether team five still existed; with the veto
gone that would have left a grant working through a retired principal. The two
halves are one statement and land together.

A tie pointing at the row from elsewhere still refuses the end. That direction
is a separate question about how liveness should descend a containment chain,
and it is not answered here.

The tests that asserted the old law now assert the new one: a follower may
retire while its own follow lives, an enrolment does not hold its student open,
and a dissolved team stops granting while its membership rows are still there.

Co-Authored-By: Claude Opus 5 (1M context) noreply@anthropic.com

Ending a row scanned the whole model for anything still pointing at it and refused if it found one. Half of that scan looked at the row's own bonds: a team could not retire while it still had members, a room could not close while it still listed guests. A bond has no lifecycle of its own — the model says so where it draws the line between a bond and a resource — so a row was being held open by relations it had declared itself. The cost was not inconvenience. Dissolving a group meant unpicking its members one at a time, and each cut dropped one person's authority, so the estate spent the whole operation inside a half-dissolved group. Revoking authority should be one write. It now is, because the other half of this change makes a group principal count only while its own row is live. `bears` resolved `who = "team 5"` by reading the membership ties and never asked whether team five still existed; with the veto gone that would have left a grant working through a retired principal. The two halves are one statement and land together. A tie pointing at the row from elsewhere still refuses the end. That direction is a separate question about how liveness should descend a containment chain, and it is not answered here. The tests that asserted the old law now assert the new one: a follower may retire while its own follow lives, an enrolment does not hold its student open, and a dissolved team stops granting while its membership rows are still there. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
life: let a row retire from the ties it declared
All checks were successful
guard / guard (pull_request) Successful in 2m23s
guard / guard (push) Successful in 1m54s
57fa347a2f
Ending a row scanned the whole model for anything still pointing at it and
refused if it found one. Half of that scan looked at the row's own bonds: a
team could not retire while it still had members, a room could not close while
it still listed guests. A bond has no lifecycle of its own — the model says so
where it draws the line between a bond and a resource — so a row was being held
open by relations it had declared itself.

The cost was not inconvenience. Dissolving a group meant unpicking its members
one at a time, and each cut dropped one person's authority, so the estate spent
the whole operation inside a half-dissolved group. Revoking authority should be
one write.

It now is, because the other half of this change makes a group principal count
only while its own row is live. `bears` resolved `who = "team 5"` by reading the
membership ties and never asked whether team five still existed; with the veto
gone that would have left a grant working through a retired principal. The two
halves are one statement and land together.

A tie pointing at the row from elsewhere still refuses the end. That direction
is a separate question about how liveness should descend a containment chain,
and it is not answered here.

The tests that asserted the old law now assert the new one: a follower may
retire while its own follow lives, an enrolment does not hold its student open,
and a dissolved team stops granting while its membership rows are still there.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

Land-Source: cap/liveness@3dbce38172
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
PerishLab/keel!165
No description provided.