bond: name the edge update verb tune, and reach zero #104

Merged
PerishFire merged 1 commit from tune into main 2026-07-21 07:47:07 +00:00
Owner
No description provided.
bond: name the edge update verb tune, and reach zero
All checks were successful
guard / guard (pull_request) Successful in 1m33s
d589d15682
set_tie was the last debt, and the only one whose answer was not in the
code. Every other compound this round was hiding a structure — a missing
dispatch, a missing type, a redundant qualifier, the shadow of a special
case — and fixing the structure emitted the name. This one hid nothing.
The structure was already right; what was missing was a word.

The verb matrix says why it was stubborn. Rows get put/set/end, edges get
tie/?/cut, and only the middle edge cell had no atom of its own. Merging
instead — carrier as an argument, cut folding into end — was rejected on
principle rather than cost: keel separates #[field] from #[relation] at
the declaration layer and keeps them apart at every layer above it, so
erasing the split at the verb layer to save a word would undo the model.
Edges are their own kind, so edges get their own verbs.

tune is the user's pick. It updates the business cells a pair carries and
refuses everything else: Edge::part already rejects left, right, id and
the three reign stamps, so the pair and its lifecycle are untouched. That
is the sense — tie makes the pair, tune revises what the pair carries,
cut ends it.

Also corrects retie, the PATCH handler I named in #95. It implies the
bond is re-established, which is exactly what this operation cannot do:
the ends are read only to check both are still live.

Renaming was cheap because the name was never data — no grant verb, no
pulse verb, no wire token, and nothing downstream — so this is nine
identifiers and eight lines of law prose, no migration. vocabulary.md
carries the new atom as a delta, per its own rule that an agent changing
code maintains the vocabulary.

**negentropy: clean.** Debt 88 -> 0 over #93-#104; all four laws at zero.
guard clean, 46 tests green on sqlite and on real postgres.
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!104
No description provided.