Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 29 additions & 2 deletions .github/workflows/fork-release.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
name: Fork release

# Fork-only (tebiggs/t3code). Builds what the fork ships: the Windows x64
# desktop app, the Linux x64 server archive and the Android APK. A push to
# desktop app, the Linux x64 and arm64 server archives and the Android APK. A push to
# main, or a manual run on main, publishes them as a nightly-channel
# prerelease, which the fork's updaters read. Pull requests and manual runs on
# other branches run the same checks and builds without publishing. Upstream
Expand Down Expand Up @@ -240,6 +240,33 @@ jobs:
resource_key: linux-x64
cli_archive: true

# The arm64 server archive is what the Android app's phone setup installs in
# Termux. node-pty compiles from source there, so it builds on arm64 hardware.
linux_arm64:
name: Linux arm64
needs: [prepare, bundle]
permissions:
actions: read
contents: read
uses: ./.github/workflows/release-desktop.yml
with:
version: ${{ needs.prepare.outputs.version }}
ref: ${{ needs.prepare.outputs.ref }}
release_channel: nightly
relay_client_tracing: false
clerk_publishable_key: ${{ needs.prepare.outputs.clerk_publishable_key }}
clerk_jwt_template: ${{ needs.prepare.outputs.clerk_jwt_template }}
clerk_cli_oauth_client_id: ${{ needs.prepare.outputs.clerk_cli_oauth_client_id }}
relay_url: ${{ needs.prepare.outputs.relay_url }}
label: Linux arm64
runner: ubuntu-24.04-arm
platform: linux
target: AppImage
arch: arm64
rust_target: aarch64-unknown-linux-gnu
resource_key: linux-arm64
cli_archive: true

windows:
name: Windows x64
needs: [prepare, bundle]
Expand Down Expand Up @@ -334,7 +361,7 @@ jobs:
# refs/pull/<n>/merge, so the main checks below skip it.
publish:
name: Release assets
needs: [prepare, checks, linux, windows, android]
needs: [prepare, checks, linux, linux_arm64, windows, android]
runs-on: ubuntu-24.04
timeout-minutes: 20
permissions:
Expand Down
12 changes: 11 additions & 1 deletion FORK.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ This is a fork of T3 Code. `main` is upstream's newest nightly plus the
features listed below.

- **Releases.** Every push to `main` builds the Windows x64 desktop app, the
Linux x64 server and the Android APK. The build runs in
Linux x64 and arm64 servers and the Android APK. The build runs in
`.github/workflows/fork-release.yml`, which can also be run by hand on
`main` from the Actions tab or with `gh workflow run fork-release.yml`.
When typecheck and the tests covering the fork's changes pass, it publishes
Expand Down Expand Up @@ -34,3 +34,13 @@ adds the feature, and remove it in the PR that drops the feature.
on the same LAN: `apps/mobile/src/features/power/`,
`apps/mobile/src/persistence/mobile-preferences.ts` (`environmentPower`),
`apps/mobile/src/state/workspaceModel.ts`.
- #9 The Android app can set the phone up as its own environment: Claude Code
and a T3 Code server run in Ubuntu inside Termux, driven through Termux's
RUN_COMMAND intent: `apps/mobile/modules/t3-termux/`,
`apps/mobile/src/features/phone/`,
`apps/mobile/src/persistence/mobile-preferences.ts` (`phoneServer`). The
phone warns when it runs upstream's server, telling builds apart by #2's
release repo inside the binary. It also
fixes an upstream race that a slow server exposes: the thread feed read a new
thread before its creation was delivered, which cached it as deleted
(`apps/mobile/src/features/threads/ThreadFeed.tsx`).
19 changes: 19 additions & 0 deletions apps/mobile/modules/t3-termux/android/build.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
plugins {
id 'com.android.library'
id 'expo-module-gradle-plugin'
}

group = 'com.t3tools.termux'
version = '0.0.0'

android {
namespace 'expo.modules.t3termux'
defaultConfig {
versionCode 1
versionName '0.0.0'
}
}

dependencies {
implementation 'androidx.core:core:1.17.0'
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<!-- Declared by Termux; the user grants it at runtime from the phone setup screen. -->
<uses-permission android:name="com.termux.permission.RUN_COMMAND" />
<queries>
<package android:name="com.termux" />
</queries>
</manifest>
Loading
Loading