Files
Shade/docs/archive/V4.0.md
Sterister e6fdf31b49
Some checks failed
Test / test (push) Has been cancelled
Cross-platform vectors / TypeScript vectors (bun) (push) Has been cancelled
Cross-platform vectors / Kotlin vectors (gradle) (push) Has been cancelled
Docker build and publish / docker (push) Has been cancelled
Publish / publish (push) Has been cancelled
release(v4.0.0): Shade GA — V3.x consolidation + audit prep
V3.1 → V3.12 consolidated and tagged for the first GA release. Wire
format unchanged from 0.4.x — 4.0 peers interoperate with 0.4.x peers
byte-for-byte. The version bump is semantic: audit-cycle complete,
opt-in surface fully exposed, threat model refreshed for every new
surface.

Highlights:
- All 24 @shade/* packages bumped to 4.0.0 in lockstep.
- CHANGELOG 4.0.0 section is the canonical manifest of what landed.
- THREAT-MODEL extended (§10 fingerprint gates, §11 WebRTC P2P, §12
  Web-Worker boundary) + residual-risks table refreshed.
- OpenAPI now covers all 27 routes: prekey, transfer, KT, inbox,
  bridge, observer, /metrics, /healthz, /ready.
- MIGRATION 0.3.x → 4.0 documented + smoke-tested against
  shade migrate-storage on a real SQLite DB.
- docs/audit/REVIEW-BUNDLE.md + SCOPE.md ready for external reviewer.
- scripts/soak.ts harness for the GA-stable 2-week soak window.
- All V*.md plans archived under docs/archive/ with Status: Done.
- Voice/Video carved out into V5.0; 4.0 audit focuses on the frozen
  non-realtime stack.

Tests: TS 1000/1000 + Kotlin 11/11 cross-platform vectors green.
Docker: gt.zyon.no/stian/shade-prekey:4.0.0 builds and reports
  version 4.0.0 on /health.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-03 18:35:35 +02:00

4.0 KiB
Raw Permalink Blame History

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. 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 48 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 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+.