# Shade V4.0 — External Audit, Consolidation, GA **Status:** Done — tagget som 4.0.0 (2026-05-03) **Effort:** M (audit-driven) **Forrige:** V3.1 → V3.12 alle merget **Adresserer:** V2.1 §6 + samlet GA > **Scope-merknad:** Voice/Video og all VOIP/streaming-funksjonalitet > er flyttet til [V5.0](../V5.0.md). 4.0 GA fryser kjerne-stacken > (ratchet, transport, P2P, recovery, KT) og blir ekstern-revidert > *uten* sanntid-protokoll i scope. Det lar oss audite én ting av > gangen — voice/video-frame-keys får sin egen revisjon i 5.0-vinduet. --- ## Mål Shade 4.0 er **GA-merket release** der alt diskutert i V2.1, V2.2, V2.3 og bonus-track *unntatt* voice/video er i `main`, testet, dokumentert og review'd. Dette er konsolideringsfasen, ikke ny funksjonsbygging. Sanntid-laget (voice, video, broadcast) ligger i V5.0 og utvikles oppå den låste 4.0-stacken. --- ## Scope ### Inn - **Ekstern crypto-review** av: - Core (X3DH + ratchet + sender-keys). - Wire 0x02 + streams 0x11. - Storage encryption (V3.2). - Recovery (V3.10). - WebRTC P2P transport-binding (V3.11). - Key transparency (V3.12, hvis implementert). - *(Voice/Video frame keys revideres separat i V5.0-vinduet.)* - **Migration-guide** 0.3.x → 4.0 — hver wire-bump, schema-endring og opt-in flagg dokumentert. - **Soak-testing** — kjør alle pakker i kombinerte stress-tester i 2+ uker. - **Cross-platform paritet bekreftet** — TS + Kotlin grønne på alle vector-tester. - **Dokumentasjons-pass** — README, alle docs/ revidert for 4.0-narrativ. - **Release-notes + announcement-post.** ### Ut - Ny krypto. - Nye pakker. - Ny wire-format-bump (vi nullstiller her, neste kommer i 4.1+). --- ## Pre-flight checklist - [ ] V3.1 → V3.12 alle merget. - [ ] Ingen åpne kritiske eller høy-alvor security issues. - [ ] Alle test-vectors grønne TS + Kotlin. - [ ] Production-checklist (V3.1) testet av minst én reell deploy. - [ ] OpenAPI dekker alle HTTP-flater. - [ ] Threat model speiler alt nytt (eksklusive sanntid — det er V5.0). - [ ] Eksisterende 0.3.x → 4.0 migration-CLI testet på reell DB. --- ## Crypto-review-prep Forberedelse til ekstern reviewer: 1. **Pakke "review-bundle"** — én PR med: - Linker til alle protokoll-spec-filer. - Trusselmodellen. - Antagelser og kjente begrensninger. - Reproduserbar build-instruksjon. 2. **Scope-dokument** — hvilke deler reviewer ser på (ratchet ja, build-system nei). 3. **Kontakt-prosess** — hvordan rapportere findings. 4. **Tidslinje** — typisk 4–8 uker review-vindu. Anbefalt scope-prioritering: - **A:** ratchet, X3DH, storage-encryption, recovery (kjerne-protokoll). - **B:** WebRTC P2P transport-binding, KT-log (hvis implementert). - **C:** transport-lag, observability (lavere risiko). - *(Frame-keys er ikke i 4.0-scope — de revideres når V5.0 lander.)* --- ## Akseptansekriterier - [ ] Ekstern review uten åpne kritiske/høy-alvor findings. - [ ] Migration-guide brukt vellykket på minst én ekte 0.3.x-deploy. - [ ] Cross-platform parity verifisert i CI. - [ ] All `docs/V*.md` arkivert under `docs/archive/` med "DONE"-status. - [ ] CHANGELOG.md har 4.0-seksjon. - [ ] Versjon bumpet, alle pakker publisert til Gitea-registry. - [ ] Docker-image `gt.zyon.no/stian/shade-prekey:4.0.0` publisert. --- ## Etter 4.0 V4.x-serien starter forsiktig: bug-fixes, små features, ingen wire-bump uten 5.0-vindu. **[V5.0](../V5.0.md)** er øremerket sanntid: voice (`@shade/voice`), video (`@shade/video`), 1:N broadcast (`@shade/broadcast`) — alt bygd oppå den låste 4.0-stacken med SFrame-frame-keys avledet fra ratchet-sesjonen. V5.0 får sin egen ekstern revisjon av frame-key- delen før release. Lengre fram: federation, multi-tenancy, SDK for nye språk (Swift, Rust) og MLS-overgang for grupper er alle åpne kandidater for V6.0+. --- ## Risiko - **Audit-findings.** Kan kreve ny implementasjon i siste sekund. Mitiger ved tidlig review-prep og prioritering av A-scope først. - **Scope creep.** "Bare en ting til" — V4.0 er låst til konsolidering. Nye features = V4.1+.