-
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
54
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 43 commits
Commits
Show all changes
54 commits
Select commit
Hold shift + click to select a range
493fbfa
Add T3 Code mobile app and shared remote runtime
juliusmarminge 9bebd28
Enhance mobile review comments with diff previews
juliusmarminge a22cb05
get native highlighter setup properly
juliusmarminge 12fc9b7
shiki loading changes
juliusmarminge d686613
Improve mobile review diff rendering
juliusmarminge da6ea88
feat(mobile): Add terminal powered by libghostty (#2056)
juliusmarminge 97263c5
Set mobile config scheme per app variant
juliusmarminge 034a8bc
Stage remote terminal launches and replay hydrated buffers
juliusmarminge 932ec19
Fix post-rebase mobile typecheck issues
juliusmarminge dc994a1
move some stuff around
juliusmarminge 3fe96f1
Refactor remote terminal session state handling
juliusmarminge 1985d2c
Extract WebSocket RPC client into shared runtime package
juliusmarminge cace578
Ignore fast mode updates for Opencode models
juliusmarminge 4e38d93
terminals
juliusmarminge 664768b
Merge origin/main into t3code/mobile-remote-connect
juliusmarminge 95038c1
Add mobile review profiling and syntax highlight debug tools
juliusmarminge 9b9fe0d
Add native mobile review diff rendering and static checks
juliusmarminge 0385713
Merge origin/main into mobile remote connect
juliusmarminge 3aaa338
Merge origin/main into mobile remote connect
juliusmarminge 96897ab
Add mobile source control discovery runtime state
juliusmarminge b4615a8
Use branded ids in mobile runtime flows
juliusmarminge 93ec45e
Fix terminal attach session launch context
juliusmarminge 057d3f2
feat: ios16 support (#2469)
Yash-Singh1 f239d3a
Merge origin/main into mobile remote connect
juliusmarminge 5225844
Fix saved environment runtime test mocks
juliusmarminge 7d20cb9
Add inline review comment selection to mobile diffs
juliusmarminge 0c1ccda
Merge origin/main into mobile remote connect
juliusmarminge 9236802
Add remote review diff plumbing
juliusmarminge f73b8bc
Switch review preview timestamps to DateTimeUtc
juliusmarminge d2c7dbf
rm
juliusmarminge ef1ed88
Merge origin/main into t3code/mobile-remote-connect
juliusmarminge f29a9ff
use custom react-native-nitro-markdown
Yash-Singh1 4b6bae5
Restrict review diff preview to workspace roots
juliusmarminge 87f7434
Refactor review sheet into focused native review hooks
juliusmarminge b357476
Merge origin/main into t3code/mobile-remote-connect
juliusmarminge 7791f47
Merge latest origin/main into t3code/mobile-remote-connect
juliusmarminge 040c806
Merge latest origin/main into t3code/mobile-remote-connect
juliusmarminge 7bea682
Merge latest origin/main into t3code/mobile-remote-connect
juliusmarminge fd93d7f
Fix mobile native static check typecheck
juliusmarminge 89fbeb2
Merge origin/main into mobile remote connect
juliusmarminge 665c0c6
Refactor mobile remote search and review state
juliusmarminge 54964f5
Handle truncated git review diff previews safely
juliusmarminge c0a2f00
Rename branch state to VCS refs
juliusmarminge 9ef8d75
Replace git react-query layer with vcsRefManager and source control acti
juliusmarminge 01596f5
Refactor client runtime state refresh handling
juliusmarminge 4ec9647
Rename git state to VCS and add diff preview caching
juliusmarminge 2cffe67
Merge main into mobile remote connect
juliusmarminge 547c0e5
Fix browser VCS status test mocks
juliusmarminge 168ec8a
Harden remote connect and subscription handling
juliusmarminge c0807d4
Merge origin/main into mobile remote connect
juliusmarminge c394372
Normalize branch and model selection handling
juliusmarminge 157d7c6
Refactor collection handling for mobile remote connect
juliusmarminge 61b8aaa
Refactor mobile ordering and catalog assembly
juliusmarminge 399b13d
Refine mobile environment connection flows
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.