#137 implemented keep-caret-visible in the app shell over Muya's `selection-change`/`cursorCoords` contract — the same boundary the desktop shell uses. That is correct today and not worth rewriting for zero behavior change.
Trigger: the next Muya selection/viewport modernization — typewriter mode, more follow consumers (find/replace jumps, outline jumps), or a scroll-container refactor. At that point the mechanism belongs in core behind a configurable scroll container, and the app module reduces to configuration.
Done when: the core API has Muya test coverage; the app-side module is deleted or configuration-only; the Android gating (editor focus, collapsed carets, no resume-position conflicts) keeps its behavior under regression tests.
#137 implemented keep-caret-visible in the app shell over Muya's `selection-change`/`cursorCoords` contract — the same boundary the desktop shell uses. That is correct today and not worth rewriting for zero behavior change.
Trigger: the next Muya selection/viewport modernization — typewriter mode, more follow consumers (find/replace jumps, outline jumps), or a scroll-container refactor. At that point the mechanism belongs in core behind a configurable scroll container, and the app module reduces to configuration.
Done when: the core API has Muya test coverage; the app-side module is deleted or configuration-only; the Android gating (editor focus, collapsed carets, no resume-position conflicts) keeps its behavior under regression tests.