Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
54e13d2
ci(turbo): schedule nightly source sync
Aug 2, 2026
b5293d2
ci(turbo): avoid vendored checkout hooks
Aug 2, 2026
41c054e
ci(turbo): track upstream main snapshots
Aug 2, 2026
c90fe02
fix(turbo): repair inbound packaging notifications
Aug 2, 2026
b41c2ae
fix(turbo): authenticate inbound branch advancement
Aug 2, 2026
ff0e711
fix(turbo): persist inbound state metadata
Aug 2, 2026
1e13417
fix(ci): use available runners in fork
Aug 3, 2026
4983f0a
test(web): reduce image compression fixture cost
Aug 3, 2026
ee2c16a
docs(turbo): document inbound build pipeline
Aug 3, 2026
4149c17
docs(turbo): remove upstream contribution setup
Aug 3, 2026
2542d8b
docs(turbo): add nightly inbound runbook
Aug 3, 2026
8d02aaf
docs(turbo): align main operator instructions
Aug 3, 2026
672be54
ci: stop targeting Blacksmith runners, use GitHub-hosted runners
Aug 3, 2026
774c53d
feat(relay): support self-hosted deployments (#1)
gfsaaser24 Aug 3, 2026
b490449
feat: minimal self-host relay stack (CF + Clerk + Supabase, optional …
gfsaaser24 Aug 3, 2026
d49110a
fix(relay): plumb --yes to updateStateStore (CI first-deploy bootstra…
gfsaaser24 Aug 3, 2026
94bec6b
fix(alchemy): paginate zone list in worker hostname zone inference (#5)
gfsaaser24 Aug 4, 2026
7ba69c7
fix(deps): pnpm-patch alchemy zone inference pagination (#6)
gfsaaser24 Aug 4, 2026
37ea1bd
chore: T3 Turbo branding + release naming + skip npm publish (fork po…
gfsaaser24 Aug 4, 2026
a3f2e22
chore: brand web app + server CLI as T3 Turbo (#11)
gfsaaser24 Aug 4, 2026
53a93a9
fix(desktop): register t3code protocols and explicit NSIS shortcuts o…
Aug 5, 2026
850457d
docs(operations): relay migration runbook + Cloudflare hosted-app dep…
Aug 5, 2026
d585534
docs(operations): end-to-end "Host your own T3 Code" ordering guide
Aug 5, 2026
0f6fdd9
fix(web): collapse the Initialize Git label in narrow chat headers
Aug 5, 2026
e75a787
fix(web): resolve more agent file references into clickable file chips
Aug 5, 2026
42b6733
style(docs): satisfy oxfmt on the hosting guide
Aug 5, 2026
61b148b
Merge pull request #20 from gfsaaser24/t3code/win-protocol-shortcuts
gfsaaser24 Aug 5, 2026
c003bb0
Merge pull request #24 from gfsaaser24/t3code/fix-init-git-overlap
gfsaaser24 Aug 5, 2026
d0fb86d
Merge pull request #26 from gfsaaser24/t3code/fix-markdown-file-links
gfsaaser24 Aug 5, 2026
3ae1875
Merge pull request #21 from gfsaaser24/t3code/fork-ops-docs
gfsaaser24 Aug 5, 2026
43657f3
fix(web): keep pasted link text when the clipboard also carries an image
Aug 5, 2026
a25c8d5
fix(web): only re-insert URL-shaped paste text alongside image attach…
Aug 5, 2026
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
12 changes: 6 additions & 6 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,13 @@ on:
- main

concurrency:
group: ci-${{ github.event.pull_request.number || github.sha }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
group: ci-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true

jobs:
check:
name: Check
runs-on: blacksmith-8vcpu-ubuntu-2404
runs-on: ${{ github.repository == 'pingdotgg/t3code' && 'blacksmith-8vcpu-ubuntu-2404' || 'ubuntu-24.04' }}
timeout-minutes: 10
steps:
- name: Checkout
Expand Down Expand Up @@ -59,7 +59,7 @@ jobs:

test:
name: Test
runs-on: blacksmith-8vcpu-ubuntu-2404
runs-on: ${{ github.repository == 'pingdotgg/t3code' && 'blacksmith-8vcpu-ubuntu-2404' || 'ubuntu-24.04' }}
timeout-minutes: 10
steps:
- name: Checkout
Expand Down Expand Up @@ -91,7 +91,7 @@ jobs:

mobile_native_static_analysis:
name: Mobile Native Static Analysis
runs-on: blacksmith-6vcpu-macos-26
runs-on: ${{ github.repository == 'pingdotgg/t3code' && 'blacksmith-6vcpu-macos-26' || 'macos-26' }}
timeout-minutes: 10
steps:
- name: Checkout
Expand Down Expand Up @@ -119,7 +119,7 @@ jobs:

release_smoke:
name: Release Smoke
runs-on: blacksmith-8vcpu-ubuntu-2404
runs-on: ${{ github.repository == 'pingdotgg/t3code' && 'blacksmith-8vcpu-ubuntu-2404' || 'ubuntu-24.04' }}
timeout-minutes: 10
steps:
- name: Checkout
Expand Down
44 changes: 43 additions & 1 deletion .github/workflows/deploy-relay.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ on:
push:
branches:
- main
workflow_dispatch:

permissions:
contents: read
Expand All @@ -17,26 +18,48 @@ concurrency:
jobs:
deploy_relay:
name: Deploy production relay
runs-on: blacksmith-8vcpu-ubuntu-2404
runs-on: ubuntu-24.04
timeout-minutes: 15
environment:
name: production
env:
CLOUDFLARE_ACCOUNT_ID: ${{ vars.CLOUDFLARE_ACCOUNT_ID }}
DATABASE_HOST: ${{ vars.DATABASE_HOST }}
DATABASE_PORT: ${{ vars.DATABASE_PORT }}
DATABASE_NAME: ${{ vars.DATABASE_NAME }}
DATABASE_USER: ${{ vars.DATABASE_USER }}
# Legacy managed-PlanetScale fallback; DATABASE_* takes precedence.
PLANETSCALE_ORGANIZATION: ${{ vars.PLANETSCALE_ORGANIZATION }}
# Optional tracing; an incomplete Axiom pair disables export.
AXIOM_ORG_ID: ${{ vars.AXIOM_ORG_ID }}
RELAY_DOMAIN: ${{ vars.RELAY_DOMAIN }}
RELAY_API_ZONE_NAME: ${{ vars.RELAY_API_ZONE_NAME }}
RELAY_TUNNEL_ZONE_NAME: ${{ vars.RELAY_TUNNEL_ZONE_NAME }}
CLERK_PUBLISHABLE_KEY: ${{ vars.CLERK_PUBLISHABLE_KEY }}
CLERK_JWT_AUDIENCE: ${{ vars.CLERK_JWT_AUDIENCE }}
# Optional iOS push; an incomplete APNS_* set disables the APNs resources and runtime.
APNS_ENVIRONMENT: ${{ vars.APNS_ENVIRONMENT }}
APNS_TEAM_ID: ${{ vars.APNS_TEAM_ID }}
APNS_KEY_ID: ${{ vars.APNS_KEY_ID }}
APNS_BUNDLE_ID: ${{ vars.APNS_BUNDLE_ID }}
ALCHEMY_TELEMETRY_DISABLED: "1"
steps:
- id: cloudflare_config
name: Detect Cloudflare configuration
shell: bash
env:
CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }}
run: |
if [[ -n "${CLOUDFLARE_ACCOUNT_ID:-}" && -n "${CLOUDFLARE_API_TOKEN:-}" ]]; then
echo "enabled=true" >> "$GITHUB_OUTPUT"
exit 0
fi

echo "enabled=false" >> "$GITHUB_OUTPUT"
echo "::notice::Relay deployment skipped because Cloudflare credentials are not configured."

- name: Checkout
if: steps.cloudflare_config.outputs.enabled == 'true'
uses: actions/checkout@v6
with:
sparse-checkout: |
Expand All @@ -45,6 +68,7 @@ jobs:
sparse-checkout-cone-mode: false

- name: Setup Vite+
if: steps.cloudflare_config.outputs.enabled == 'true'
uses: voidzero-dev/setup-vp@v1
with:
node-version-file: package.json
Expand All @@ -53,18 +77,36 @@ jobs:
args:
- --filter=t3code-relay...

- name: Report optional relay services
if: steps.cloudflare_config.outputs.enabled == 'true'
shell: bash
env:
AXIOM_TOKEN: ${{ secrets.AXIOM_TOKEN }}
APNS_PRIVATE_KEY: ${{ secrets.APNS_PRIVATE_KEY }}
run: |
if [[ -z "${AXIOM_TOKEN:-}" || -z "${AXIOM_ORG_ID:-}" ]]; then
echo "::notice::Axiom is not fully configured; hosted tracing is disabled."
fi

if [[ -z "${APNS_PRIVATE_KEY:-}" || -z "${APNS_ENVIRONMENT:-}" || -z "${APNS_TEAM_ID:-}" || -z "${APNS_KEY_ID:-}" || -z "${APNS_BUNDLE_ID:-}" ]]; then
echo "::notice::APNs is not fully configured; mobile push is disabled."
fi

- name: Deploy production relay stage
if: steps.cloudflare_config.outputs.enabled == 'true'
id: deploy
run: vp run --filter t3code-relay deploy --stage prod --yes --github-output
env:
CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }}
DATABASE_PASSWORD: ${{ secrets.DATABASE_PASSWORD }}
PLANETSCALE_API_TOKEN_ID: ${{ secrets.PLANETSCALE_API_TOKEN_ID }}
PLANETSCALE_API_TOKEN: ${{ secrets.PLANETSCALE_API_TOKEN }}
AXIOM_TOKEN: ${{ secrets.AXIOM_TOKEN }}
CLERK_SECRET_KEY: ${{ secrets.CLERK_SECRET_KEY }}
APNS_PRIVATE_KEY: ${{ secrets.APNS_PRIVATE_KEY }}

- name: Publish relay deploy commit status
if: steps.cloudflare_config.outputs.enabled == 'true'
uses: actions/github-script@v8
with:
script: |
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/mobile-eas-preview.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ jobs:
if: |
contains(github.event.pull_request.labels.*.name, '🚀 Mobile Continuous Deployment') &&
(github.event.action != 'labeled' || github.event.label.name == '🚀 Mobile Continuous Deployment')
runs-on: blacksmith-8vcpu-ubuntu-2404
runs-on: ubuntu-24.04
concurrency:
group: mobile-eas-preview-${{ github.event.pull_request.number }}
cancel-in-progress: true
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/mobile-eas-production.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ on:
jobs:
production:
name: EAS Production ${{ inputs.mode }}
runs-on: blacksmith-8vcpu-ubuntu-2404
runs-on: ubuntu-24.04
permissions:
contents: read
env:
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/mobile-showcase-screenshots.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ jobs:
ios:
name: iPhone 6.9, iPhone 6.5, and iPad 13
if: inputs.platform == 'all' || inputs.platform == 'ios'
runs-on: blacksmith-12vcpu-macos-26
runs-on: macos-26
timeout-minutes: 60
steps:
- name: Checkout
Expand Down Expand Up @@ -79,7 +79,7 @@ jobs:
android:
name: Android phone, 7-inch tablet, and 10-inch tablet
if: inputs.platform == 'all' || inputs.platform == 'android'
runs-on: blacksmith-16vcpu-ubuntu-2404
runs-on: ubuntu-24.04
timeout-minutes: 60
env:
T3_SHOWCASE_ANDROID_ABI: x86_64
Expand Down
Loading
Loading