From cc90dc943fcd0e7bbf52674fb3f95ff097026f4a Mon Sep 17 00:00:00 2001 From: Christophe Besson Date: Tue, 11 Aug 2026 14:55:52 +0200 Subject: feat: Phase 10b — Self-service UI (group create/join, upload, IndexedDB, search) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Six self-service features for the web SPA: - Group creation UI with GEK auto-generation (AES-256-GCM ECIES) - Member management + invite by username (GEK wrapping for invitee) - Open group self-join flow (POST /v1/groups/{id}/join) - File upload client→node (FILE_UPLOAD MNP type, .uploads/ staging) - IndexedDB caching of group file indexes (instant display on revisit) - Cross-group file search (SearchPage, pure client-side on cached indexes) 11 new tests (166 total): 8 group self-service + 3 AES GEK wrap/unwrap. Co-Authored-By: Claude Opus 4.6 --- packages/meshbay-common/src/meshbay_common/protocol.py | 2 ++ 1 file changed, 2 insertions(+) (limited to 'packages/meshbay-common/src/meshbay_common/protocol.py') diff --git a/packages/meshbay-common/src/meshbay_common/protocol.py b/packages/meshbay-common/src/meshbay_common/protocol.py index fbf871a..8da3ea0 100644 --- a/packages/meshbay-common/src/meshbay_common/protocol.py +++ b/packages/meshbay-common/src/meshbay_common/protocol.py @@ -31,6 +31,8 @@ class MNP: CHAT_HISTORY_RESPONSE = "chat_hist_resp" # history response with messages GEK_REQUEST = "gek_req" # browser requests group GEK GEK_RESPONSE = "gek_resp" # node delivers GEK over secure channel + FILE_UPLOAD = "file_upload" # client pushes file chunk to node + FILE_UPLOAD_ACK = "file_upload_ack" # node acknowledges chunk receipt EPHEMERAL_STREAM = "ephemeral_stream" # reserved — mobile live push -- cgit v1.2.3