Skip to content

Specify MLSMessage framing for draft-02 pair elements - #153

Merged
germ-mark merged 2 commits into
mainfrom
llm/book-a1-envelope-framing
Sep 25, 2026
Merged

germ-mark merged 2 commits into
mainfrom
llm/book-a1-envelope-framing

Conversation

@germ-mark

@germ-mark germ-mark commented Sep 25, 2026 •

Copy link
Copy Markdown
Contributor

Draft-02 §7 declares APQWelcome and APQKeyPackage with bare Welcome and KeyPackage fields. It doesn't say how those structures are transmitted. Germ carries each element in its RFC 9420 MLSMessage envelope (mls_welcome / mls_key_package), which describes its own protocol version and content type. The book was silent on this. This PR:

  • §A.1 envelope: states that each APQWelcome half in the reply's welcome section, and the return_key_package, are MLSMessages.
  • Draft-02 conformance: removes the claim that the frames carry the draft structures "directly", and records the deviation. Every pair element travels as an MLSMessage: both halves of the [v=3] combiner key package, each half of every APQWelcome, and the return key package.

This is Germ's choice of transport envelope, not a shipped anomaly. Both engines' encoders already agree with it:

  • the combiner key package blob's halves, via encode_combiner_key_package and publishedBlob();
  • the welcome halves, via create_group_with_member and join_group_from_welcome;
  • the return key package, via parse_mls_key_package.

Book-only, with an empty changeset.

🤖 Generated with Claude Code

The book was silent on whether the welcome halves and return key package
are bare structs or MLSMessages. The deployed engine emits and requires
MLSMessages.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@changeset-bot

changeset-bot Bot commented Sep 25, 2026 •

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 30d8dcb

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 0 packages

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

The spec states intended behavior, so justify the envelope on RFC terms,
and record in the draft-02 conformance section that every APQWelcome and
APQKeyPackage element travels as an MLSMessage.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@germ-mark germ-mark changed the title State the §A.1 reply's MLSMessage framing Specify MLSMessage framing for draft-02 pair elements Sep 25, 2026
@germ-mark
germ-mark merged commit 86b2b47 into main Sep 25, 2026
11 checks passed
@germ-mark
germ-mark deleted the llm/book-a1-envelope-framing branch September 25, 2026 01:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant