summaryrefslogtreecommitdiffstats
path: root/packages/meshbay-hub/src/meshbay_hub/static/group-page.js
diff options
context:
space:
mode:
authorChristophe Besson <cbesson@gmail.com>2026-09-16 11:37:58 +0200
committerChristophe Besson <cbesson@gmail.com>2026-09-16 11:37:58 +0200
commitad8a08c713dea0e46800ea0aa6bfcf185a69e70e (patch)
treea1f9289b3a55e30853d22a95a5ec858cf04ab272 /packages/meshbay-hub/src/meshbay_hub/static/group-page.js
parentcde57423e04812fe2c939fdf983e3b45a77fd82d (diff)
downloadmeshbay-ad8a08c713dea0e46800ea0aa6bfcf185a69e70e.tar.gz
playlists: merge rules, sealing, and the key
playlist-merge.js and playlist-crypto.js have no imports and are run by their tests, which is the only real evidence this feature can have. Two revision counters per playlist, not one: a rename on one device and a track added on another both write n+1, and a single counter makes two edits that do not overlap collide. One Argon2 run at sign-in, two handles. The AES handle is imported non-extractably, so nothing can be derived from it — hence a second import of the same bytes as HKDF rather than a derivation. Measured: ~270 bytes a track, deflate worth 4.5x on realistic data, so the 1 MB body cap holds about 17000 tracks. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Diffstat (limited to 'packages/meshbay-hub/src/meshbay_hub/static/group-page.js')
-rw-r--r--packages/meshbay-hub/src/meshbay_hub/static/group-page.js2
1 files changed, 1 insertions, 1 deletions
diff --git a/packages/meshbay-hub/src/meshbay_hub/static/group-page.js b/packages/meshbay-hub/src/meshbay_hub/static/group-page.js
index 060fd6e..205fce2 100644
--- a/packages/meshbay-hub/src/meshbay_hub/static/group-page.js
+++ b/packages/meshbay-hub/src/meshbay_hub/static/group-page.js
@@ -242,7 +242,7 @@ function GroupPage({ groupId, group, token, username, userId, userPrefs,
// that opens node bundles is missing here. Persisted so this browser is
// set up from now on.
session.bundleKey = {
- v2: await window.MeshBayKeys.deriveEncryptionKey(pass, username),
+ ...(await window.MeshBayKeys.bundleKeyPairFields(pass, username)),
v1: await window.MeshBayKeys.deriveEncryptionKeyV1(pass, username),
};
await _storeBundleKey(session.bundleKey);