Server fixes: - Wire v2 moderation handlers to ModerationService (SQL persistence) — bans now survive restarts instead of living in-memory DashMap - Add admin role enforcement via QPC_ADMIN_KEYS env var for ban/unban - Fix audit.rs now_iso8601() to emit actual ISO-8601 timestamps - Add group admin authorization — only creator can remove members or update metadata Server features: - Add DeleteBlob RPC (method 602) with filesystem cleanup - Register delete_blob in v2 handler method registry SDK features: - Add ClientEvent::IdentityKeyChanged for safety number change alerts - Add ClientEvent::ReadReceipt and DeliveryConfirmation variants - Add peer_identity_keys table with store/get methods for key tracking - Add search_messages() full-text search across all conversations - Add delete_conversation() with cascading message/outbox cleanup Client features: - Wire v2 TUI message sending to SDK MLS encryption pipeline - Add /search command to v2 REPL with cross-conversation results - Add /delete-conversation command to v2 REPL - Add unread count badges in v1 TUI sidebar (yellow+bold styling)
39 lines
613 B
Protocol Buffer
39 lines
613 B
Protocol Buffer
syntax = "proto3";
|
|
package qpc.v1;
|
|
|
|
// Blob upload/download (2 methods).
|
|
// Method IDs: 600-601.
|
|
|
|
message UploadBlobRequest {
|
|
bytes blob_hash = 1;
|
|
bytes chunk = 2;
|
|
uint64 offset = 3;
|
|
uint64 total_size = 4;
|
|
string mime_type = 5;
|
|
}
|
|
|
|
message UploadBlobResponse {
|
|
bytes blob_id = 1;
|
|
}
|
|
|
|
message DownloadBlobRequest {
|
|
bytes blob_id = 1;
|
|
uint64 offset = 2;
|
|
uint32 length = 3;
|
|
}
|
|
|
|
message DownloadBlobResponse {
|
|
bytes chunk = 1;
|
|
uint64 total_size = 2;
|
|
string mime_type = 3;
|
|
}
|
|
|
|
// Method ID: 602
|
|
message DeleteBlobRequest {
|
|
bytes blob_id = 1;
|
|
}
|
|
|
|
message DeleteBlobResponse {
|
|
bool deleted = 1;
|
|
}
|