* feat(editor): add setting to turn off spellcheck underlines
Add a device-local "Underline spelling mistakes" switch to the editing
preferences. The rich-text editor and the mobile plain-text editor now
set spellcheck from this preference and update live when it changes.
Defaults to enabled, so existing behavior is unchanged.
Refs #468
* fix(editor): keep the spellcheck setting when it cannot be saved
When localStorage rejects the write, remember the choice in memory for
the rest of the session so reopening Settings or the editor no longer
falls back to the default.
Refs #468
* feat(web): add a keyboard shortcut to show or hide the sidebar
The notebook sidebar can already collapse into an icon rail, but only
with the mouse. Add a configurable "Show/hide sidebar" shortcut,
Ctrl/⌘+\ by default, next to the existing outline shortcut. It toggles
the same persisted collapsed state, works only in the desktop layout,
and is ignored while a dialog or another view is open. The collapse
button tooltip now shows the shortcut.
Refs #97
* fix(web): ignore the sidebar shortcut while Focus Mode is on
Focus Mode hides the notebook sidebar, so the shortcut used to change
and save its collapsed state without any visible feedback. It now does
nothing while Focus Mode is active, and the saved state is left as it
was when Focus Mode ends.
Refs #97
Read the current player's captions after one click and write a timestamped note. Summaries use the workspace default model when the token includes ai:generate.
Diagram, flowchart, architecture, and table notes now use the same bottom-right launcher and companion sidebar. Structured tables can be discussed, but update_memo cannot replace them.
Infographic notes kept using the built-in model after the desktop was set to a local ACP agent. The sidebar now shows that agent and sends generation to it without note write access.
After a bullet is created, a task marker at the start of that item becomes a checkbox. Closed dollar pairs become formulas, while currency amounts stay text.
Streaming unzip treated ZIP signatures inside stored .docx, .xlsx, and .pptx files as archive entries. Read each entry from the central directory so existing exports restore.
Yield the 6rem article gutters once an open sidebar leaves no room for the chosen column width and the outline. The outline still hides only below 720px.