Skip to content

fix(mobile): keep the notification switch from flipping back after you enable it - #31690

Merged
nwparker merged 1 commit into
stablyai:mainfrom
nwparker:nwparker/mobile-monkey-notification-refresh
Oct 21, 2026
Merged

nwparker merged 1 commit into
stablyai:mainfrom
nwparker:nwparker/mobile-monkey-notification-refresh

Conversation

@nwparker

@nwparker nwparker commented Oct 21, 2026 •

Copy link
Copy Markdown
Contributor

ELI5

You enable notifications, but an older settings check finishes afterward and makes the switch look off again. This fix keeps that older result from undoing the change you just made.

What Changed

  • Ignore older settings results after you change the notification switch.
  • Keep two quick taps from starting the same permission change twice.
  • Check that a delayed refresh cannot reverse a newer notification change.

Why

The switch should reflect your latest action, even when permission checks and settings reads take time.

Linked Issue

Maintainer-discovered regression. Bounded GitHub symptom and exact-file searches found no exact duplicate. No matching issue or exact PR found in bounded symptom/file searches.

Visual Proof

Captured with the visual-proof skill. Before uses base 15246eb4a45; after uses this PR's standalone commit 764423a25b6. The scenario passed asserted capture runs 3 times per version before representative screenshots were selected. The captures were visually inspected.

Evidence scope: Actual production React Native Web screen, exact base/fixed standalone source; deferred storage/RPC adapters. Native safe-area, icons, lifecycle and drawer animation simplified; no native simulator claim.

notification-refresh-run1.png
notification-refresh-run1.png

The hook/transport boundary harnesses are labeled in the captures. These are browser evidence where stated; they do not establish native keyboard, gesture, permission dialog, safe-area or real-network behavior. Full code regressions cover additional cases described above.

Testing

  • Regression tests added or updated.
  • Full native device verification for every race.
ORCA_BACKGROUND_LAUNCH=1 pnpm --dir mobile test src/settings/notification-settings-refresh-order.test.tsx

The combined mobile change set passed 410 suites / 3,626 tests, production typecheck, the tests-typecheck ratchet, formatting, the changed-code quality gate, and the mobile-web build/asset verifier on macOS. These aggregate results are not a claim that the entire suite was rerun on this isolated branch. PR CI validates the branch against current main.

Review

Merge risk: Low. A small change to the existing notification switch and its refresh checks.

Previously reviewed by a separate agent team; reported issues were fixed and checked again.

Agent skill upstream boundary

  • Not applicable; this change copies no upstream skill-installer implementation.

Notes

Existing RPC methods and wire compatibility are retained. Review considered desktop host changes, remote execution authority, folder workspaces, and native/web consumers. Native simulator follow-up was limited after the three owned simulators became stuck shutting down; no unrelated simulator/process was reset.

Checklist

  • Focused change with a root-cause explanation.
  • Automated regression coverage and independent review.
  • Before/after proof attached with exact evidence scope.
  • Cross-platform and remote compatibility considered.
  • Required PR CI checks have passed.

A focus read started before Enable can finish afterward and switch notifications back off. Fence reads against permission and preference mutations.
@nwparker
nwparker marked this pull request as ready for review October 21, 2026 23:34
@coderabbitai

coderabbitai Bot commented Oct 21, 2026

Copy link
Copy Markdown
Contributor

Warning

Review limit reached

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Next included review available in 4 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used all 10 included reviews currently available.

Learn how review limits work.

Review configuration:

⚙️ Run configuration
  • Configuration used: Repository UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 2823f306-bf09-40fc-ab66-5bdc07838cca
📥 Commits

Reviewing files that changed from the base of the PR and between 10d4104 and 764423a.

📒 Files selected for processing: 2
  • mobile/src/settings/notification-settings-refresh-order.test.tsx
  • mobile/src/settings/notification-settings-screen.tsx
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@nwparker
nwparker merged commit 74d11d9 into stablyai:main Oct 21, 2026
43 checks passed
@nwparker nwparker changed the title fix(mobile): preserve notification changes across delayed focus reads fix(mobile): keep the notification switch from flipping back after you enable it Oct 22, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant