Independent research/development project · technical preview

Roadmap

Status: 2026-08-27 Current synchronized workspace version: v0.0.5 technical-preview candidate

This document tracks implementation gaps, future features, and production readiness beyond the current v0.0.5 technical-preview state. Items marked complete describe repository behavior and local qualification only; the real Signal deployment gate remains separate.

Current state summary

Area Status Key gap
CRDT core Structured baseline complete Rich editor UX and attachment-content layer remain
Protocol Solid Generic causal wire-gap proof is still intentionally absent from v1
Identity Prekey lifecycle + stable metadata lookup complete Authenticated long-term Ed25519 rebind remains unresolved
Encryption Solid technical-preview boundary No Double Ratchet / post-compromise-security claim
Access control Complete (R6) First-contact transparency/freshness remains deployment work
Client SDK Good Structured APIs + bounded auto retry are implemented
Storage Good Workload tuning/corruption fixtures remain
Transport Good PeerJS is live-P2P only; real Signal live evidence remains external
Mock sidecar Solid Debug decrypt remains explicitly toy/debug-only
Web app Functional Rich structured-document editor/management UX remains
Production sidecar Partial signal-cli v0.14.7 boundary audited; live two-account evidence unavailable
Android M1 lower-layer implementation qualified Native E2EE/Compose send wiring remains gated
Desktop Feasible, intentionally unscaffolded Ratify host/security/lifecycle contract before implementation
iOS Not started No meaningful reusable native implementation yet

1. Production gaps (must-fix before real Signal)

1.1 Sidecar: real signal-cli integration

1.2 Storage: atomic snapshot + outbound

1.3 Storage: durable seen-message ledger

1.4 Client: snapshot recovery

1.5 Protocol: authenticated access control proof

2. Feature gaps (post-v0.0.5 baseline)

2.1 Multi-document support

2.2 Offline-first UX

2.3 Structured document model

2.4 Key rotation lifecycle

2.5 Persistent dedup

2.6 Durable attempt state

3. Platform extensions

3.1 Android app

3.2 iOS app

3.3 Desktop (Electron/Tauri)

4. Testing gaps

4.1 Integration tests

4.2 Sidecar contract tests

4.3 Restart recovery tests

4.4 Multi-browser encrypted convergence

5. Documentation gaps

5.1 Getting started guide

5.2 Architecture decision records

5.3 API reference

6. Performance considerations

6.1 Envelope size

6.2 Storage growth

6.3 Key bundle fetching

7. Priority order

P0 (blocking production deployment):
  1. Real two-account signal-cli smoke + deployment-specific body-limit evidence (external gate)
  2. Atomic snapshot + outbound (complete)
  3. Durable seen-message ledger (complete)

P1 (production quality baseline):
  4. Snapshot recovery (complete for provable loss signals)
  5. Authenticated access control review (R6 complete for authenticated-identity model)
  6. Full E2EE mock-Signal integration + browser restart evidence (complete)
  7. Bounded client retry/backoff above durable outbound (complete)

P2 (feature completeness baseline):
  8. Multi-document UI/local metadata (complete)
  9. Offline-first UX (complete)
  10. X25519 signed/one-time-prekey lifecycle (complete)
  11. Stable identity metadata lookup without one-time-prekey consumption (complete)
  12. Persistent dedup (complete)
  13. Structured CRDT/core-client operation baseline (complete; rich editor remains)

P3 (platform extension):
  14. Android M1 lower-layer implementation + isolated-cache JVM qualification (complete)
  15. Android M2 native E2EE/identity parity before Compose collaboration send wiring
  16. Desktop wrapper (feasible; contract ratification before scaffold)

P4 (future/security/product):
  17. Rich structured editor + attachment content layer
  18. iOS only after a reusable native/key/transport composition exists
  19. Authenticated Ed25519 identity-key rebind/re-verification protocol
  20. Double Ratchet/session-key evolution only if stronger forward/post-compromise secrecy is required

8. Proposed release train after 0.0.5

The following version boundaries are planning targets, not promises to ship incomplete security work.

0.0.6 — browser/release portability

0.0.7 — Android M2 security parity

0.0.8 — structured editor/product slice

0.1.0 — deployment-evidence milestone

Do not schedule the first minor release merely because patch numbers are exhausted. A 0.1.0 candidate should require, at minimum, the real two-account signal-cli smoke on a pre-existing group, recorded deployment-specific body limits, supported-host Chromium/Firefox/WebKit release evidence, and a reviewed first-contact identity/freshness deployment story. Android/desktop features may remain separately previewed, but their limits must be explicit rather than implied complete.