#5 — preferred_viewers map on user settings (ext → viewer id), patched via
/user/setting, exposed on the login User object and settings response.
openViewers consults the synced map before localStorage, so "always open
with" follows the user across devices; stale viewer ids fall back to the
local copy. Preference page lists saved ext → app pairs with per-entry
removal. Map is shape-validated and capped at 200 entries.
#3 — the 2FA setup dialog now shows the raw TOTP secret under the QR code
with click-to-copy, for authenticators that can't scan.
Generated with [Devin](https://devin.ai)
Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
"folderClickActionDes":"Choose what happens when you click a folder. \"Open\" navigates into the folder, \"Select\" selects it (double-click to open).",
"preferredViewers":"Default apps",
"preferredViewersDes":"Apps chosen with \"Always\" in the open-with dialog. They apply on all your devices; remove one to be asked again.",
"preferredViewersEmpty":"No default apps saved yet. Pick \"Always\" in the open-with dialog on a file.",
"folderClickOpen":"Open",
"folderClickSelect":"Select",
"noAuthenticator":"Add a passkey to sign in using fingerprint, face or USB key.",
@ -961,6 +964,8 @@
"disable2FA":"Disable 2FA authentication",
"2faDescription":"Please use any 2FA mobile app or password management software that supports 2FA to scan the QR code to add this site. After scanning, please fill in the 6-digit verification code given by the 2FA app to enable 2FA.",
"inputCurrent2FACode":"Enter current 2FA verification code.",
"copySecret":"Can't scan? Click to copy the setup key",