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:
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user