docs(chat): adopt existing SilverVPN.Client.Chat as SilverChat — promote to v1

Inspection of ../SilverVPN/clients/SilverVPN.Client.Chat reveals a mature,
production-grade SilverChat implementation:

- Cross-platform MAUI client (Windows / macOS / Android / iOS)
- 13 ViewModels + 13 Views — feature-complete UX (contacts, conversations,
  group chat, invites, safety numbers, settings, login)
- Signal Protocol crypto: Double Ratchet, X3DH (PreKey + Identity stores),
  Safety Numbers, encrypted attachments
- VpnChatTransport — chat carried over the SilverVPN tunnel itself,
  eliminating third-party metadata exposure
- Server-side already in SilverVPN.Api: ChatHub (SignalR), ChatController,
  ChatAttachmentController, ContactsController
- Windows MSI installer wired (installer/silverchat/SilverChat.wxs)

Decision: adopt-as-is, do not duplicate. SilverChat is more advanced than
the v1.1 plan (which considered Matrix / Signal-fork) — three wins:
1. Signal Protocol natively, not a tentative fork
2. Chat over the VPN tunnel — better metadata hygiene
3. Cross-platform on day one

Changes:
- stack/chat/README.md rewritten as integration pointer (mirror of stack/vpn/)
- stack/README.md status table updated; SilverChat promoted v1.1 → v1
- docs/roadmap.md: new milestone 1.9 (Chat integration into Linux v1);
  Phase 1.1 alignment-review milestone removed (resolved by this finding);
  remaining 1.1 milestones renumbered
- root README.md: Stack table + Status table updated

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-04-25 03:38:45 +01:00
parent 0a0075ce66
commit acd3ebe7f2
4 changed files with 90 additions and 36 deletions

View File

@@ -9,7 +9,7 @@ The cross-platform spine of SilverMetal. These apps replace the cloud services y
| [`browser/`](browser/) — **SilverBrowser** | v1 (Linux MVP) | De-Googled, telemetry-free browser |
| [`vpn/`](vpn/) — **SilverVPN** | **Existing** — see [`SilverLABS/SilverVPN`](https://git.silverlabs.uk/SilverLABS/SilverVPN). This directory tracks integration only | Always-on, no-logs VPN with our infrastructure |
| [`sync/`](sync/) — **SilverSync** | v1 (Linux MVP) | Private replacement for iCloud/Google/OneDrive |
| [`chat/`](chat/) — **SilverChat** | v1.1 — *may overlap with `SilverVPN.Client.Chat`; alignment decision pending* | E2EE messenger |
| [`chat/`](chat/) — **SilverChat** | **Existing**`SilverVPN.Client.Chat` is already production-grade (Signal Protocol, MAUI cross-platform, transport-over-VPN). Promoted from v1.1 to **v1**. This directory tracks integration only | E2EE messenger |
| [`duress/`](duress/) — **SilverDuress** | v1.1 | Duress password / panic-wipe |
| [`keys/`](keys/) — **SilverKeys** | v1.1 | Zero-knowledge password + 2FA manager |
| [`shared/`](shared/) — common code | ongoing | Account SDK, crypto primitives, branding |
@@ -28,7 +28,7 @@ Each app is built natively per platform — no Electron sprawl where avoidable:
- **macOS**: universal binary `.pkg` (notarised)
- **iOS**: App Store
Where a single codebase (e.g., MAUI as SilverVPN already does, or Tauri/Rust core for Browser/Sync/Keys) lets us hit multiple platforms with thin native UI shells, we use it. We avoid Electron unless the cost of native is unjustifiable.
SilverVPN's MAUI base already covers Windows / macOS / Android / iOS for VPN and Chat. For SilverBrowser / SilverSync / SilverKeys we'll evaluate per-app whether MAUI, Tauri/Rust, or native is the right pick.
## v1 ship order
@@ -37,15 +37,17 @@ For SilverMetal OS — Linux v1:
1. **SilverBrowser** — ungoogled-chromium-derived, our defaults, our update channel
2. **SilverVPN** integration — existing product, integrated into our ISO with always-on defaults and kill-switch
3. **SilverSync** — Nextcloud-backed (server side), client-side encryption, native Linux client
4. **SilverChat** integration — existing product (Signal Protocol over the VPN tunnel); was originally v1.1 but the upstream is mature enough to ship in v1
These three ship with SilverMetal OS — Linux v1. v1.1 adds Chat, Duress, Keys.
**Promoted from v1.1 → v1**: SilverChat — because the existing implementation in `SilverVPN.Client.Chat` is far more mature than what we'd build from scratch.
v1.1 still adds Duress and Keys.
## Server side
Server components live in separate repositories:
- `SilverLABS/SilverVPN` — already exists; includes server stack
- `SilverLABS/SilverVPN` — already exists; includes both VPN server stack **and** SilverChat backend (`Hubs/ChatHub.cs` + `Controllers/Chat*`)
- `SilverLABS/silver-sync-server` *(to be created)* — Nextcloud + Radicale + Baïkal stack
- `SilverLABS/silver-chat-homeserver` *(to be created OR may live under SilverVPN)*depends on v1.1.1 alignment decision
- `SilverLABS/silver-account` *(to be created)* — account-number issuance + auth gateway
- `SilverLABS/silver-account` *(to be created OR may live under SilverVPN)*account-number issuance + auth gateway
Self-hostable counterparts are documented for users who don't want to use SilverLABS infrastructure.