Phase 2: PostgreSQL, E2EE, channel CRUD, voice signaling, Slint migration

Server:
- PostgreSQL backend (Pool enum over Sqlite/PgPool, all storage methods dual-dialect)
- E2EE for DM (4 new protobuf packets, handlers, storage of ciphertext only)
- ChannelEdit packet + server-authoritative channel create/delete
- Gateway → voice-node membership signaling via broadcast channel

Client:
- E2EE crypto (X25519 from Ed25519, HKDF, ChaCha20-Poly1305) + UI lock icons
- E2EE net layer (PID 0x0071-0x0074, JSON payloads, dispatch, session handlers)
- Slint migration: all .slint files, bridge.rs, update.rs, main.rs rewritten
- Removed egui UI (~50 files) and all dead code (clean clippy -D warnings)
This commit is contained in:
loki5512344 2026-07-14 13:25:14 +02:00
parent c34ed2a192
commit 742cf03a5f
Signed by: boba
GPG key ID: 253067914055423B
31 changed files with 2203 additions and 639 deletions

View file

@ -34,6 +34,8 @@ pub struct State {
pub rate_limiter: Arc<RateLimiter>,
/// Gateway → voice-node membership bridge.
pub voice_member_tx: Option<VoiceMemberTx>,
/// E2EE key store: user_id -> X25519 public key bytes
pub e2ee_keys: Arc<RwLock<HashMap<String, Vec<u8>>>>,
}
impl State {
@ -66,6 +68,7 @@ impl State {
channels_count,
rate_limiter,
voice_member_tx,
e2ee_keys: Arc::new(RwLock::new(HashMap::new())),
}
}
}