The $: block applying note changes to CodeMirror listed the autosave
bookkeeping vars (saveTimer, lastKnown) as dependencies, so the 400 ms
autosave re-ran it before App delivered the updated note prop. That stale
run misread the save echo as an external sync change and replaced the
whole doc mid-typing: on Android this aborted every IME composition and
threw the cursor to the top of the note.
Apply note/query via $: fn(prop) so the statements re-run only when the
prop itself changes.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
SVG source in frontend/public/icon.svg, rendered to 192/512/maskable PNGs
and desktop/build/appicon.png; SVG favicon with PNG fallback; icons added
to the service-worker precache.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>