Skip to content

The current route remains mounted and laid out when Snag returns from the background and rechecks beta admission for the same account. Navigation, local inputs and scroll state stay in place. Interaction resumes only after backend admission; a network error offers retry/sign-in over the frozen screen. Refused admission or an account change still removes protected navigation.

The preceding mobile PR #1007, already merged into staging at 717a9b9, moved the bottom navigation gutter from the card/sealed list viewport into scrollable content. This allows rows to move behind the translucent floating bar instead of ending above an empty lower band. The shared card-series screen also covers Collection > Blocks > series. Added layout tests use iPhone-style safe-area insets (59 top, 34 bottom) in both themes.

Validation and delivery ​

  • Mobile PR #1009 is merged into staging. It has not been delivered to TestFlight or installed in the local emulator; the native inspection below used staging before #1009.
  • ESLint and TypeScript pass. Jest: 350 suites and 3424 tests pass; 2 suites and 11 tests remain skipped. Focused resume/layout coverage: 9 tests pass.
  • The foreground regression was observed failing before the production fix: the existing screen container switched to display: none while the status request was pending. Additional error/refusal coverage was added afterward.
  • .maestro/foreground-resume.yaml describes a non-destructive smoke test with before/after screenshots. Maestro is unavailable on the connected hosts, so this flow has not been executed.
  • Android staging was rebuilt with an explicit fresh Metro bundle before Gradle. The native Nuit Noire grid was visually checked: cards extend behind the bottom navigation. Reinstallation used an in-place update, with no data clear, logout or collection mutation.
  • No iPhone or macOS simulator is accessible here. The layout assertions and Android inspection do not establish iPhone rendering or app-switcher preview behavior. Verify those on the next iOS build containing the merged changes.

Device acceptance ​

Open a card series from Explorer, a sealed series, then a series from Collection

Blocks. In each case, scroll and confirm rows continue behind the navigation surface and the last row can be brought fully above it. Check light/dark themes. Background the app while scrolled or with a search entered, then return: the route, scroll position and input should remain. Repeat with a slow/offline connection; retry must remain available without resetting that screen.

This concerns background/foreground transitions while the app process survives. It does not add restoration after an OS process kill or force-quit, and does not alter the intentional reset when the user changes tabs.