readest/docs/designs
Huang Xin 7a7ab76421
feat(reader): Notebook as a linked writing workspace (#5928)
* feat(reader): turn Notebook into a synced editor

* style(design): FINDING-001 — remove empty Notebook footer

* style(design): FINDING-002 — clarify mobile Notebook header

* test(design): regression test for FINDING-001

* style(reader): move notes link to Notebook footer

* feat(reader): restore excerpts above Notebook editor

* docs(design): capture Readest product context

* fix(reader): keep copied excerpts out of Notebook editor

* fix(reader): keep unpinned Notebook open while resizing

* fix(i18n): unblock the extractor and translate Notebook strings

i18next-scanner parses each `_()` call's options object with esprima-next,
which is plain-JS only and choked on the `!` non-null assertion in
SettingsMenu. The scan aborted on that object, so "Library sync via
{{provider}}" never reached the catalogs. Hoist the value into a local so the
options literal stays parseable.

With the scan clean, the extractor picked up the Notebook save/recovery flow
and the annotation count. Translate all 26 new keys across the 34 shipped
locales, including every CLDR plural form each locale requires for
"{{count}} Annotations". Six superseded keys were pruned by removeUnusedKeys.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

* docs(memory): record recent reader and sync investigations

Add memory notes for the AZW3 loadRaw race, RTL skip-link blank pages, custom
shortcuts, file-sync convergence, group metadata LWW clobbering, the reader
menu's third-party sync status, the storage manager search button, TTS lyric
view, translation provider verification, and the Xiaomi MonoProxy lockup;
refresh the daisyUI 5 migration, layout, and BookDrop branding notes with
their post-merge state.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

* test(e2e): point addNote at the annotations-panel note editor

Attached notes moved out of the Notebook: Annotate now highlights the selection
and opens the annotations tab with the new item already in BooknoteItem's inline
editor. The page object still waited on `.note-editor-container` (the orphaned
Notebook NoteEditor) and clicked Save inside the Notebook group, so
"adds a note to the selected text" timed out on every run.

Give the inline editor a `booknote-note-editor` test id and drive that instead.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-28 21:18:17 +02:00
..
notebook-linked-writing-workspace.md feat(reader): Notebook as a linked writing workspace (#5928) 2026-08-28 21:18:17 +02:00