RFC: Session interface (astrid-bus:session conversation-thread contract)#34
Open
joshuajbouw wants to merge 2 commits into
Open
RFC: Session interface (astrid-bus:session conversation-thread contract)#34joshuajbouw wants to merge 2 commits into
joshuajbouw wants to merge 2 commits into
Conversation
Document astrid-bus:session 1.1.0 as a publishable standard so any conforming session capsule (encrypted, synced, ephemeral, bespoke) is a drop-in: verbs (append/get_messages/clear/list/get_meta/update/delete/ search), payload records, scoped reply-topic + correlation-id convention, the title/preview/archived/timestamps/meta metadata model with the opaque meta forward-compat escape hatch, session.v1.event.* lifecycle fan-out, and the normative per-principal scoping invariant. Models on the astrid:users interface RFC (rfcs#28); governed by the topic-versioning convention per the Host ABI RFC (rfcs#22), not the host ABI. Relates to astrid#974 / astrid#1041.
050ed58 to
d930ce2
Compare
There was a problem hiding this comment.
Pull request overview
This PR introduces a draft RFC that standardizes the astrid-bus:session@1.1.0 conversation-thread IPC contract so multiple interchangeable “session capsule” backends can be implemented against a stable, published spec.
Changes:
- Adds a new RFC document defining the session thread model, verbs, payload records, topic conventions, and lifecycle events.
- Specifies per-principal isolation as a normative invariant and documents pagination/search semantics.
- Includes a WIT excerpt and capsule manifest topic declarations for implementers.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
…it path Address review precision feedback on the session-interface RFC: - Scope the request/response + correlation-id rules to the request/response verbs; describe append (fire-and-forget, no correlation id) separately. - Drop the implied non-existent `create` verb — describe creation as a lifecycle outcome (created/updated/deleted, creation via `clear`). - Clarify the canonical WIT lives in unicity-astrid/wit, not this repo. - Note session-cleared is a legacy agent-loop fan-out, distinct from the session.v1.event.* lifecycle events. - Specify update's option semantics precisely: omitted/null = unchanged, empty string = clear, non-empty = set.
Contributor
Author
|
Thanks — all addressed in 8496372:
|
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.
Standardises
astrid-bus:session1.1.0 as a publishable contract, so anyone can write a conforming session capsule (encrypted-at-rest, fleet-synced, ephemeral, or a bespoke per-deployment backend) as a drop-in for the incumbentastrid-capsule-session.Documents the conversation-thread interface end-to-end: the verbs (
append/get_messages/clear/list/get_meta/update/delete/search), the payload records, the per-request scoped reply-topic + correlation-id convention, the metadata model (title/ first- & last-message previews /archived/ timestamps + the opaquemetaforward-compat escape hatch), thesession.v1.event.*lifecycle fan-out for live multi-device sync, and the normative per-principal scoping invariant that makes the surface safe to expose to paired devices and untrusted agent tools.Modelled on the
astrid:usersinterface RFC (#28); governed by the topic-versioning convention per the Host ABI RFC (#22), not the kernel-to-capsule host ABI. Additive over 1.0.0.Stays open and accrues toward 1.0. Relates to astrid#974 / astrid#1041; implemented by the capsule-session and gateway (astrid#1045) PRs.