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

@ -16,6 +16,7 @@ pub enum PacketId {
ChannelCreate = 0x0033,
ChannelDelete = 0x0034,
ChannelList = 0x0035,
ChannelEdit = 0x0036,
UserJoin = 0x0040,
UserLeave = 0x0041,
PermissionCheck = 0x0050,
@ -24,6 +25,10 @@ pub enum PacketId {
DmMessage = 0x0061,
DmHistory = 0x0062,
DmReadAck = 0x0063,
E2eeDmKeyExchange = 0x0071,
E2eeDmKeyExchangeAck = 0x0072,
E2eeDmMessage = 0x0073,
E2eeDmHistory = 0x0074,
ReadReceipt = 0x0064,
ReadReceiptBroadcast = 0x0065,
MessageReactionAdd = 0x0066,
@ -84,6 +89,7 @@ impl PacketId {
0x0033 => Some(Self::ChannelCreate),
0x0034 => Some(Self::ChannelDelete),
0x0035 => Some(Self::ChannelList),
0x0036 => Some(Self::ChannelEdit),
0x0040 => Some(Self::UserJoin),
0x0041 => Some(Self::UserLeave),
0x0050 => Some(Self::PermissionCheck),
@ -99,6 +105,10 @@ impl PacketId {
0x0068 => Some(Self::MessageEdit),
0x0069 => Some(Self::MessageDelete),
0x0070 => Some(Self::TypingStart),
0x0071 => Some(Self::E2eeDmKeyExchange),
0x0072 => Some(Self::E2eeDmKeyExchangeAck),
0x0073 => Some(Self::E2eeDmMessage),
0x0074 => Some(Self::E2eeDmHistory),
0x0100 => Some(Self::GuildCreate),
0x0101 => Some(Self::GuildDelete),
0x0102 => Some(Self::GuildList),