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

@ -64,6 +64,11 @@ message ChannelCreate {
message ChannelDelete { string channel_id = 1; }
message ChannelEdit {
string channel_id = 1;
string channel_name = 2;
}
message ChannelList { repeated ChannelListItem channels = 1; }
message ChannelListItem {
@ -359,3 +364,27 @@ message SimpleResponse {
optional string user_id = 2;
optional string role_id = 3;
}
// ─── E2EE for Direct Messages ────────────────────────────────────────────────
message E2eeDmKeyExchange {
string dm_id = 1;
bytes e2ee_public_key = 2;
}
message E2eeDmKeyExchangeAck {
string dm_id = 1;
}
message E2eeDmMessage {
string dm_id = 1;
string sender_id = 2;
bytes ciphertext = 3;
int64 timestamp = 4;
}
message E2eeDmHistory {
string dm_id = 1;
repeated E2eeDmMessage messages = 2;
optional int64 limit = 3;
}