Repository navigation
Description
What happened
I run T3 Code Nightly on a MacBook Pro and a Mac mini. The Mac mini runs the background service, and its desktop app stays open. On the MacBook Pro I ran Update everything and expected it to update every installation. The Mac mini's server updated to 0.1.10-nightly.20261113.4630. The Mac mini's desktop app stayed on 0.1.9-nightly.20261110.4478. Across many nightlies I have never seen that app update on its own.
Diagnosis
A server can ask a desktop app to update only when that desktop app runs the server. apps/server/src/desktopUpdate/DesktopAppUpdate.ts sets available = config.mode === "desktop" && config.desktopTelemetryControlFd !== undefined. ServerEnvironment.ts advertises desktopAppUpdate only when serverSelfUpdate is "desktop-managed".
The Mac mini runs the launchd background service. Its /.well-known/t3/environment response reports serverSelfUpdate: "boot-service" and no desktopAppUpdate. Update everything therefore replaces the service runtime and nothing else. The desktop app on the Mac mini connects to that service as a client, and no code asks it to update. DesktopUpdates.ts turns off autoDownload and autoInstallOnAppQuit, so the app waits for someone to click the update prompt on that machine.
Possible fixes:
- The desktop app on a service host registers with the local service. The service then advertises
desktopAppUpdateand forwards update requests to the app. - When the desktop app sees the local service move to a newer version, it downloads that version and installs it on the next quit.
- Update everything lists each desktop app it cannot update and says where to update it.
Steps to reproduce
- On Mac B, run
t3 service install. Open the T3 Code Nightly desktop app on Mac B and connect it to that service. - On Mac A, open the T3 Code desktop app and add Mac B as an environment.
- After a new nightly ships, run Update everything on Mac A.
- Mac B's service updates. Mac B's desktop app stays on the old build and shows an update prompt. This happens on every release.
Version
The Mac mini's desktop app is on 0.1.9-nightly.20261110.4478. The Mac mini's server is on 0.1.10-nightly.20261113.4630, the build that Update everything installed. I did not check the version of the MacBook Pro's desktop app.
Environment
macOS 26, Darwin 25.6.0, arm64. The Mac mini runs the launchd background service and the Nightly desktop app. I triggered the update from the Nightly desktop app on a MacBook Pro, which connects to the Mac mini over T3 Connect.
Evidence
- The Mac mini's `boot-service.log` has this line at 13:11:25: `Server update prepared; handing off to the service launcher. targetVersion: '0.1.10-nightly.20261113.4630'`. The previous night's log has the same line for 0.1.10-nightly.20261112.4606.
- The Mac mini's `desktop.trace.ndjson` has 590 `desktop.updates.checkForUpdates` spans and 525 `update available` events. The latest event names version 0.1.10-nightly.20261113.4630. The app process started on Nov 10 and has not installed an update since.
- On the Mac mini, `http://127.0.0.1:3773/.well-known/t3/environment` returns `serverSelfUpdate: "boot-service"` and `serverSelfUpdateProgress: true`, with no `desktopAppUpdate` key.Related issues
#32062 reports that Update all skips machines with a WSL backend, which is another gap in the same update flow. #31487 reports that quitting from the menu discards a downloaded desktop update.
Fix applied or workaround
Click the update prompt in the desktop app on each Mac that runs the background service.
Filed by
Filed through t3 triage with Claude Code. Claude Opus 5.5 did the diagnosis and Claude Fable 5.2 edited the text.
Activity