From f29fd321f0b8fa46e389bf2d102565f09da9c661 Mon Sep 17 00:00:00 2001 From: npub1qyvc0c5kl4gqv2fd97fsk46tu378sqgy35vc83rvgfwne90sel7s0ed67d <011987e296fd5006292d2f930b574be47c7801048d1983c46c425d3c95f0cffd@sprout-oss.stage.blox.sqprod.co> Date: Wed, 8 Jul 2026 10:10:44 -0400 Subject: [PATCH] docs(mesh): pin Dawn's payload-layout ratification in the datagram contract MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Doc-only: MeshDatagram.payload for realtime media is [peer_index: u8][client frame] — peer_index is relay routing metadata allocated solely by the owner pod; the media ciphertext stays NIP-44 end-to-end between clients. Ratified in-thread (Dawn's design-lock post); no wire shape change. Co-authored-by: Tyler Longwell Signed-off-by: Tyler Longwell --- crates/buzz-relay-mesh/src/wire.rs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/crates/buzz-relay-mesh/src/wire.rs b/crates/buzz-relay-mesh/src/wire.rs index 8aeb540fb..1cf0f3af0 100644 --- a/crates/buzz-relay-mesh/src/wire.rs +++ b/crates/buzz-relay-mesh/src/wire.rs @@ -103,8 +103,11 @@ pub struct MeshDatagram { /// Sender-scoped monotonic sequence for loss/reorder observability. /// Receivers tolerate gaps and reordering; they never wait. pub seq: u64, - /// Opaque, NIP-44-encrypted between client endpoints. The relay never - /// holds plaintext. + /// Opaque at this layer: the profile owner defines the internal layout. + /// For realtime media it is `[peer_index: u8][client frame]` — the + /// peer_index is relay routing metadata (owner pod is sole allocator); + /// the client frame's encrypted content is NIP-44 between client + /// endpoints, so server-side plaintext of the media itself never exists. pub payload: Vec, }