apps/readest-app/TODOS.md
What: Run the Notebook document's 10 KiB and 256 KiB input, recovery, and serialization benchmark on an Android API 26 emulator using the minimum-supported System WebView profile.
Why: The issue 5917 implementation intentionally uses a real-Chromium performance gate, which does not prove that near-limit typing meets the same latency budget on Readest's oldest supported Android runtime.
Context: The browser gate requires 50 operations with p95 below 16 ms at 10 KiB and below 50 ms at 256 KiB, with no operation above 100 ms. Reuse that workload on API 26 and move recovery storage away from synchronous localStorage if the device profile misses the budget.
Effort: S Priority: P2 Depends on: Issue 5917 Notebook editor implementation
Deferred from the Cloud Sync provider-selection plan (#4959/#4380). See the Decision Audit Trail in the plan for reasoning.
code: 'quota_exceeded', mirroring the share
import route) so the client stops string-matching 'Insufficient storage
quota'; message drift silently restores retry behavior. (S)queueUpload never consults
isSyncCategoryEnabled('book') despite the category docs claiming it) —
align behavior or docs. (S)cloudSyncProvider tag: Sentry tagging is Rust-mediated
(set_webview_info pattern in sentry_config.rs); add a
set_cloud_sync_provider command + before_send tag so sync-related
reports carry the active provider. Console log lines ship in the
meantime. (S, needs src-tauri)Deferred items from the Edge TTS Web Audio plan review (/autoplan, 2026-07-04).
Each was explicitly deferred, not forgotten — see the Decision Audit Trail in
.agents/plans/2026-07-03-edge-tts-webaudio.md.
Deferred from the Readest Voice plans (spec: docs/superpowers/specs/2026-07-08-selfhosted-premium-tts-design.md). See the Decision Audit Trail in .agents/plans/2026-07-08-readest-tts-integration.md.
instruct; needs UX + catalog plumbing). (M)