Repository navigation
Groups and topology control (v0.5.0) - #13
Merged
Merged
Conversation
Adds group addressing without adding a tool. Membership is declared on the capability card, because a session's groups are part of what it is for, which the card already answers; addressing is "#name" through peer_send. A join tool would have added surface for a fact with a natural home. Topology is an operator decision in config rather than something that emerges from who happens to be running. Denser is not automatically better and every extra recipient costs a turn, so an implicit all-to-all degrades as sessions multiply. star routes a member's message to the lead alone and lets the lead broadcast: one message in costs one turn instead of N. Each recipient is an ordinary send, so inbound policy, loop control and accounting apply per recipient. A group address is a convenience for the sender, never a way around the receiver. Fan-out is bounded, and the refusal names the cheaper shape rather than just saying no. Live testing found a defect that no test would have: an operator configuring "lead: tech-lead" had nothing stable to name. Display names are folded from session titles, which are generated and change, so the lead resolved to nobody and every star send failed. Cards now carry a self-declared alias — a short handle that does not move — and lead lookup matches it. The group outcome also reports recipients by alias, so one session never appears under two names in one line. 20 new tests, 286 total. Version 0.5.0.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Sixth roadmap item — and it adds no new tool, which matters given tool-surface pressure was the top risk in the last verdict.
Design
peer_sendwithto: "#backend".starroutes a member's message to the lead alone and lets the lead broadcast — one message in costs one turn instead of N. That asymmetry is the entire saving, and it's why denser topologies aren't automatically better.Each recipient is an ordinary send, so inbound policy, loop control and accounting apply per recipient. A group address is a convenience for the sender, never a way around the receiver. Fan-out is bounded, and the refusal names the cheaper shape rather than just saying no.
The defect live testing found
A test would never have caught this. The operator configures
lead: tech-lead— but display names are folded from session titles, which are generated and change. Sotech-leadresolved to nobody and every star send failed:The operator had no stable handle to configure against. Cards now carry a self-declared alias — a short name that doesn't move — and lead lookup matches it. Re-ran live:
Also fixed a cosmetic follow-on: the outcome reported the relay by alias but the recipient by folded title, so one session appeared under two names in one line.
20 new tests, 286 total.