Skip to content

T3 Code Mobile [WIP]#2013

Open
juliusmarminge wants to merge 54 commits into
mainfrom
t3code/mobile-remote-connect
Open

T3 Code Mobile [WIP]#2013
juliusmarminge wants to merge 54 commits into
mainfrom
t3code/mobile-remote-connect

Conversation

@juliusmarminge
Copy link
Copy Markdown
Member

@juliusmarminge juliusmarminge commented Apr 14, 2026

⚠️ WARNING :: VERY EARLY

Summary

  • Add a new Expo-based mobile client with remote connection setup, thread browsing, new-thread flows, composer UI, and git action sheets.
  • Move shared remote/runtime, git, thread-detail, and WebSocket state into packages/client-runtime and packages/shared so web and mobile can share the same behavior.
  • Refactor desktop startup and readiness handling to rely on HTTP session readiness, simplify window bootstrap, and remove the old listening-detector path.
  • Rework web connection, composer, sidebar, and git action flows to use the new shared runtime and state management.

Testing

  • Not run (PR content only).

Note

Medium Risk
Adds a new CI job and significant new mobile native code/config (including vendored iOS framework headers), which may introduce build/lint/tooling friction and larger repo artifacts but doesn’t change core server/web runtime here.

Overview
Introduces a new apps/mobile Expo app scaffold with variant-based app.config.ts, styling setup (global.css, Metro/ Babel config), EAS build profiles, and starter docs/ignores.

Adds iOS native modules for a prototype native review diff surface (T3ReviewDiffSurface) and commits an iOS terminal module podspec that vendors GhosttyKit.xcframework (plus third-party notices).

Extends CI with a macOS mobile_native_static_analysis job that installs swiftlint/ktlint/detekt via apps/mobile/Brewfile and runs scripts/mobile-native-static-check.ts; updates AGENTS.md and formatter/linter ignore patterns to account for generated/native mobile directories.

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

Note

Add mobile app with native terminal, review diff, and remote environment connection support

  • Introduces apps/mobile as a new Expo/React Native workspace with full project scaffolding: app.config.ts, metro.config.js, package.json, Babel config, EAS build profiles, and global CSS theme tokens for light/dark mode.
  • Adds native iOS and Android terminal surfaces (T3TerminalSurface) backed by vendored GhosttyKit (libghostty) on iOS and a custom TextView-based fallback on Android, with onInput/onResize events and theme support.
  • Adds a native iOS review diff surface (T3ReviewDiffSurface) with a full Swift UIView implementation for rendering syntax-highlighted diffs with inline comment selection.
  • Introduces a WsTransport class in packages/client-runtime providing WebSocket RPC with reconnect backoff, streaming subscriptions, and telemetry hooks; the web WsTransport now extends this shared base.
  • Extends the WebSocket RPC layer with three new endpoints: review.getDiffPreview, terminal.attach (streaming), and subscribeTerminalMetadata (streaming), backed by ReviewService and expanded TerminalManager logic.
  • Adds reactive state managers in packages/client-runtime for VCS status, VCS refs, VCS actions, terminal sessions, shell snapshots, thread detail, checkpoint diffs, and composer path search — all backed by Effect atoms.
  • Replaces git-specific hooks (useGitStatus, react-query mutations) across web components with VCS-agnostic equivalents (useVcsStatus, source control action hooks).
  • Renames DEFAULT_TERMINAL_ID from 'default' to 'term-1' and makes terminalId required (no decode default) in terminal input schemas.
  • Risk: terminal.onEvent is replaced by terminal.onMetadata in EnvironmentApi and WsRpcClient; callers using the old API will break.

Macroscope summarized 399b13d.

Loading
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XXL 1,000+ 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.

2 participants