-
Notifications
You must be signed in to change notification settings - Fork 2.3k
T3 Code Mobile [WIP] #2013
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
juliusmarminge
wants to merge
44
commits into
main
Choose a base branch
from
t3code/mobile-remote-connect
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
T3 Code Mobile [WIP] #2013
Changes from all commits
Commits
Show all changes
44 commits
Select commit
Hold shift + click to select a range
14e56f8
Add T3 Code mobile app and shared remote runtime
juliusmarminge df4223b
Enhance mobile review comments with diff previews
juliusmarminge 4de9770
get native highlighter setup properly
juliusmarminge 43d534a
shiki loading changes
juliusmarminge dcf4d6d
Improve mobile review diff rendering
juliusmarminge 3c78384
feat(mobile): Add terminal powered by libghostty (#2056)
juliusmarminge 3430744
Set mobile config scheme per app variant
juliusmarminge 5858792
Stage remote terminal launches and replay hydrated buffers
juliusmarminge ccac2d8
Fix post-rebase mobile typecheck issues
juliusmarminge f1ae412
move some stuff around
juliusmarminge cca1bac
Refactor remote terminal session state handling
juliusmarminge 2faef72
Extract WebSocket RPC client into shared runtime package
juliusmarminge df425a8
Ignore fast mode updates for Opencode models
juliusmarminge e27b561
terminals
juliusmarminge da56bd5
Add mobile review profiling and syntax highlight debug tools
juliusmarminge 3790816
Add native mobile review diff rendering and static checks
juliusmarminge 7a285d1
Add mobile source control discovery runtime state
juliusmarminge b305a44
Use branded ids in mobile runtime flows
juliusmarminge 9aae833
Fix terminal attach session launch context
juliusmarminge 509a7a8
feat: ios16 support (#2469)
Yash-Singh1 a49c2d1
Fix saved environment runtime test mocks
juliusmarminge eba2803
Add inline review comment selection to mobile diffs
juliusmarminge 6db3098
Add remote review diff plumbing
juliusmarminge 8916eeb
Switch review preview timestamps to DateTimeUtc
juliusmarminge 3c9c14f
rm
juliusmarminge b487b05
use custom react-native-nitro-markdown
Yash-Singh1 594df47
Restrict review diff preview to workspace roots
juliusmarminge d950f45
Refactor review sheet into focused native review hooks
juliusmarminge ab95f11
Fix mobile native static check typecheck
juliusmarminge e793c07
Refactor mobile remote search and review state
juliusmarminge fbd89d3
Handle truncated git review diff previews safely
juliusmarminge 8d65f13
Rename branch state to VCS refs
juliusmarminge 570cc46
Replace git react-query layer with vcsRefManager and source control acti
juliusmarminge c87cc16
Refactor client runtime state refresh handling
juliusmarminge e7b41d7
Rename git state to VCS and add diff preview caching
juliusmarminge 4ac2618
Fix browser VCS status test mocks
juliusmarminge 7f03f4d
Harden remote connect and subscription handling
juliusmarminge 7793bd6
Normalize branch and model selection handling
juliusmarminge 90fea7b
Refactor collection handling for mobile remote connect
juliusmarminge 89672b3
Refactor mobile ordering and catalog assembly
juliusmarminge 2632c92
Refine mobile environment connection flows
juliusmarminge 6b48288
Sync mobile remote branch with main
juliusmarminge 3ee6fbb
Fix CI regressions after branch sync
juliusmarminge 1e929ad
Handle intentional WS closes and heartbeat freshness
juliusmarminge File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,12 @@ | ||
| root = false | ||
|
|
||
| [*.{kt,kts}] | ||
| indent_size = 2 | ||
| ktlint_code_style = android_studio | ||
| ktlint_standard_blank-line-between-when-conditions = disabled | ||
| ktlint_standard_class-signature = disabled | ||
| ktlint_standard_function-signature = disabled | ||
| ktlint_standard_import-ordering = disabled | ||
| ktlint_standard_multiline-expression-wrapping = disabled | ||
| ktlint_standard_trailing-comma-on-call-site = disabled | ||
| ktlint_standard_when-entry-bracing = disabled |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,41 @@ | ||
| # Learn more https://docs.github.com/en/get-started/getting-started-with-git/ignoring-files | ||
|
|
||
| # dependencies | ||
| node_modules/ | ||
|
|
||
| # Expo | ||
| .expo/ | ||
| dist/ | ||
| web-build/ | ||
| expo-env.d.ts | ||
|
|
||
| # Native | ||
| .kotlin/ | ||
| *.orig.* | ||
| *.jks | ||
| *.p8 | ||
| *.p12 | ||
| *.key | ||
| *.mobileprovision | ||
|
|
||
| # Metro | ||
| .metro-health-check* | ||
|
|
||
| # debug | ||
| npm-debug.* | ||
| yarn-debug.* | ||
| yarn-error.* | ||
|
|
||
| # macOS | ||
| .DS_Store | ||
| *.pem | ||
|
|
||
| # local env files | ||
| .env*.local | ||
|
|
||
| # typescript | ||
| *.tsbuildinfo | ||
|
|
||
| # generated native folders | ||
| /ios | ||
| /android |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,58 @@ | ||
| included: | ||
| - ios/T3Code | ||
| - modules/t3-terminal/ios | ||
| - modules/t3-review-diff/ios | ||
|
|
||
| excluded: | ||
| - ios/Pods | ||
| - ios/build | ||
| - modules/t3-terminal/Vendor | ||
|
|
||
| reporter: xcode | ||
|
|
||
| disabled_rules: | ||
| - file_length | ||
| - function_body_length | ||
| - identifier_name | ||
| - line_length | ||
| - lower_acl_than_parent | ||
| - modifier_order | ||
| - trailing_comma | ||
| - type_body_length | ||
|
|
||
| opt_in_rules: | ||
| - array_init | ||
| - closure_end_indentation | ||
| - closure_spacing | ||
| - collection_alignment | ||
| - contains_over_filter_count | ||
| - contains_over_filter_is_empty | ||
| - contains_over_first_not_nil | ||
| - contains_over_range_nil_comparison | ||
| - empty_collection_literal | ||
| - empty_count | ||
| - empty_string | ||
| - enum_case_associated_values_count | ||
| - fallthrough | ||
| - fatal_error_message | ||
| - first_where | ||
| - flatmap_over_map_reduce | ||
| - force_unwrapping | ||
| - implicitly_unwrapped_optional | ||
| - last_where | ||
| - legacy_multiple | ||
| - legacy_random | ||
| - operator_usage_whitespace | ||
| - overridden_super_call | ||
| - prefer_self_type_over_type_of_self | ||
| - private_action | ||
| - private_outlet | ||
| - prohibited_super_call | ||
| - reduce_into | ||
| - redundant_nil_coalescing | ||
| - sorted_first_last | ||
| - static_operator | ||
| - toggle_bool | ||
| - unneeded_parentheses_in_closure_argument | ||
| - vertical_parameter_alignment_on_call | ||
| - yoda_condition |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,3 @@ | ||
| brew "swiftlint" | ||
| brew "ktlint" | ||
| brew "detekt" |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,81 @@ | ||
| # T3 Code Mobile | ||
|
|
||
| > [!WARNING] | ||
| > T3 Code Mobile is currently in development and is not distributed yet. If you want to try it out, you can build it from source. | ||
|
|
||
| ## Quickstart | ||
|
|
||
| > [!NOTE] | ||
| > Uses native modules so using Expo Go is not supported. You need to use the Expo Dev Client. | ||
|
|
||
| This app has three variants: | ||
|
|
||
| - `development`: Expo dev client, installable side-by-side as `T3 Code Dev` | ||
| - `preview`: persistent internal preview build, installable side-by-side as `T3 Code Preview` | ||
| - `production`: store/release build as `T3 Code` | ||
|
|
||
| Run commands from `apps/mobile`. | ||
|
|
||
| ## Development | ||
|
|
||
| Start Metro for the dev client: | ||
|
|
||
| ```bash | ||
| bun run dev:client | ||
| ``` | ||
|
|
||
| Build and run the local iOS dev client: | ||
|
|
||
| ```bash | ||
| bun run ios:dev | ||
| ``` | ||
|
|
||
| Build and run the local iOS preview app: | ||
|
|
||
| ```bash | ||
| bun run ios:preview | ||
| ``` | ||
|
|
||
| Force the review diff highlighter engine: | ||
|
|
||
| ```bash | ||
| EXPO_PUBLIC_REVIEW_HIGHLIGHTER_ENGINE=javascript bun run ios:dev | ||
| ``` | ||
|
|
||
| `javascript` is the default and recommended setting for the review diff screen. Set `EXPO_PUBLIC_REVIEW_HIGHLIGHTER_ENGINE=native` only when you explicitly want to test the native Shiki engine. | ||
|
|
||
| Inspect the resolved Expo config for a variant: | ||
|
|
||
| ```bash | ||
| bun run config:dev | ||
| bun run config:preview | ||
| ``` | ||
|
|
||
| Run static checks for mobile native code: | ||
|
|
||
| ```bash | ||
| node ../../scripts/mobile-native-static-check.ts | ||
| ``` | ||
|
|
||
| The native lint task runs SwiftLint for Swift plus ktlint and detekt for Kotlin. Missing native tools are reported as warnings and skipped locally. CI installs the default toolset from `apps/mobile/Brewfile` before running the native checks. | ||
|
|
||
| ## EAS Builds | ||
|
|
||
| Create a cloud dev-client build: | ||
|
|
||
| ```bash | ||
| bun run eas:ios:dev | ||
| ``` | ||
|
|
||
| Create a persistent preview build: | ||
|
|
||
| ```bash | ||
| bun run eas:ios:preview | ||
| ``` | ||
|
|
||
| Android equivalents: | ||
|
|
||
| ```bash | ||
| bun run eas:android:dev | ||
| bun run eas:android:preview | ||
| ``` |
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
CI lint step silently skips execution with
nodeMedium Severity
The CI step runs
node scripts/mobile-native-static-check.ts, but the script's entry-point guard usesimport.meta.main— a Bun/Deno API that doesn't exist in Node.js (it evaluates toundefined/falsy). This means the lint step will load the module but never callCommand.run, silently passing without executing any checks. The rest of the project usesbunto run scripts; this step likely needsbuninstead ofnode.Additional Locations (1)
scripts/mobile-native-static-check.ts#L201-L208Reviewed by Cursor Bugbot for commit ef1ed88. Configure here.