Skip to content

Fix select-mode header overlap/gap and Xcode 27 build crash - #263

Merged
taylorcox75 merged 1 commit into
release/v3.8.45from
bugfix/select-mode-header-and-xcode27
Sep 21, 2026
Merged

taylorcox75 merged 1 commit into
release/v3.8.45from
bugfix/select-mode-header-and-xcode27

Conversation

@taylorcox75

Copy link
Copy Markdown
Owner

Summary

  • Torrents screen select mode: bulk-actions bar no longer covers the last card, the gap above the first card after scrolling up is gone, and the header (Select All / Close) now stays pinned instead of scrolling away or being scrolled over — it becomes a normal in-flow sibling instead of an absolute overlay while selecting.
  • Connectivity log viewer: fixed the header overflowing on narrower screens (Copy button is now icon-only, matching the existing debug-info copy convention).
  • Build: Xcode 27 / iOS 27 SDK hard-fails app launch unless the native project adopts the UIScene life cycle. Added expo-build-properties with ios.enableSceneSupport, and updated withNativeTorrentFileCopy's AppDelegate template match for the resulting shape change. Added npm run simulator.
  • Added the 3.8.45 changelog entry.

Known follow-up

The cold-launch .torrent-copy race-condition fix is structurally weaker under scene lifecycle (documented in plugins/withNativeTorrentFileCopy.js) — factory.startReactNative is no longer called from the patched method, so there's no longer a direct path to feed the copied URL into React's initial launch options. Needs on-device verification: cold-launch by tapping a .torrent in Files while the app isn't running.

Test plan

  • npx tsc --noEmit: exit 0
  • npm test: 80/80 suites, 1160/1160 tests passing
  • npm run lint: 0 errors, 38 warnings (baseline 37 + 1 pre-existing pattern already present elsewhere)
  • Not run in a simulator/device by me — needs the owner's visual/on-device check, especially the select-mode header behavior and the cold-launch .torrent open path noted above.

🤖 Generated with Claude Code

Torrents screen (select mode):
- Bulk actions bar no longer covers the last card (measured height fed
  back as list bottom padding instead of a fixed value)
- Fixed the large gap above the first card after scrolling up, caused
  by a hardcoded header paddingTop sized for the full normal-mode
  header rather than select mode's shorter one (now measured)
- Header (Select All / Close) no longer scrolls away or gets scrolled
  over by cards during selection — it's pinned as a normal in-flow
  sibling instead of an absolute overlay while selectMode is active,
  and FlatList now declares flex: 1 explicitly rather than relying on
  being the sole flex participant

Connectivity log viewer:
- Fixed the header overflowing/clipping the Clear button on narrower
  screens by making the Copy button icon-only (matching the existing
  debug-info copy button convention) and letting the title truncate

Build:
- Xcode 27 / iOS 27 SDK hard-fails app launch unless the generated
  native project adopts the UIScene life cycle. Added expo-build-properties
  with ios.enableSceneSupport, and updated withNativeTorrentFileCopy's
  AppDelegate.swift template match for the resulting shape change (the
  cold-launch .torrent-copy path is weaker under scene lifecycle -
  documented in the plugin, needs on-device verification)
- Added npm run simulator, targeting a specific iOS 26.5 sim device

Changelog: added the 3.8.45 entry.
@taylorcox75
taylorcox75 merged commit b9a8144 into release/v3.8.45 Sep 21, 2026
1 check passed
@taylorcox75
taylorcox75 deleted the bugfix/select-mode-header-and-xcode27 branch September 21, 2026 02:05
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