Repository navigation
Slice 070: Gateway core (adapter behaviour, routing, PubSub fan-out) - #66
Merged
Merged
Conversation
…rrected to M5b Reaches Signed-off-by: Ayla Croft <aylacroft@proton.me>
…ormatting and the in-process console adapter Signed-off-by: Ayla Croft <aylacroft@proton.me>
…code and nothing else, the code pairs once, a revoked row stays visible Signed-off-by: Ayla Croft <aylacroft@proton.me>
…t, session binding with the adapter as origin, the stream coalesced into edits, and the slash commands Signed-off-by: Ayla Croft <aylacroft@proton.me>
…versation that raised it, /approve and /deny decide through the gate, and the channel trust cap refuses a tier above its ceiling with a receipt The console adapter recorded a message's reference by position rather than the reference deliver/2 returned, so an edit landed on a different message; found by the approvals suite, where a refusal overwrote an earlier reply. Signed-off-by: Ayla Croft <aylacroft@proton.me>
…ress: each in its own session, none shown another's message Signed-off-by: Ayla Croft <aylacroft@proton.me>
…tions on 'the last thing shown' were racing the reply and failed only when the suite ran whole Signed-off-by: Ayla Croft <aylacroft@proton.me>
…ve, pairing codes, identities to allow or revoke) and mix trinity.console Signed-off-by: Ayla Croft <aylacroft@proton.me>
…llow-ups; docs 01, 05, 07 and the README as built; PROOF with the evidence and the two manual artefacts Signed-off-by: Ayla Croft <aylacroft@proton.me>
Signed-off-by: Ayla Croft <aylacroft@proton.me>
Merged
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.
Slice 070: the gateway layer, so Trinity can be reached from somewhere other than the desktop.
The shape.
Trinity.Gateways.Adapteris what a platform implements (child_spec/1,capabilities/0,deliver/2,format/2,render_approval/2);Routeris the one road from achannel to a session, and it decides in this order and no other: is this identity admitted, is it
inside its rate limit, is the text a command, and only then whose session is it.
Consoleis anin-process adapter that ships, so every criterion here runs without an account, a token or a
network, and
mix trinity.consoletalks to it from a terminal.An unknown sender gets a pairing code and nothing else. No session, no model call: asserted,
not asserted loosely (
Sessions.list_sessions() == []andFake.calls() == 0after a strangerwrites). The code is shown on
/gatewaysand nowhere else, which is the whole of the proof: asender who can read it is at the owner's desktop.
What a channel may approve is capped below what the desktop may.
Capapplies a tier ceilingper adapter,
:writeby default, after the gate's own decision and never instead of it. A:destructiverequest is refused in words, the request stays pending for the desktop (the gate isnever asked), and the refusal is a receipt on the session's chain with basis
channel_cap.Proof:
slices/070-gateway-core/PROOF.md. Nine criteria, 39 tests for the slice, 564 in thesuite; gate green including the release check. Both manual artefacts are in
proof/: a pairingtranscript from a running application and the
/gatewaysscreenshot.Three bugs the suite caught, in NOTES "Findings" — two worth naming here: a command calling the
router's own API deadlocked (commands run inside that process), and a malformed
/attachargumentraised inside the router and took every conversation's binding with it. Command dispatch now
rescues, so a hostile message from a channel costs its own reply and nothing else.
One deviation for the record: docs/07 read "
:execand:destructiveare desktop or consoleonly", written before a console adapter existed.
Consoleis now capped like every other channeland the doc is amended, because exempting the in-process adapter would make it the one channel that
may approve a destructive effect. Raising its ceiling is a config line if the owner prefers.