You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Hardening candidates surfaced by the "open notes in preview" lock (#200, PR #201) and the RTL note-direction fix (#146, PR #202). Each item is one line of what/why/blast-radius; none blocks the release.
Add an automated test for "a just-created note opens in edit when preview-open is on" — what: the FAB creates the note first and opens it with a real id, so the edit-mode guard is content.isNotEmpty() and is device-verified only; why: dropping that guard silently breaks "new notes still open for editing"; impact: extract the open-mode decision into a pure function + unit test, or an EditorScreen load-effect test.
Broaden coverage of the long-press lock gesture — what: the Initial-pass pointerInput that fires the lock and consumes the release is covered by one Robolectric case + manual device; why: coexisting with IconButton's tap is subtle and could regress across Android versions or with TalkBack; impact: editor top bar; add tap-after-longpress / cancel / a11y cases (and ideally an instrumented gesture test).
ViewModeLockedTint is a hardcoded amber outside the color scheme — what: the locked-state tint is a fixed Color(0xFFF57C00); why: it is not contrast-checked against Material You / dynamic-color backgrounds or verified in both themes; impact: editor top bar visuals; consider a theme token or a contrast assertion.
No Roborazzi golden for the locked (amber) view-toggle state — what: only the unlocked top bar is snapshotted; why: the orange indicator could break unnoticed; impact: add a locked-state golden (needs a Linux record run).
settings.first() on the note-load path has no timeout/fallback — what: the editor suspends on the first DataStore emission before showing an existing note; why: a stalled DataStore would hang note-open with no fallback; impact: editor load effect; low likelihood, but a bounded read or default-on-timeout is safer.
No RTL regression golden for note content (Doesn't it support right to left languages? #146) — what: the TextDirection.Content fix is device-verified only; why: a future typography refactor could silently drop it; impact: add a Roborazzi golden with an RTL sample (needs a Linux record run).
RTL editing edge cases unverified (Doesn't it support right to left languages? #146) — what: cursor placement, selection, and mixed LTR/RTL lines in the editor's BasicTextField were not exercised; why: content-direction fixes alignment but bidi editing can still surprise; impact: a broader RTL QA pass.
App UI strings still fall back to English in RTL system locales — what: with the layout now mirroring and content laid out RTL, menu/label strings remain English (no ar/he/fa translations); why: a known gap called out in Doesn't it support right to left languages? #146; impact: a separate i18n effort, not layout — noted here so it is tracked.
Hardening candidates surfaced by the "open notes in preview" lock (#200, PR #201) and the RTL note-direction fix (#146, PR #202). Each item is one line of what/why/blast-radius; none blocks the release.
content.isNotEmpty()and is device-verified only; why: dropping that guard silently breaks "new notes still open for editing"; impact: extract the open-mode decision into a pure function + unit test, or an EditorScreen load-effect test.pointerInputthat fires the lock and consumes the release is covered by one Robolectric case + manual device; why: coexisting with IconButton's tap is subtle and could regress across Android versions or with TalkBack; impact: editor top bar; add tap-after-longpress / cancel / a11y cases (and ideally an instrumented gesture test).ViewModeLockedTintis a hardcoded amber outside the color scheme — what: the locked-state tint is a fixedColor(0xFFF57C00); why: it is not contrast-checked against Material You / dynamic-color backgrounds or verified in both themes; impact: editor top bar visuals; consider a theme token or a contrast assertion.settings.first()on the note-load path has no timeout/fallback — what: the editor suspends on the first DataStore emission before showing an existing note; why: a stalled DataStore would hang note-open with no fallback; impact: editor load effect; low likelihood, but a bounded read or default-on-timeout is safer.TextDirection.Contentfix is device-verified only; why: a future typography refactor could silently drop it; impact: add a Roborazzi golden with an RTL sample (needs a Linux record run).BasicTextFieldwere not exercised; why: content-direction fixes alignment but bidi editing can still surprise; impact: a broader RTL QA pass.