Skip to content

feat: support ios 16 for swiftui - #8036

Open
Yash-Singh1 wants to merge 2 commits into
t3code/rebuild-mobile-app-swiftfrom
yash/ios-16-swiftui
Open

feat: support ios 16 for swiftui#8036
Yash-Singh1 wants to merge 2 commits into
t3code/rebuild-mobile-app-swiftfrom
yash/ios-16-swiftui

Conversation

@Yash-Singh1

@Yash-Singh1 Yash-Singh1 commented Aug 23, 2026

Copy link
Copy Markdown
Collaborator

Clerk iOS fork is at https://github.com/Yash-Singh1/clerk-ios/tree/backport-clerkkitui-auth-ios16


Note

Medium Risk
Navigation and observation plumbing change across the whole app (split view vs stack, Combine vs Observation). Clerk is pinned to a fork revision, so auth UI on 16.x needs extra verification.

Overview
Lowers the native SwiftUI app (and extensions) from iOS 17 to 16.2, replacing Observation/@Bindable with Combine ObservableObject/@Published and @ObservedObject/@StateObject.

Adds iOS 16 shims in T3Theme (T3ContentUnavailableView, t3OnChange, presentation/list/scroll helpers) and uses them across empty states and change handlers. Compact WorkspaceView falls back to NavigationStack on iOS 16; widgets, markdown link taps, Clerk env injection, and terminal trait updates get version-gated paths.

Pins Clerk to a fork revision that supports iOS 16. Tests wait on $Published publishers instead of withObservationTracking.

Reviewed by Cursor Bugbot for commit bd75a77. Bugbot is set up for automated code reviews on this repo. Configure here.

Note

Add iOS 16 support by migrating to Combine and back-deploying SwiftUI APIs

  • Lowers IPHONEOS_DEPLOYMENT_TARGET from 17.0 to 16.2 and updates the Clerk dependency to a pinned revision from a new repository.
  • Migrates view models and views from Swift Observation (@Observable, @Bindable) to Combine (ObservableObject, @Published, @StateObject, @ObservedObject).
  • Introduces T3ContentUnavailableView and modifiers like .t3OnChange, .t3PresentationBackground, and .t3ScrollBounceBasedOnSize to provide iOS 16 fallbacks for iOS 17 APIs.
  • Reworks WorkspaceView navigation to use NavigationStack with isPresented bindings on iOS 16 compact layouts instead of NavigationSplitView.
  • Risk: The Clerk dependency change in T3Code.xcodeproj/project.pbxproj switches to a new repository at a pinned revision; verify the revision contains the expected symbols and does not introduce regressions.

Macroscope summarized bd75a77.

@coderabbitai

coderabbitai Bot commented Aug 23, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 550652ed-133c-4820-8ace-737328e35f47

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

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.

@github-actions github-actions Bot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:XL 500-999 changed lines (additions + deletions). labels Aug 23, 2026
@github-actions

github-actions Bot commented Aug 23, 2026

Copy link
Copy Markdown
Contributor

Thread transfer impact

✅ Thread transfer remains within every enforced ceiling.

ℹ️ No successful main baseline artifact is available yet. This run establishes the initial measurement.

Provider Metric Main baseline This PR Impact PR ceiling
Codex Total thread wire 12.6 KiB 15.1 KiB
Codex Thread snapshot wire 6.3 KiB 7.3 KiB
Codex Live turn WebSocket wire 6.3 KiB 7.8 KiB
Codex Live turn WebSocket decoded 51.8 KiB 66.4 KiB
Codex Live turn messages 16 21
Claude Total thread wire 12.6 KiB 15.1 KiB
Claude Thread snapshot wire 6.3 KiB 7.3 KiB
Claude Live turn WebSocket wire 6.3 KiB 7.8 KiB
Claude Live turn WebSocket decoded 52.7 KiB 66.4 KiB
Claude Live turn messages 16 21

Baseline: unavailable · PR result: bd75a77 · Source CI: success

Scenario and decoded snapshot size

10 historical turns, 5 command tools per turn, 878.9 KiB retained MCP result per historical turn, and a 1.05 MiB retained result in the measured turn.

  • Codex decoded thread snapshot: 99.9 KiB
  • Claude decoded thread snapshot: 100.6 KiB

Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed.

@cursor cursor Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes using high effort and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit bd75a77. Configure here.

Comment thread apps/swift-ios/Features/Workspace/WorkspaceView.swift
@macroscopeapp

macroscopeapp Bot commented Aug 23, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Not approved

Macroscope's review found this PR not approvable — This PR is a broad iOS 16 compatibility feature with new navigation, observation, UI fallback, widget, and dependency behavior rather than a low-risk maintenance change. The new compact-navigation path has an unresolved transition defect, and the Clerk package is switched to a personal fork, so the runtime and dependency changes need human review.

Notes:

  • No code objects were reviewed. Approvability was decided on eligibility alone.

You can add or adjust custom eligibility rules. Learn more.

@Yash-Singh1
Yash-Singh1 requested a review from t3dotgg August 23, 2026 23:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XL 500-999 changed lines (additions + deletions). vouch:trusted PR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant