v1 surface closed 2026-05-26. All [V1] gap rows and phases P1–P12 landed,
and the v2.A + v2.B architectural round shipped (carve rvoip-core-traits to
break the dep cycle; per-tenant Semaphore admission). All workspace lib tests
pass.
This document was trimmed (2026-06-01) to track only what remains. The full
phase-by-phase implementation history (P1–P12, v2.A/v2.B, the gap inventory, and
the original roadmap) is in git history — git log --follow docs/GAP_PLAN.md.
Spec references point into the sibling design docs:
INTERFACE_DESIGN.md, PRD.md,
CONVERSATION_PROTOCOL.md.
No tracked V1.x implementation gap from the June 2026 roadmap remains open in the current tree.
| # | Item | Status / next step | Spec source |
|---|---|---|---|
| 3.O.8 (follow-up) | WebRTC DTMF (RFC 4733) decode | Closed: rvoip-webrtc decodes PT-101 telephone-event frames on receive, emits AdapterEvent::Dtmf, and suppresses those packets from ordinary audio forwarding. |
CONVERSATION_PROTOCOL §7.5, §10.3 |
| 3.O.9 | Inline envelope signatures enforced at adapter boundary | Closed: QUIC, WebTransport, and WebSocket substrate adapters expose optional Sig9421Config; default remains disabled for compatibility. |
CONVERSATION_PROTOCOL §5.5.1 |
| 3.O.10 | rvoip-vcon-postgres reference store |
Closed: optional rvoip-vcon-postgres crate ships typed rvoip_vcon::VconStore, SQL migration, content hashes, and an optional byte-store bridge for rvoip_core::store::VconStore. |
INTERFACE_DESIGN §11.5 |
Tracked for visibility only. When one is taken up, add a phase to this doc.
| Item | Label | Spec source |
|---|---|---|
AAuth production hardening (gated aauth-experimental; the validator already landed) |
[V1.x] |
INTERFACE_DESIGN §2.4, §8.5 |
| RFC 9421 default-on per-request signing | [V1.x] |
INTERFACE_DESIGN §2.4 |
| DTLS-SRTP fingerprint binding default-on | [V1.x] |
INTERFACE_DESIGN §8.4 |
conversation.update for policy change |
[V1.x] |
CONVERSATION_PROTOCOL §7.1 |
| Multi-party UCTP beyond N=2 via SFU adapter | [V2] |
PRD §5; INTERFACE_DESIGN §2.4 |
| SIP-over-QUIC / RoQ / MoQ adapters | [V2] |
INTERFACE_DESIGN §2.5 |
| Lyra V2 over UCTP and SIP/RTP, with a Lyra-over-RoQ end-to-end proof | [V2] |
../ROADMAP.md; INTERFACE_DESIGN §2.5 |
The earlier
rvoip-websocket[V1.x]deferral is closed — the substrate shipped atcrates/uctp/rvoip-websocket.
The four v1 open questions were all decided as-shipped, and are recorded here so they're not re-opened:
rvoip-harnessspin-off — spun off as a separate crate (the seam was the point).rvoip-identityspin-off — shipped as a separate crate with a no-opBearerProvider; theIdentityProvidertrait stays inrvoip-core::identity.- Tenant scoping — P6 landed multi-tenant data isolation per process (registries + per-tenant quota).
- vCon production wiring — P3 emits validated unsigned vCons by default.
rvoip-vconexposes opt-in JWS General JSON signing and signature appending; automatic tenant-key selection is not wired, and JWE is absent. Production key policy and confidentiality remain[V1.x]roadmap items.