docs(audio-rooms): refresh against shipped state + nostrnests gap audit
Existing plan docs were written before the moq-lite swap, the
create-space + kind-10112 work, and the harness / submodule findings.
This refresh aligns them with what's actually live on the branch and
captures the work still ahead.
- 2026-04-26-audio-rooms-completion.md — flipped to a STATUS-FIRST
layout: implementation table for every protocol/transport/UI
surface, "pending" table for the remaining items (reconnect,
level meters, Desktop / iOS, Nests parity), pointers section
refreshed.
- 2026-04-26-moq-lite-gap.md — marked DONE with the commit range
that landed it (fb47a4c → 71cf99d → 015b0d7); "When picking up"
section now points at the shipped surface first, raw protocol
references second.
- 2026-04-22-nip-audio-rooms-draft.md — major surgery to match
today's nostrnests reality:
* status banner up top calling out the revision
* dependencies dropped IETF MoQ-transport, added moq-lite
Lite-03 + ALPN "moq-lite-03"
* HTTP control plane: GET <service>/<room-d-tag> → POST /auth
with {namespace, publish}, returning {token}; documented the
JWT claim shape (root, get, put), 600 s lifetime, regex
on `namespace`, JWKS endpoint, error matrix
* Audio transport: replaced IETF SETUP / TrackNamespace tuples
/ OBJECT_DATAGRAM with moq-lite Lite-03 (ControlType varint,
per-bidi message types, group uni streams, audio/data track,
no in-band SETUP, FIN-as-unsubscribe semantics)
* New event-kind sections: kind 4312 (admin command / kick),
kind 10112 (audio-room server list)
* Reconciliation section explaining what changed from the
original draft and why
- NEW: 2026-04-26-nostrnests-integration-audit.md — punchlist of
every nostrnests/NestsUI feature we don't yet ship, sourced from
a code-walk of the React app + moq-auth + API.md (which is
LiveKit-era and dead). Tier 1 (low-effort, visible): chat,
reactions, role parsing + promotion, hand-raise queue, kick
(kind 4312), edit/close room, scheduled rooms, listener counter.
Tier 2: participant grid, augmented presence tags
(publishing/onstage), per-avatar context menu + zap, share via
naddr. Tier 3: room theming. Tier 4: token-refresh +
Connection.Reload sanity checks.
Verified `:nestsClient:jvmTest` + `:amethyst:compilePlayDebugKotlin`
both still green after the doc changes (no code touched).
This commit is contained in:
@@ -1,9 +1,11 @@
|
||||
# Plan: bridge the moq-lite protocol gap
|
||||
|
||||
**Status:** **listener AND speaker sides done** (phases 5a → 5d, commit
|
||||
range `fb47a4c` → `5914e9e` + the speaker phase 5c-speaker landing in
|
||||
this PR). Default `:nestsClient:jvmTest` suite passes; downstream
|
||||
`:commons` and `:amethyst` compile clean.
|
||||
**Status:** ✅ **DONE** — listener + speaker on moq-lite Lite-03 against
|
||||
the real nostrnests stack. Phases 5a → 5d landed (`fb47a4c` →
|
||||
`71cf99d`); follow-up cleanup + harness fixes shipped through `015b0d7`.
|
||||
Default `:nestsClient:jvmTest` passes; integration tests gated by
|
||||
`-DnestsInterop=true` work end-to-end against a Docker'd nostrnests
|
||||
deployment.
|
||||
|
||||
**Origin:** discovered while writing the nostrnests interop test suite (phases 1–4).
|
||||
|
||||
@@ -299,9 +301,20 @@ host runs them with `-DnestsInterop=true`.
|
||||
|
||||
## When picking up
|
||||
|
||||
- Read `~/.cache/amethyst-nests-interop/nests/NestsUI-v2/node_modules/@moq/lite/`
|
||||
for the JS reference.
|
||||
- Read `kixelated/moq-rs/rs/moq-lite/src/{lite,coding,client,version,
|
||||
path}.rs` for the canonical Rust implementation.
|
||||
- The nests-side `claims.put = [pubkey]` rule is in
|
||||
`moq-auth/src/index.ts:160-166`.
|
||||
This doc captures the wire spec used during implementation. For the
|
||||
shipped surface, start from:
|
||||
|
||||
- `nestsClient/src/commonMain/kotlin/com/vitorpamplona/nestsclient/moq/lite/`
|
||||
— `MoqLiteCodec`, `MoqLiteSession`, `MoqLitePath`, `MoqLiteFraming`.
|
||||
- `nestsClient/src/commonMain/kotlin/com/vitorpamplona/nestsclient/`
|
||||
`MoqLiteNestsListener.kt` / `MoqLiteNestsSpeaker.kt`.
|
||||
- `nestsClient/src/jvmTest/.../interop/` — Docker-driven interop tests
|
||||
(auth, round-trip, multi-peer, endpoint smoke).
|
||||
|
||||
For raw protocol reference:
|
||||
|
||||
- `~/.cache/amethyst-nests-interop/nests/NestsUI-v2/node_modules/@moq/lite/`
|
||||
— JS reference once the harness has run once.
|
||||
- `kixelated/moq-rs/rs/moq-lite/src/{lite,coding,client,version,path}.rs`
|
||||
— canonical Rust implementation.
|
||||
- `moq-auth/src/index.ts:160-166` — `claims.put = [pubkey]` rule.
|
||||
|
||||
Reference in New Issue
Block a user