chore: adopter Scaffold plan-kontrakt
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
13
.scaffold/log.md
Normal file
13
.scaffold/log.md
Normal file
@@ -0,0 +1,13 @@
|
||||
# Logg — Shade
|
||||
|
||||
## 2026-07-09 — Adoptert Scaffold plan-kontrakt
|
||||
Migrerte `docs/ROADMAP.md` og `android/shade-android/ROADMAP-ANDROID.md` til `.scaffold/`: nåbildet destillert inn i `plan.md`, originalene arkivert under `.scaffold/archive/` med opprinnelig mappestruktur. Versjonsdesigndokumentene (`docs/V5.0.md`, `docs/archive/V*.md`) er bevisst latt stå — de er spesifikasjoner, ikke planfiler.
|
||||
|
||||
## 2026-05-15 — v4.11: streaming Double-Ratchet sub-sessions
|
||||
Siste post-GA-økning på 4.x-linjen: `ShadeStream` gir in-memory sub-sessions (seal/open uten keystore-I/O per frame) med nye wire-typer 0x31–0x33. Låst beslutning: stream-ratchets persisteres aldri — en droppet stream gjenåpnes, aldri gjenopptas.
|
||||
|
||||
## 2026-05-09 — Android M-Cross 1–4 fullført + Keystore-adapter
|
||||
All kryptografisk paritet TS↔Kotlin grønn via delte test-vektorer: KDF-kjede, HKDF-labels, X3DH, ratchet-steg, fingerprint, wire 0x02 og 0x11 (streams), backup-HKDF, group sender-keys og storage-HKDF. Etterslepet fra Android-roadmapen landet samme dag: scrypt + argon2id via Bouncy Castle og `shade-android-keystore`-modulen (hardware-backed master key + `KeystoreStorage`). Gjenstår: socket-interop-test og instrumenterte Keystore-tester.
|
||||
|
||||
## 2026-05-03 — V4.0 GA: V3.x-konsolidering og audit-pakking
|
||||
Alle fasene V3.1–V3.12 ferdige og merget: dokumentasjon/hardening, at-rest storage-kryptering, trust-UX, observability (OTel), Android-paritet, inbox (store-and-forward), transport-bridge, web workers-krypto, filmetadata, social key recovery, WebRTC P2P og key transparency. Wire-formatet låst — uendret fra 0.4.x, så 4.0-peers interopererer byte-for-byte med 0.4.x. Kjernen pakket for ekstern review. Låst beslutning: alt VOIP/video skilt ut til V5.0, bygget oppå den frosne 4.0-stacken via reserverte envelope-typer (ikke breaking).
|
||||
27
.scaffold/plan.md
Normal file
27
.scaffold/plan.md
Normal file
@@ -0,0 +1,27 @@
|
||||
---
|
||||
project: "Shade"
|
||||
phase: "Post-4.x GA — V5.0 (Voice & Video) i idéfase"
|
||||
updated: 2026-07-09
|
||||
focus: "4.x-kjernen er GA-frosset og revisjonsklar; neste løft er V5.0 sanntid oppå den låste stacken"
|
||||
blockers: []
|
||||
---
|
||||
|
||||
# Plan — Shade
|
||||
|
||||
## Mål
|
||||
- E2EE-bibliotek som implementerer Signal-protokollen (X3DH + Double Ratchet) for TypeScript/Bun — drop-in for frontend, backend og mobil, med forward secrecy og post-compromise recovery.
|
||||
- Byte-for-byte kryssplattform-paritet: Kotlin/Android-porten verifiseres kontinuerlig mot TS-referansen via delte test-vektorer i `test-vectors/`.
|
||||
- GA-frosset, revisjonsklar 4.0-kjerne som fundament; nye kapabiliteter (sanntid i V5.0) bygges oppå uten å røre kjernekrypto-revisjonen.
|
||||
|
||||
## Nå
|
||||
- [ ] V5.0 fra `Idea` til `Design`: designnotatet `docs/V5.0.md` (SFrame-style frame encryption, `@shade/voice` / `@shade/video` / `@shade/broadcast`) må modnes og godkjennes
|
||||
- [ ] Ende-til-ende interop-test TS-server ↔ Kotlin-klient over ekte socket (anbefalt før «production»-label på Android)
|
||||
- [ ] Instrumenterte tester for `KeystoreStorage` (krever Android-emulator/enhet — utsatt i v4.9/v4.10-porten)
|
||||
|
||||
## Neste
|
||||
- V5.0-implementasjon: `@shade/voice` (1:1 voice) → `@shade/video` → `@shade/broadcast` (1:N med relay-helper)
|
||||
- «Production»-label på Android når interop-testen er grønn
|
||||
|
||||
## Senere
|
||||
- Re-pinne backup-vektoren når begge porter bytter til argon2id som passord-KDF (HKDF-placeholder flagget i threat-model; `deriveMasterKeyArgon2id` finnes allerede i Kotlin)
|
||||
- Versjonsdesigndokumentene bor fortsatt i `docs/V5.0.md` og `docs/archive/V*.md` — de er spesifikasjoner, ikke planfiler
|
||||
17
.scaffold/tasks.yaml
Normal file
17
.scaffold/tasks.yaml
Normal file
@@ -0,0 +1,17 @@
|
||||
# Scaffold kanban-kort. Skjema per kort:
|
||||
# - id: kort-slug # unik i fila
|
||||
# title: ""
|
||||
# description: ""
|
||||
# status: todo # todo | doing | done | blocked
|
||||
# column: todo # speiler status (kanban-kolonne)
|
||||
# priority: medium # low | medium | high
|
||||
# assignee: human # cursor | claude | human | any
|
||||
# context: "" # valgfri: hvorfor/hvor i koden
|
||||
# acceptance: "" # valgfri: hva «ferdig» betyr
|
||||
# todos:
|
||||
# - text: "Underoppgave"
|
||||
# done: false
|
||||
# created: 2026-07-09
|
||||
# updated: 2026-07-09
|
||||
# completed_at: null
|
||||
tasks: []
|
||||
4
CLAUDE.md
Normal file
4
CLAUDE.md
Normal file
@@ -0,0 +1,4 @@
|
||||
## Planlegging
|
||||
Planen for dette prosjektet bor i `.scaffold/`: `plan.md` er nåbildet (hold den kort,
|
||||
bump `updated` i frontmatter ved endring), `log.md` er append-only historikk (nyeste øverst),
|
||||
`tasks.yaml` er kanban. Ikke opprett planfiler andre steder.
|
||||
Reference in New Issue
Block a user