aboutsummaryrefslogtreecommitdiffstats
path: root/packages/meshbay-hub/src/meshbay_hub/static/locales
diff options
context:
space:
mode:
authorChristophe Besson <cbesson@gmail.com>2026-09-16 16:07:18 +0200
committerChristophe Besson <cbesson@gmail.com>2026-09-16 16:07:18 +0200
commit2916aa376009283305a7acec4aafa3c96544499e (patch)
treebc19d010e8bebf39c175271564b3be01d1c06aa0 /packages/meshbay-hub/src/meshbay_hub/static/locales
parent25f62e169e049f0757ef611d5b409e7523958dee (diff)
downloadmeshbay-2916aa376009283305a7acec4aafa3c96544499e.tar.gz
playlists: make the writes actually leave the browser
Reported from a phone: signing in with the same account showed no playlists. syncWith was called from exactly one place in the interface, so creating a playlist, deleting one, removing a track and saving the queue all wrote to IndexedDB and stopped there. The store pushes itself now, coalesced, so a new mutation cannot forget to. Silence was the real defect. The node audited only successes, so a refusal left no trace and user_blob_list none at all; the background push swallowed its reason; the interface said nothing. All three report now, and "Sync now" says what happened either way. An unreadable blob on a node was treated as a fetch failure and returned before the push — permanent, once the node held anything. It is an absence: the client is the authority, and it gets overwritten. A sign-in reconciles whatever this browser already holds, a pending push is flushed when the page goes away, and a push that did not land is retried once. no_key is spelled out: a client that signs in with its remembered device key only ever has a bundle key persisted before the playlist subkey existed, and an AES handle is non-extractable. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Diffstat (limited to 'packages/meshbay-hub/src/meshbay_hub/static/locales')
-rw-r--r--packages/meshbay-hub/src/meshbay_hub/static/locales/de.js1
-rw-r--r--packages/meshbay-hub/src/meshbay_hub/static/locales/en.js1
-rw-r--r--packages/meshbay-hub/src/meshbay_hub/static/locales/es.js1
-rw-r--r--packages/meshbay-hub/src/meshbay_hub/static/locales/fr.js1
-rw-r--r--packages/meshbay-hub/src/meshbay_hub/static/locales/it.js1
-rw-r--r--packages/meshbay-hub/src/meshbay_hub/static/locales/ja.js1
-rw-r--r--packages/meshbay-hub/src/meshbay_hub/static/locales/nl.js1
-rw-r--r--packages/meshbay-hub/src/meshbay_hub/static/locales/pl.js1
-rw-r--r--packages/meshbay-hub/src/meshbay_hub/static/locales/pt-BR.js1
-rw-r--r--packages/meshbay-hub/src/meshbay_hub/static/locales/zh-CN.js1
10 files changed, 10 insertions, 0 deletions
diff --git a/packages/meshbay-hub/src/meshbay_hub/static/locales/de.js b/packages/meshbay-hub/src/meshbay_hub/static/locales/de.js
index 9dec910..4cfa0a7 100644
--- a/packages/meshbay-hub/src/meshbay_hub/static/locales/de.js
+++ b/packages/meshbay-hub/src/meshbay_hub/static/locales/de.js
@@ -335,6 +335,7 @@ export default {
'playlists.deleted': '„{name}“ gelöscht',
'playlists.synced': 'Playlists synchronisiert',
'playlists.sync_failed': 'Synchronisierung fehlgeschlagen',
+ 'playlists.err_no_key': 'Melde dich einmal ab und mit deinem Passwort wieder an, damit Playlists zwischen Geräten synchronisiert werden.',
'playlists.track_removed': 'Titel entfernt',
'playlists.save_queue': 'Warteschlange als Playlist speichern…',
'playlists.cancel': 'Abbrechen',
diff --git a/packages/meshbay-hub/src/meshbay_hub/static/locales/en.js b/packages/meshbay-hub/src/meshbay_hub/static/locales/en.js
index 37c7c1b..1616eb5 100644
--- a/packages/meshbay-hub/src/meshbay_hub/static/locales/en.js
+++ b/packages/meshbay-hub/src/meshbay_hub/static/locales/en.js
@@ -333,6 +333,7 @@ export default {
'playlists.deleted': '"{name}" deleted',
'playlists.synced': 'Playlists synced',
'playlists.sync_failed': 'Could not sync playlists',
+ 'playlists.err_no_key': 'Sign out and sign in with your password once to sync playlists across devices.',
'playlists.track_removed': 'Track removed',
'playlists.save_queue': 'Save the queue as a playlist…',
'playlists.cancel': 'Cancel',
diff --git a/packages/meshbay-hub/src/meshbay_hub/static/locales/es.js b/packages/meshbay-hub/src/meshbay_hub/static/locales/es.js
index 3edc78a..ff74857 100644
--- a/packages/meshbay-hub/src/meshbay_hub/static/locales/es.js
+++ b/packages/meshbay-hub/src/meshbay_hub/static/locales/es.js
@@ -333,6 +333,7 @@ export default {
'playlists.deleted': '«{name}» eliminada',
'playlists.synced': 'Listas sincronizadas',
'playlists.sync_failed': 'No se pudieron sincronizar',
+ 'playlists.err_no_key': 'Cierra sesión y vuelve a entrar con tu contraseña una vez para sincronizar las listas entre dispositivos.',
'playlists.track_removed': 'Pista quitada',
'playlists.save_queue': 'Guardar la cola como lista…',
'playlists.cancel': 'Cancelar',
diff --git a/packages/meshbay-hub/src/meshbay_hub/static/locales/fr.js b/packages/meshbay-hub/src/meshbay_hub/static/locales/fr.js
index c7e1ed3..52af974 100644
--- a/packages/meshbay-hub/src/meshbay_hub/static/locales/fr.js
+++ b/packages/meshbay-hub/src/meshbay_hub/static/locales/fr.js
@@ -334,6 +334,7 @@ export default {
'playlists.deleted': '« {name} » supprimée',
'playlists.synced': 'Playlists synchronisées',
'playlists.sync_failed': 'Synchronisation impossible',
+ 'playlists.err_no_key': 'Déconnecte-toi puis reconnecte-toi avec ton mot de passe une fois, pour synchroniser les playlists entre appareils.',
'playlists.track_removed': 'Morceau retiré',
'playlists.save_queue': 'Enregistrer la file comme playlist…',
'playlists.cancel': 'Annuler',
diff --git a/packages/meshbay-hub/src/meshbay_hub/static/locales/it.js b/packages/meshbay-hub/src/meshbay_hub/static/locales/it.js
index bfeb20d..75b420d 100644
--- a/packages/meshbay-hub/src/meshbay_hub/static/locales/it.js
+++ b/packages/meshbay-hub/src/meshbay_hub/static/locales/it.js
@@ -334,6 +334,7 @@ export default {
'playlists.deleted': '«{name}» eliminata',
'playlists.synced': 'Playlist sincronizzate',
'playlists.sync_failed': 'Sincronizzazione non riuscita',
+ 'playlists.err_no_key': 'Esci e rientra con la tua password una volta per sincronizzare le playlist tra dispositivi.',
'playlists.track_removed': 'Brano rimosso',
'playlists.save_queue': 'Salva la coda come playlist…',
'playlists.cancel': 'Annulla',
diff --git a/packages/meshbay-hub/src/meshbay_hub/static/locales/ja.js b/packages/meshbay-hub/src/meshbay_hub/static/locales/ja.js
index caf729a..c87d795 100644
--- a/packages/meshbay-hub/src/meshbay_hub/static/locales/ja.js
+++ b/packages/meshbay-hub/src/meshbay_hub/static/locales/ja.js
@@ -331,6 +331,7 @@ export default {
'playlists.deleted': '「{name}」を削除しました',
'playlists.synced': 'プレイリストを同期しました',
'playlists.sync_failed': '同期できませんでした',
+ 'playlists.err_no_key': 'プレイリストを端末間で同期するには、一度サインアウトしてパスワードでサインインしてください。',
'playlists.track_removed': '曲を削除しました',
'playlists.save_queue': 'キューをプレイリストとして保存…',
'playlists.cancel': 'キャンセル',
diff --git a/packages/meshbay-hub/src/meshbay_hub/static/locales/nl.js b/packages/meshbay-hub/src/meshbay_hub/static/locales/nl.js
index b9e719e..4fa3d01 100644
--- a/packages/meshbay-hub/src/meshbay_hub/static/locales/nl.js
+++ b/packages/meshbay-hub/src/meshbay_hub/static/locales/nl.js
@@ -335,6 +335,7 @@ export default {
'playlists.deleted': '“{name}” verwijderd',
'playlists.synced': 'Afspeellijsten gesynchroniseerd',
'playlists.sync_failed': 'Synchroniseren mislukt',
+ 'playlists.err_no_key': 'Meld je één keer af en met je wachtwoord weer aan om afspeellijsten tussen apparaten te synchroniseren.',
'playlists.track_removed': 'Nummer verwijderd',
'playlists.save_queue': 'Wachtrij opslaan als afspeellijst…',
'playlists.cancel': 'Annuleren',
diff --git a/packages/meshbay-hub/src/meshbay_hub/static/locales/pl.js b/packages/meshbay-hub/src/meshbay_hub/static/locales/pl.js
index 7f87537..d0fd387 100644
--- a/packages/meshbay-hub/src/meshbay_hub/static/locales/pl.js
+++ b/packages/meshbay-hub/src/meshbay_hub/static/locales/pl.js
@@ -344,6 +344,7 @@ export default {
'playlists.deleted': 'Usunięto „{name}”',
'playlists.synced': 'Playlisty zsynchronizowane',
'playlists.sync_failed': 'Nie udało się zsynchronizować',
+ 'playlists.err_no_key': 'Wyloguj się i zaloguj raz hasłem, aby synchronizować playlisty między urządzeniami.',
'playlists.track_removed': 'Utwór usunięty',
'playlists.save_queue': 'Zapisz kolejkę jako playlistę…',
'playlists.cancel': 'Anuluj',
diff --git a/packages/meshbay-hub/src/meshbay_hub/static/locales/pt-BR.js b/packages/meshbay-hub/src/meshbay_hub/static/locales/pt-BR.js
index 961b353..94c56a6 100644
--- a/packages/meshbay-hub/src/meshbay_hub/static/locales/pt-BR.js
+++ b/packages/meshbay-hub/src/meshbay_hub/static/locales/pt-BR.js
@@ -335,6 +335,7 @@ export default {
'playlists.deleted': '"{name}" excluída',
'playlists.synced': 'Playlists sincronizadas',
'playlists.sync_failed': 'Não foi possível sincronizar',
+ 'playlists.err_no_key': 'Saia e entre com sua senha uma vez para sincronizar as playlists entre dispositivos.',
'playlists.track_removed': 'Faixa removida',
'playlists.save_queue': 'Salvar a fila como playlist…',
'playlists.cancel': 'Cancelar',
diff --git a/packages/meshbay-hub/src/meshbay_hub/static/locales/zh-CN.js b/packages/meshbay-hub/src/meshbay_hub/static/locales/zh-CN.js
index 893b2eb..bc77d5f 100644
--- a/packages/meshbay-hub/src/meshbay_hub/static/locales/zh-CN.js
+++ b/packages/meshbay-hub/src/meshbay_hub/static/locales/zh-CN.js
@@ -328,6 +328,7 @@ export default {
'playlists.deleted': '已删除“{name}”',
'playlists.synced': '播放列表已同步',
'playlists.sync_failed': '无法同步',
+ 'playlists.err_no_key': '请退出并用密码重新登录一次,以便在设备间同步播放列表。',
'playlists.track_removed': '已移除曲目',
'playlists.save_queue': '将队列保存为播放列表…',
'playlists.cancel': '取消',