Repository navigation
fix(app): restore green Flutter suite on main - #21433
Git-on-my-level wants to merge 1 commit into
Conversation
Category rows measured text without Material's inherited line height, so names and ratings overflowed at larger text sizes. The other three red tests asserted a string, a provider, and a stream event that production already had. Co-authored-by: Cursor <cursoragent@cursor.com>
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
Superseded by #21425, which landed the same four test fixes (with stricter category-height assertions) on main first. Closing without merge. |
|
Hey @Git-on-my-level 👋 Thank you so much for taking the time to contribute to Omi! We truly appreciate you putting in the effort to submit this pull request. After careful review, we've decided not to merge this particular PR. Please don't take this personally — we genuinely try to merge as many contributions as possible, but sometimes we have to make tough calls based on:
Before your next PR, please skim:
If this was declined for direction or taste, maintainers should cite an invariant ID or open a proposed one — ask if that citation is missing. Your contribution is still valuable to us, and we'd love to see you contribute again in the future! If you'd like feedback on how to improve this PR or want to discuss alternative approaches, please don't hesitate to reach out. Thank you for being part of the Omi community! |
What changed and why
The Flutter suite on
main(Mobile App Checks › Dart Analyze & Tests) is red, so any PR that touchesapp/fails. This restores a green suite.test/widgets/settings/ai_app_generator_large_text_test.dart— looks forTry something like, but English l10n isTry something like…. Breaking PR: fix(settings): scale AI app generator suggestion strip height with text size (#19239) #21341 (8c2909e5faf). The assertion was wrong when that test landed; the ellipsis has been inapp_en.arbsince feat(app): mobile UX consistency pass: shared primitives, contract and audit fixes #18436. Fix: expect the ellipsis the page already paints.test/widgets/settings/settings_search_header_stability_test.dart—SettingsDrawerwatchesUsageProviderand the harness does not provide it, so the first frame throwsProviderNotFoundException. Breaking PR: fix(settings): stabilize Settings search header height and alignment (#19241) #21343 (2d77690f5b1). The watch has been in the drawer since feat(app): Plan, Referral and Feedback back on the Settings sheet; one visual-audit tool #18723; the new header test omitted the provider. Fix: provideUsageProviderin the harness.test/widgets/apps_category_section_large_text_test.dart— two failures, both from fix(apps): derive category row and title height from text size (#19238) #21340 (ac1b866d569).find.text('Productivity')matches the section title and each card's category label. And the card column overflows by 13px at text scale 1.3: row height was measured withTextPainteron the rawOmiTypestyle, while painted text inherits Material's line height (~1.43), and the header was measured astitle2instead of thetitle3it paints. Fix: measure the effective style (theme line height included) and the real title, chip, artwork, and action extents so the row grows with the text. Point the test at thetitle3title so the card labels are not ambiguous.test/services/device_service_connection_failure_test.dart— "launch timeout preserves the connection and transport for native background reconnection" staysdisconnectedimmediately afteremitConnected(). Breaking PR: fix(devices): preserve connection and transport on launch timeout for native reconnect (#20777) #21302 (ce3826d2fd1). No later commit changedDeviceConnection's transport listener or this test. The product is right: a launch timeout keeps the connection and transport, and a later connected event updates status. Production transports and the test fake both use an asynchronous broadcast stream, so the listener runs on a later microtask. The failed expect was followed by the debug logdevice connection state changed … connected. Fix: the test waits for that event. Product reconnect behavior is unchanged.Product invariants affected
none
How it was verified
cd app && flutter teston each of the four files: all passed.cd app && flutter test(full suite): 5493 passed, 21 skipped, 0 failed.app/scripts/analyze_ratchet.sh: passed.scripts/pr-preflight --lane local: passed (23 checks).Tests
The four failing files are the regression coverage. The category-section test still fails on a real overflow; the row-height fix is what makes text scale 1.3 and 1.5 lay out.
UI evidence
UI-Evidence: none -- text-scale overflow is asserted by the category-section widget test; no new screen
Failure class (fixes)
Failure-Class: none
🤖 Generated with Claude Code