Problem
When the local T3 Code nightly updates, an existing remote environment can keep serving the previous T3 server version. The Remote Environments UI detects this as version drift, but the only practical fix today is manual SSH/systemd work on the remote host.
In my setup this has happened repeatedly across nightlies, for example:
- client
.586, server .578
- client
.598, server .586
- client
.631, server .598
- client
.636, server .631
- client
.655, server .636
- client
.661, server .655
- client
.667, server .661
The manual recovery has been roughly:
- SSH to the remote environment.
- Edit the remote T3 service command from
t3@old-version serve ... to t3@new-version serve ....
- Clear stale
npx/npm cache if needed.
- Restart the service.
- Refresh/reconnect the local client.
When this drifts, the UI sometimes still shows connected with a warning, and sometimes gets stuck reconnecting. Either way, the user has enough information in the UI to know the remote needs an update, but not a button to do it.
Proposal
When a remote environment has version drift, show an Update or Update & reconnect button next to Disconnect.
Clicking it should update the remote environment's T3 server to the client-compatible version, restart/reconnect the remote service, and clear the version drift state once the remote descriptor reports the matching/compatible version.
UX suggestion
In the Remote Environments row, if:
client serverVersion !== remote serverVersion
show:
Update or Update & reconnect
Disconnect
The update flow could show progress states such as:
- Updating remote server...
- Restarting remote environment...
- Reconnecting...
- Updated
If update fails, surface the command/stage that failed and keep the existing warning visible.
Acceptance criteria
- Version drift warning includes a direct update action.
- User does not need to SSH into the remote to edit service configuration manually.
- The action updates the remote server to a compatible T3 version and reconnects.
- The UI verifies success by re-reading the remote environment descriptor.
- Failure states are actionable and do not leave the user stuck in an indefinite reconnect loop.
Problem
When the local T3 Code nightly updates, an existing remote environment can keep serving the previous T3 server version. The Remote Environments UI detects this as version drift, but the only practical fix today is manual SSH/systemd work on the remote host.
In my setup this has happened repeatedly across nightlies, for example:
.586, server.578.598, server.586.631, server.598.636, server.631.655, server.636.661, server.655.667, server.661The manual recovery has been roughly:
t3@old-version serve ...tot3@new-version serve ....npx/npm cache if needed.When this drifts, the UI sometimes still shows connected with a warning, and sometimes gets stuck reconnecting. Either way, the user has enough information in the UI to know the remote needs an update, but not a button to do it.
Proposal
When a remote environment has version drift, show an
UpdateorUpdate & reconnectbutton next toDisconnect.Clicking it should update the remote environment's T3 server to the client-compatible version, restart/reconnect the remote service, and clear the version drift state once the remote descriptor reports the matching/compatible version.
UX suggestion
In the Remote Environments row, if:
client serverVersion !== remote serverVersionshow:
UpdateorUpdate & reconnectDisconnectThe update flow could show progress states such as:
If update fails, surface the command/stage that failed and keep the existing warning visible.
Acceptance criteria