apps/mobile/.swiftlint.yml | 1 + apps/mobile/app.config.ts | 15 +- apps/mobile/global.css | 36 +- apps/mobile/index.ts | 11 +- apps/mobile/modules/t3-composer-editor/ios/T3ComposerEditorModule.swift | 1 + apps/mobile/modules/t3-composer-editor/ios/T3ComposerEditorView.swift | 22 + apps/mobile/modules/t3-markdown-text/src/NativeMarkdownBlock.ios.tsx | 19 +- apps/mobile/modules/t3-markdown-text/src/NativeMarkdownSelectableText.ios.tsx | 25 +- apps/mobile/modules/t3-markdown-text/src/SelectableMarkdownText.types.ts | 1 + apps/mobile/modules/t3-native-controls/expo-module.config.json | 6 + apps/mobile/modules/t3-native-controls/ios/T3HeaderButtonView.swift | 62 ++ apps/mobile/modules/t3-native-controls/ios/T3KeyboardCommandsModule.swift | 131 +++ apps/mobile/modules/t3-native-controls/ios/T3NativeControls.podspec | 19 + apps/mobile/modules/t3-native-controls/ios/T3NativeControlsModule.swift | 18 + apps/mobile/modules/t3-review-diff/ios/T3ReviewDiffModule.swift | 53 +- apps/mobile/modules/t3-review-diff/ios/T3ReviewDiffView.swift | 330 +++++-- apps/mobile/modules/t3-terminal/android/src/main/java/expo/modules/t3terminal/T3TerminalModule.kt | 10 + apps/mobile/modules/t3-terminal/android/src/main/java/expo/modules/t3terminal/T3TerminalView.kt | 21 +- apps/mobile/modules/t3-terminal/ios/T3TerminalModule.swift | 10 + apps/mobile/modules/t3-terminal/ios/T3TerminalView.swift | 128 +++ apps/mobile/package.json | 43 +- apps/mobile/plugins/withIosCocoaPodsUuidCache.cjs | 52 ++ apps/mobile/plugins/withIosSceneLifecycle.cjs | 99 ++ apps/mobile/src/App.tsx | 72 ++ apps/mobile/src/Stack.tsx | 463 ++++++++++ apps/mobile/src/app/+not-found.tsx | 43 - apps/mobile/src/app/_layout.tsx | 149 --- apps/mobile/src/app/connections/_layout.tsx | 29 - apps/mobile/src/app/connections/index.tsx | 97 -- apps/mobile/src/app/connections/new.tsx | 244 ----- apps/mobile/src/app/index.tsx | 120 --- apps/mobile/src/app/new/_layout.tsx | 50 -- apps/mobile/src/app/new/add-project/destination.tsx | 5 - apps/mobile/src/app/new/add-project/index.tsx | 5 - apps/mobile/src/app/new/add-project/local.tsx | 5 - apps/mobile/src/app/new/add-project/repository.tsx | 23 - apps/mobile/src/app/new/draft.tsx | 29 - apps/mobile/src/app/new/index.tsx | 218 ----- apps/mobile/src/app/settings/_layout.tsx | 62 -- apps/mobile/src/app/settings/archive.tsx | 3 - apps/mobile/src/app/settings/auth.tsx | 33 - apps/mobile/src/app/settings/environment-new.tsx | 1 - apps/mobile/src/app/settings/environments.tsx | 452 ---------- apps/mobile/src/app/settings/index.tsx | 515 ----------- apps/mobile/src/app/settings/waitlist.tsx | 55 -- apps/mobile/src/app/threads/[environmentId]/[threadId]/_layout.tsx | 107 --- apps/mobile/src/app/threads/[environmentId]/[threadId]/files/[...path].tsx | 5 - apps/mobile/src/app/threads/[environmentId]/[threadId]/files/index.tsx | 5 - apps/mobile/src/app/threads/[environmentId]/[threadId]/git-confirm.tsx | 5 - apps/mobile/src/app/threads/[environmentId]/[threadId]/git/_layout.tsx | 58 -- apps/mobile/src/app/threads/[environmentId]/[threadId]/git/branches.tsx | 5 - apps/mobile/src/app/threads/[environmentId]/[threadId]/git/commit.tsx | 5 - apps/mobile/src/app/threads/[environmentId]/[threadId]/git/index.tsx | 5 - apps/mobile/src/app/threads/[environmentId]/[threadId]/git/review.tsx | 18 - apps/mobile/src/app/threads/[environmentId]/[threadId]/index.tsx | 5 - apps/mobile/src/app/threads/[environmentId]/[threadId]/review-comment.tsx | 5 - apps/mobile/src/app/threads/[environmentId]/[threadId]/review.tsx | 10 - apps/mobile/src/app/threads/[environmentId]/[threadId]/terminal.tsx | 5 - apps/mobile/src/components/AppText.tsx | 5 +- apps/mobile/src/components/ControlPill.tsx | 2 +- apps/mobile/src/components/EmptyState.tsx | 24 +- apps/mobile/src/components/ErrorBanner.tsx | 2 +- apps/mobile/src/features/agent-awareness/notificationNavigation.ts | 8 +- apps/mobile/src/features/archive/ArchivedThreadsRouteScreen.tsx | 2 +- apps/mobile/src/features/archive/ArchivedThreadsScreen.tsx | 606 ++++++++----- apps/mobile/src/features/cloud/CloudWaitlistEnrollment.tsx | 54 +- apps/mobile/src/features/cloud/dpop.ts | 50 +- apps/mobile/src/features/connection/ConnectionEnvironmentRow.tsx | 8 +- apps/mobile/src/features/connection/ConnectionsNewRouteScreen.tsx | 256 ++++++ apps/mobile/src/features/connection/ConnectionsRouteScreen.tsx | 93 ++ apps/mobile/src/features/connection/EnvironmentConnectionNotice.tsx | 4 +- apps/mobile/src/features/diffs/nativeReviewDiffSurface.test.ts | 24 +- apps/mobile/src/features/diffs/nativeReviewDiffSurface.ts | 139 ++- apps/mobile/src/features/files/FileMarkdownPreview.tsx | 58 +- apps/mobile/src/features/files/FileTreeBrowser.tsx | 204 +++-- apps/mobile/src/features/files/SourceFileSurface.tsx | 163 ++-- apps/mobile/src/features/files/ThreadFilesRouteScreen.tsx | 635 ++++++------- apps/mobile/src/features/files/WorkspaceFileWebPreview.tsx | 2 +- apps/mobile/src/features/files/nativeSourceFileAdapter.ts | 40 +- apps/mobile/src/features/files/preload-workspace-file.ts | 74 ++ apps/mobile/src/features/files/source-file-document.test.ts | 16 + apps/mobile/src/features/files/source-file-document.ts | 54 ++ apps/mobile/src/features/files/sourceHighlightingState.test.ts | 2 +- apps/mobile/src/features/files/thread-file-navigator-pane.tsx | 175 ++++ apps/mobile/src/features/home/HomeHeader.tsx | 372 ++++---- apps/mobile/src/features/home/HomeRouteScreen.tsx | 132 +++ apps/mobile/src/features/home/HomeScreen.tsx | 694 +++++--------- apps/mobile/src/features/home/WorkspaceConnectionStatus.test.ts | 70 ++ apps/mobile/src/features/home/WorkspaceConnectionStatus.tsx | 53 ++ apps/mobile/src/features/home/home-list-filter-menu.ts | 120 +++ apps/mobile/src/features/home/home-list-options.test.ts | 31 + apps/mobile/src/features/home/home-list-options.ts | 144 +++ apps/mobile/src/features/home/homeListItems.test.ts | 192 ++++ apps/mobile/src/features/home/homeListItems.ts | 158 ++++ apps/mobile/src/features/home/thread-swipe-actions.tsx | 256 +++++- apps/mobile/src/features/home/workspace-connection-status.ts | 22 + apps/mobile/src/features/keyboard/HardwareKeyboardCommandProvider.tsx | 73 ++ apps/mobile/src/features/keyboard/hardwareKeyboardCommands.test.ts | 28 + apps/mobile/src/features/keyboard/hardwareKeyboardCommands.ts | 78 ++ apps/mobile/src/features/layout/AdaptiveWorkspaceLayout.tsx | 507 +++++++++++ apps/mobile/src/features/layout/WorkspaceEmptyDetail.tsx | 30 + apps/mobile/src/features/layout/native-glass-header-items.ts | 33 + apps/mobile/src/features/layout/native-mail-search-toolbar.ts | 25 + apps/mobile/src/features/layout/workspace-inspector-pane.tsx | 145 +++ apps/mobile/src/features/layout/workspace-pane-animation.ts | 16 + apps/mobile/src/features/layout/workspace-pane-divider.tsx | 116 +++ apps/mobile/src/features/layout/workspace-sidebar-toolbar.tsx | 31 + apps/mobile/src/features/projects/AddProjectDestinationRoute.tsx | 15 + apps/mobile/src/features/projects/AddProjectLocalRoute.tsx | 12 + apps/mobile/src/features/projects/AddProjectRepositoryRoute.tsx | 31 + apps/mobile/src/features/projects/AddProjectScreen.tsx | 114 ++- apps/mobile/src/features/projects/AddProjectSourceRoute.tsx | 5 + apps/mobile/src/features/review/ReviewCommentComposerSheet.tsx | 37 +- apps/mobile/src/features/review/ReviewSheet.tsx | 660 ++++++++++---- apps/mobile/src/features/review/nativeReviewDiffAdapter.test.ts | 56 ++ apps/mobile/src/features/review/nativeReviewDiffAdapter.ts | 134 ++- apps/mobile/src/features/review/review-section-menu.test.ts | 40 + apps/mobile/src/features/review/review-section-menu.ts | 21 + apps/mobile/src/features/review/reviewDiffBridgeKeys.test.ts | 27 + apps/mobile/src/features/review/reviewDiffBridgeKeys.ts | 35 + apps/mobile/src/features/review/reviewDiffRendering.tsx | 25 +- apps/mobile/src/features/review/reviewPaneSelection.test.ts | 35 + apps/mobile/src/features/review/reviewPaneSelection.ts | 16 + apps/mobile/src/features/review/useNativeReviewDiffBridge.test.ts | 27 - apps/mobile/src/features/review/useNativeReviewDiffBridge.ts | 42 +- apps/mobile/src/features/review/useReviewCommentSelectionController.ts | 13 +- apps/mobile/src/features/review/useReviewDiffData.ts | 20 +- apps/mobile/src/features/review/useReviewDiffPrewarming.ts | 101 +++ apps/mobile/src/features/settings/SettingsAppearanceRouteScreen.tsx | 30 + apps/mobile/src/features/settings/SettingsAuthRouteScreen.tsx | 39 + apps/mobile/src/features/settings/SettingsEnvironmentsRouteScreen.tsx | 448 ++++++++++ apps/mobile/src/features/settings/SettingsRouteScreen.tsx | 448 ++++++++++ apps/mobile/src/features/settings/SettingsWaitlistRouteScreen.tsx | 60 ++ apps/mobile/src/features/settings/appearance/AppearancePreferencesProvider.tsx | 158 ++++ apps/mobile/src/features/settings/appearance/components/AppearancePreviews.tsx | 177 ++++ apps/mobile/src/features/settings/appearance/components/FontSizeSliderRow.tsx | 214 +++++ apps/mobile/src/features/settings/appearance/sections/CodeAppearanceSection.tsx | 64 ++ apps/mobile/src/features/settings/appearance/sections/TerminalAppearanceSection.tsx | 54 ++ apps/mobile/src/features/settings/appearance/sections/TextAppearanceSection.tsx | 34 + apps/mobile/src/features/settings/appearance/useAppearanceCodeSurface.ts | 34 + apps/mobile/src/features/settings/appearance/useScaledTextRole.ts | 36 + apps/mobile/src/features/settings/components/SettingsRow.tsx | 76 ++ apps/mobile/src/features/settings/components/SettingsSection.tsx | 18 + apps/mobile/src/features/settings/components/SettingsSwitchRow.tsx | 37 + apps/mobile/src/features/settings/components/settings-sheet-targets.ts | 1 + apps/mobile/src/features/terminal/NativeTerminalSurface.tsx | 61 +- apps/mobile/src/features/terminal/ThreadTerminalRouteScreen.tsx | 263 ++---- apps/mobile/src/features/terminal/nativeTerminalModule.ts | 22 +- apps/mobile/src/features/terminal/terminalPreferences.ts | 2 +- apps/mobile/src/features/threads/ComposerCommandPopover.tsx | 4 +- apps/mobile/src/features/threads/NewTaskDraftRouteScreen.tsx | 32 + apps/mobile/src/features/threads/NewTaskDraftScreen.tsx | 26 +- apps/mobile/src/features/threads/NewTaskRouteScreen.tsx | 227 +++++ apps/mobile/src/features/threads/PendingApprovalCard.tsx | 2 +- apps/mobile/src/features/threads/PendingUserInputCard.tsx | 2 +- apps/mobile/src/features/threads/ThreadComposer.tsx | 68 +- apps/mobile/src/features/threads/ThreadDetailScreen.tsx | 93 +- apps/mobile/src/features/threads/ThreadFeed.tsx | 283 +++--- apps/mobile/src/features/threads/ThreadGitControls.tsx | 504 ++++++++--- apps/mobile/src/features/threads/ThreadNavigationDrawer.tsx | 41 +- apps/mobile/src/features/threads/ThreadNavigationSidebar.tsx | 794 ++++++++++++++++ apps/mobile/src/features/threads/ThreadRouteScreen.tsx | 594 +++++++++--- apps/mobile/src/features/threads/git/GitBranchesSheet.tsx | 17 +- apps/mobile/src/features/threads/git/GitCommitSheet.tsx | 25 +- apps/mobile/src/features/threads/git/GitConfirmSheet.tsx | 45 +- apps/mobile/src/features/threads/git/GitOverviewSheet.tsx | 343 +++++-- apps/mobile/src/features/threads/git/gitSheetComponents.tsx | 2 +- apps/mobile/src/features/threads/sidebar-filter-button.tsx | 55 ++ apps/mobile/src/features/threads/sidebar-header-actions.tsx | 74 ++ apps/mobile/src/features/threads/sidebar-native-header-items.ts | 63 ++ apps/mobile/src/features/threads/sidebar-navigation-shell.tsx | 72 ++ apps/mobile/src/features/threads/thread-inspector-content-stack.tsx | 101 +++ apps/mobile/src/features/threads/thread-list-items.tsx | 444 +++++++++ apps/mobile/src/features/threads/thread-navigation-groups.test.ts | 111 +++ apps/mobile/src/features/threads/thread-navigation-groups.ts | 64 ++ apps/mobile/src/features/threads/thread-work-log.tsx | 7 +- apps/mobile/src/features/threads/threadContentPresentation.ts | 8 +- apps/mobile/src/features/threads/threadPresentation.ts | 121 ++- apps/mobile/src/lib/adaptive-navigation.test.ts | 68 ++ apps/mobile/src/lib/adaptive-navigation.ts | 35 + apps/mobile/src/lib/appearancePreferences.test.ts | 142 +++ apps/mobile/src/lib/appearancePreferences.ts | 245 +++++ apps/mobile/src/lib/layout.test.ts | 343 +++++++ apps/mobile/src/lib/layout.ts | 230 ++++- apps/mobile/src/lib/routes.test.ts | 45 - apps/mobile/src/lib/routes.ts | 134 --- apps/mobile/src/lib/storage.ts | 29 +- apps/mobile/src/lib/typography.test.ts | 11 +- apps/mobile/src/lib/typography.ts | 21 +- apps/mobile/src/native/StackHeader.tsx | 359 ++++++++ apps/mobile/src/native/T3ComposerEditor.ios.tsx | 10 +- apps/mobile/src/native/T3ComposerEditor.tsx | 5 +- apps/mobile/src/native/T3ComposerEditor.types.ts | 2 + apps/mobile/src/native/T3KeyboardCommands.ios.tsx | 31 + apps/mobile/src/native/T3KeyboardCommands.tsx | 13 + apps/mobile/src/native/scrollEdgeEffects.test.ts | 29 + apps/mobile/src/native/scrollEdgeEffects.ts | 37 + apps/mobile/src/state/use-thread-pr.ts | 67 ++ apps/mobile/src/state/use-thread-selection.ts | 121 ++- experiments/messages-glass-lab/MessagesGlassLab.xcodeproj/project.pbxproj | 285 ++++++ experiments/messages-glass-lab/MessagesGlassLab/ContentView.swift | 386 ++++++++ experiments/messages-glass-lab/MessagesGlassLab/MessagesGlassLabApp.swift | 10 + packages/client-runtime/src/state/threadDetail.ts | 2 +- packages/client-runtime/src/state/threadState.ts | 16 + packages/client-runtime/src/state/threads.ts | 20 +- packages/shared/src/dpop.ts | 31 +- patches/@expo%2Fmetro-config@56.0.13.patch | 93 -- patches/@expo%2Fmetro-config@56.0.14.patch | 93 ++ patches/@react-native-menu__menu@2.0.0.patch | 46 + patches/@react-navigation%2Fnative-stack@7.17.6.patch | 100 +++ patches/expo-modules-jsi@56.0.10.patch | 21 + patches/react-native-gesture-handler@2.31.2.patch | 124 +++ patches/react-native-screens@4.25.2.patch | 1542 ++++++++++++++++++++++++++++++++ pnpm-lock.yaml | 1244 +++++++++++++++----------- pnpm-workspace.yaml | 38 +- 215 files changed, 18034 insertions(+), 6008 deletions(-)