Skip to content

fix: stabilize Home tab refresh and navigation - #80

Merged
infinityf4p merged 1 commit into
mainfrom
codex/fix-home-refresh-reentrancy
Sep 18, 2026
Merged

infinityf4p merged 1 commit into
mainfrom
codex/fix-home-refresh-reentrancy

Conversation

@infinityf4p

@infinityf4p infinityf4p commented Sep 18, 2026 •

Copy link
Copy Markdown
Owner

Repeatedly tapping Home after scrolling could hang the feed on iOS 26 when an animated return to the top overlapped refresh updates. Reselecting Home from a thread or search could also refresh unexpectedly after UIKit changed the navigation stack.

Home now handles reselection before UIKit changes navigation: the first tap closes detail/search, and a subsequent tap refreshes the feed. Returning to the top uses a separate nonanimated transaction, while the refresh indicator keeps its normal animation. Repeated taps during an active refresh still return to the top and reuse the existing request.

Validation:

  • 830 unit tests passed; 6 skipped.
  • 19 UI regression runs passed across iOS 16.4, iOS 26.5, and iPadOS 18.3.1, including five consecutive refresh cycles with normal animations, in-flight refresh deduplication, detail/search return, pagination, pull-to-refresh, and ordinary tab switching.
  • Added the four new Home refresh UI regressions to CI.
  • git diff --check passed.

Remote ci-ok passed, including the Release build. The first CI UI pass had one query timeout while swiping during the in-flight refresh test; the built-in retry passed all 13 tests. Follow-up checks on the same commit passed 10 consecutive in-flight refresh runs and the complete 13-test CI UI sequence on a newly created iOS 26.5 simulator, both without retries. The original CI timeout has no app stack trace in the available log, so its cause remains unconfirmed.

@infinityf4p
infinityf4p merged commit 6bf728b into main Sep 18, 2026
1 check passed
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