docs(design): spine-besluit — enkelvoudige XMPP-spine + ketenkeuring, backend-exclusiviteit #1097
No reviewers
Labels
No labels
accepted
bug
declined
docs
duplicate
enhancement
good first issue
in-progress
needs-info
privacy
security
triage
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
LibreKAT/Ocideck!1097
Loading…
Reference in a new issue
No description provided.
Delete branch "design/xmpp-spine"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Legt het beheerdersbesluit (2026-08-02) vast: OciDeck kiest de enkelvoudige XMPP-spine als primaire route voor natieve calls + realtime-samenwerken. Eén XMPP/Prosody-verbinding draagt zowel de Jitsi-calls (media-signalering) als de samenwerkings-data-plane (
XmppTransport implements CollabTransport). Ontwerp-only, unbuilt, gepoort. Vervolg op #1095.Wat dit vastlegt
assurance/ketenkeuring-xmpp-spine.md(nieuw) — GO/NO-GO van de XMPP-spine. Pure-Dart/permissief; de crypto is niet nieuw maar hetzelfde minimale relay-schema, over XMPP i.p.v. Matrix (géén OMEMO/ratchet). Principieel GO als primaire spine; NO-GO om de code nú te bouwen tot vier voorwaarden (lib-keuze + SBOM, gedeelde crypto + externe toets óók van de tweede drager, backend-exclusiviteit-invariant, NetGuard/belofte).NATIVE_CALLS.md— open vraag 0 als beslist gemarkeerd; backend-exclusiviteit als invariant (§1, §6, F5): een sessie draait óf op XMPP/Jitsi óf op Matrix, nooit vermengd. "Hosten via de Matrix-backend" = een wholly-Matrix-mode-sessie, los van de XMPP-mode.ketenkeuring-self-encrypted-relay.md+ de README-rij zijn gedateerd bijgesteld — de relay-GO blijft, maar de relay is sinds dit besluit de Matrix-mode-spine, niet langer dé primaire realtime-route.Botsing (expliciet, per bewaker): veiligheid-op-1 tegen coherentie/snelheid
Het besluit wint met "coherentie tegen optooptelling" (één spine die je tóch al hebt) en "één crypto-kern, twee transporten". Dat is een geldige afweging — maar zij mag niet stilzwijgend kantelen. Twee dingen daarom hardop:
/syncvs. XMPP MUC/MAM/PubSub), ledenwissel→hersleutelen (Matrix-membership vs. MUC-affiliaties/presence), en mode/sessie-bindende associated-data zodat een Matrix-mode-ciphertext niet in XMPP-mode herbruikbaar is. Vastgelegd als voorwaarde 2.http), dus de belofte "the only HTTP client dependency ishttp" inARCHITECTURE.mdwordt bijgewerkt — net als bijflutter_webrtc. Vastgelegd in Bevinding 5, voorwaarde 4 en het Besluit.Waaronder ik van gedachten zou veranderen: als het minimale schema onder de transport-binding tóch richting een eigen ratchet zou kruipen, is de beproefde matrix-crypto (#991) strikt beter en vervalt de reden voor deze route (de rode lijn uit de relay-keuring, hier herhaald).
Bewaker
Beoordeeld vanuit de bewaker-blik: landen-met-aanpassing — het besluit is verenigbaar met het overkoepelende idee (
.mdonaangeraakt, sessie vergankelijk, vertrouwenspartij bring-your-own en open/gefedereerd). De drie belangrijke correcties (beloftefout, relay-reconciliatie, crypto-review-scope) en twee aanscherpingen (totale code-surface = zwaarste route; kostenkant van exclusiviteit; XXE-weren in de parser) zijn in de tweede commit verwerkt.Verificatie
Docs-only: geen Dart/
pubspec/l10n →make check-uitkomst ongewijzigd. Design/assurance-docs zijn niet gebundeld (geen registratiepoort). Alle relatieve linkdoelen bestaan (geverifieerd).