Skip to content

fix: fork builds update from their own releases, and the update capsule keeps its label - #50

Merged
collissimo merged 1 commit into
collin/mainfrom
t3/fix-update-download-checksums
Nov 14, 2026
Merged

collissimo merged 1 commit into
collin/mainfrom
t3/fix-update-download-checksums

Conversation

@collissimo

Copy link
Copy Markdown
Owner

Problem

A server built in a fork failed its update with HTTP 404 from github.com while downloading the release checksums. It asked upstream's releases for a version that only this fork publishes, because the release source was hardcoded to upstream unless T3CODE_RELEASE_BASE_URL was set by hand on the machine.

In a narrow sidebar the update capsule had no room for its label beside the footer icons, so a failed update showed only an off-center "Retry" in a red ring.

Fix

  • Server, desktop and web builds bake in the repository they were built in (GITHUB_REPOSITORY, or T3CODE_DESKTOP_UPDATE_REPOSITORY), the source the desktop updater already uses. Release lookups, archive downloads and the SSH remote install default to it. Builds without one, and invalid values, still use upstream. T3CODE_RELEASE_BASE_URL and a managed mirror still win.
  • The repository validation moved from the web update logic into @t3tools/shared/cliRelease and is shared.
  • The update capsule wraps onto its own row above the footer icons when it cannot fit its label (before: C… Retry squeezed beside four icons; after: Center failed · Retry on a full-width row). In a wide sidebar it stays inline.

Verification

  • Built the server with GITHUB_REPOSITORY set to this fork and ran t3 update --channel nightly into an empty home with no release env set: it listed this fork's releases and installed the newest fork nightly, checksum verified.
  • vp run check:changed: all pass except the React Compiler coverage test for DictationHistoryDialog.tsx, which fails the same way on collin/main and is not touched here.
  • Not covered: the mobile app has no build define, so its update lookup still reads upstream.

Claude Fable 5.2, Claude Code

🤖 Generated with Claude Code

…le keeps its label

A server built in a fork asked upstream's releases for its fork-only version and got a 404 on
SHA256SUMS, unless T3CODE_RELEASE_BASE_URL was set by hand on that machine. Server, desktop and
web builds now bake in the repository they were built in (GITHUB_REPOSITORY, or
T3CODE_DESKTOP_UPDATE_REPOSITORY), the same source the desktop updater already uses, so release
lookups and archive downloads default to it. Builds without one still use upstream.

In a narrow sidebar the update capsule had no room for its label beside the footer icons and
showed only an off-center "Retry". It now wraps onto its own row above the icons when it cannot
fit its label.

Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
@collissimo
collissimo merged commit 96411b6 into collin/main Nov 14, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant