Skip to content

fix: fork installs update from the fork again and carried upstream PRs are tracked - #23

Merged
yvesoddly merged 1 commit into
mainfrom
fork/constants-and-carried-prs
Nov 2, 2026
Merged

yvesoddly merged 1 commit into
mainfrom
fork/constants-and-carried-prs

Conversation

@yvesoddly

@yvesoddly yvesoddly commented Nov 2, 2026 •

Copy link
Copy Markdown

An upstream sync reverted the CLI release repo to pingdotgg/t3code, so t3 update on a fork install pulled upstream's releases. Separately, upstream PRs we merge early are never re-checked, and four of them have moved on since we took them.

Fork release source

  • @t3tools/shared/fork holds the fork repo slug. cliRelease, the desktop update link and startup recovery read it.
  • fork.test.ts fails if a sync reverts it, and pins the repo= literals in install.sh and install.ps1.
  • The fork publishes nightly CLI archives with SHA256SUMS, so t3 update resolves against it.

Carried upstream PRs

vp run check:changed passes. The weekly workflow has not run on GitHub yet.

🤖 Generated with Claude Code


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need.

…s are tracked

An upstream sync reverted the CLI release repo to pingdotgg/t3code, so `t3 update`
on a fork install pointed at upstream releases. The fork's repo now lives in
@t3tools/shared/fork, with a test that also pins the installer literals.

Upstream PRs the fork carries are listed in .github/fork/carried-prs.json with the
head we took. scripts/fork-carried-prs.ts reports new commits, merges and closes,
and a weekly workflow runs it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Nov 2, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-11-02T16:07:43.898185Z fc237bd PR opened
🔒 Security Review ✅ Completed 2026-11-02T16:09:06.533846Z fc237bd PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@github-actions github-actions Bot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:L labels Nov 2, 2026

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: fc237bd95e

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

import { compareSemverVersions } from "./semver.ts";

const CLI_RELEASE_REPOSITORY = "pingdotgg/t3code";
const CLI_RELEASE_REPOSITORY = FORK_REPOSITORY;

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Resolve track-switch versions from the same release source

When Settings → About switches a boot-service environment to another update track, UpdateTrackSwitchDialog still resolves the target through npmReleaseAtom, backed by cloud/npmRelease.ts querying upstream's t3 npm package. However, cloud/selfUpdate.ts installs that exact version through pinnedRuntime.ts, whose download URL now defaults to the fork because of this change. The fork's fork-release.yml publishes independently versioned nightlies, not upstream's stable releases, so switching to Stable now attempts to download an upstream version from the fork and fails instead of updating. Make track-switch resolution and archive downloads use a consistent release source, or explicitly disable unsupported tracks.

AGENTS.md reference: AGENTS.md:L69-L69

Useful? React with 👍 / 👎.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Confirmed, but the bug predates this PR. The track switch reads its target version from upstream's t3 npm package, and the fork doesn't publish to npm. Before this PR, the switch installed upstream's archive of that version, which quietly moved a fork install onto an upstream build running on a database with fork migrations. Now the download from fork releases fails instead, which is the safer of the two. The fork also has no Stable releases, only nightlies.

The real fix depends on what the fork does about npm (npx t3, and whether to publish or disable tracks it doesn't ship). A follow-up already owns that, so I'm leaving this PR's scope as is.

@greptile-apps

greptile-apps Bot commented Nov 2, 2026 •

Copy link
Copy Markdown

RetriggerView in GreptileConfidence Score: 5/5

[Medium impact] The PR appears safe to merge; no actionable issues were found.

Summary

This PR restores the fork as the source for CLI updates and centralizes its release links.

  • Fork updates and release links use the fork’s release page.
  • A weekly check reports changes to upstream PRs the fork carries.

Reviews (1) · Last reviewed commit: "fix: fork installs update from the fork ..." · Reviewed by Greptile

@yvesoddly
yvesoddly merged commit 490cc44 into main Nov 2, 2026
20 of 22 checks passed
eyeveil added a commit that referenced this pull request Nov 7, 2026
#24) [skip ci]

## Why
The fork publishes only nightly builds, but its install docs, install script headers, and the desktop update-track switch still sent fork users to upstream installs, upstream releases, or a stable channel the fork doesn't have. #23 moved the release source to the fork. This covers what it left.

## What changed
- `install.sh` and `install.ps1` headers give the fork's raw script URL with `T3CODE_CHANNEL=nightly`. Their errors no longer point at `t3.codes/download` or `npm install -g t3`. `README.md` and `docs/user/install.md` link the fork's releases, label package managers as installing upstream, and say the fork ships Linux x86_64 only.
- `FORK_HAS_UPDATE_TRACKS = false` in `@t3tools/shared/fork` hides the desktop update-track switch and its settings search entry. The switch took its target from upstream's npm `t3`, which fork releases don't have. `docs/user/updating.md` explains this.
- `fork.test.ts` fails if the README, install guide, or scripts mention `t3.codes/install`, `t3.codes/download`, a bare `t3.codes` link, or upstream's releases page.

## Scope
- Covers docs, install scripts, and the update-track switch.
- Leaves about 10 in-app `npx t3 …` strings, plus `updating.md`'s `npx t3@<client-version>` line, pointing at upstream npm. Fixing them means rewording shared upstream UI, so they need their own change.
- Fork desktop users who once chose Stable have no in-app way back. That comes from reading the code and wasn't reproduced.

## Tradeoffs
- `npx t3` still runs upstream, and the docs now say so. Publishing a fork npm package needs the maintainer's OK.

## Blast Radius
Docs and scripts change for fork users only. Hiding the switch also hides its "machines on the other track" review path for connected remote machines.

## Verification
- `scripts/install.sh`, run as its header says in an isolated home, installed `0.1.8-nightly.20261106.100`, and `t3 --version` reported it. Without `T3CODE_CHANNEL` it stops with "could not find a stable release".
- `vp run check:changed fork/main` passes, and `fork.test.ts` passes 9 of 9.
- Not run: the PowerShell one-liner (no Windows machine), and `install.sh` on Linux arm64, where it should fail with "no release archive" because the fork publishes none.

Model and harness: Claude Opus 5.5 (implementation, update onto main, review) via Claude Code in T3 Code.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:L 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.

1 participant