Account preferences store and rebindable shortcuts (D206) #145

Open
opened 2026-10-09 15:29:27 +00:00 by kayg · 0 comments
Owner

D206: every shortcut is rebindable and remembered per account (per-device overrides later). The toolbar layout already has an account layer in the UI, but it talks to a mock route (/__mock/account/toolbar) — there is no server store.

Backend (this issue): a small per-account preferences store on the server — named documents (toolbar, shortcuts, later others), JSON with a schema version, bounded size (e.g. 64 KiB per document), optimistic concurrency (revision number; a stale write is refused with the current value), pushed to the account's other open browsers over the multiplexed connection so a rebinding shows up everywhere without reload. Authenticated per account; no secrets stored there.
UI (separate, after): a Shortcuts section in Settings to rebind each action, showing conflicts (terminal Meta keys, AltGr, browser-reserved keys like reload) in plain language.

D206: every shortcut is rebindable and remembered per account (per-device overrides later). The toolbar layout already has an account layer in the UI, but it talks to a mock route (`/__mock/account/toolbar`) — there is no server store. Backend (this issue): a small per-account preferences store on the server — named documents (`toolbar`, `shortcuts`, later others), JSON with a schema version, bounded size (e.g. 64 KiB per document), optimistic concurrency (revision number; a stale write is refused with the current value), pushed to the account's other open browsers over the multiplexed connection so a rebinding shows up everywhere without reload. Authenticated per account; no secrets stored there. UI (separate, after): a Shortcuts section in Settings to rebind each action, showing conflicts (terminal Meta keys, AltGr, browser-reserved keys like reload) in plain language.
Sign in to join this conversation.
No labels
launch-qa
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
kayg/infraternal#145
No description provided.