From 4ecc173554e8bcb805c38a062f103ecb6d0fd0e0 Mon Sep 17 00:00:00 2001 From: Jared Vititoe Date: Fri, 3 Jul 2026 13:51:47 -0400 Subject: [PATCH] docs: record remaining spec/MSC gaps survey (buildable vs blocked) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Full-surface protocol survey. Flags each remaining gap by what unblocks it: buildable now (custom room tags/sections — the only substantive client-only one left), needs infra (email/3PID invites → identity server; MSC4108/3814), and blocked-until-Synapse-upgrade (live location 3489/3672, reaction redaction 3892, room preview 3266, thread subs 4306). Space reordering already works (drag) — not a gap. Corrected per user. Co-Authored-By: Claude Opus 4.8 --- LOTUS_TODO.md | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/LOTUS_TODO.md b/LOTUS_TODO.md index 47349de0b..7d3b53564 100644 --- a/LOTUS_TODO.md +++ b/LOTUS_TODO.md @@ -114,6 +114,30 @@ Genuine Matrix client-spec / MSC features Lotus does **not** yet implement (audi **Server-gated / advanced (capture, don't build yet):** QR sign-in for a new device (**MSC4108** rendezvous — needs an HS-side endpoint); dehydrated devices (**MSC3814** — offline key delivery, also helps the E2EE KE cluster); E2EE history key sharing on invite (**MSC3061** `shared_history`, niche); voice broadcast (Element MSC3888, low value — skip). +### Remaining spec/MSC gaps (2026-07 full-surface survey) + +After Phases A–C the client spec is ~complete. What's left, flagged by **what unblocks it**: + +**✅ Buildable NOW (client-only, no server/infra change):** + +- [ ] **Custom room tags / sections** — user-defined room categories in the sidebar via standard `u.*` room tags (beyond the built-in Favourite / Low-Priority). Mirrors the favourite/low-priority category pattern (`RoomNavItem` context-menu + `Home.tsx` categories). _Medium._ The only substantive client-only feature left. + +**🔧 Needs INFRASTRUCTURE (NOT a Synapse-flag flip — you'd have to stand it up):** + +- **Invite by email / 3PID invite** — we invite by Matrix user-ID only (`mx.invite` is user-ID-only). Email invites need an **identity server** (lotusguild runs none). Build only if an identity server is deployed. +- QR sign-in for a new device (**MSC4108**) — needs a **rendezvous** endpoint. Dehydrated devices (**MSC3814**) — needs server support. (Also listed above.) + +**🚫 BLOCKED until a Synapse upgrade enables the flag** — re-run `/_matrix/client/versions` `unstable_features` after each upgrade; client work is ready the moment the flag flips. See the **Blocked Features** section below: + +- Live Location Sharing (**MSC3489** + **MSC3672** — both `false`) +- Reaction / relation redaction (**MSC3892** — `false`) +- Room preview before joining (**MSC3266** — summary endpoint 404s on 1.155) +- Thread subscriptions (**MSC4306** — `false`) + +**Niche / low-value (noted, not planned):** E2EE history-key-on-invite (MSC3061), voice broadcast (MSC3888), a native account-deactivation flow (currently delegated to the OIDC provider for OIDC accounts). + +**Already implemented (verified, not gaps):** space reordering (drag — confirmed working in the desktop client), pinning, stickers + picker, room directory, mutual rooms (MSC2666), blurhash, key backup / recovery / SSSS / cross-signing / key export-import, SAS **and** QR verification, ignore list, invite spam-filter, voice messages, polls, threads + per-thread notifs, spaces, OIDC, extended profiles, delayed/scheduled events, authed media, report user/room/message, 3PID contact-info display, disappearing messages, mark-unread, low-priority, room widgets. + --- ## 📋 Open Feature Backlog