fix(tray): il tray installa da solo i propri update se il launcher non lo supervisiona #26

Merged
claudia merged 1 commit from fix/tray-self-update into main 2026-10-06 10:41:37 +00:00
Owner

Ticket ]po[ 74770 - segnalazione di Marcello: l update non aggiornava agent-tray.exe.

Causa (launcher.log del PC di Marcello, launcher 1.0.1): WTSQueryUserToken: A required privilege is not held by the client. Il servizio gira con l account dell utente (serve per l auth di claude), quindi il launcher non puo avviare il tray nella sessione utente: rinuncia a supervisionarlo ma continua a scaricarne gli update, che nessuno installa. Restavano in agent-tray.exe.new fino al primo riavvio del servizio o del PC.

Fix

  • tray: al login e poi ogni minuto, se trova un update per una versione diversa dalla propria, ruota i file (su Windows si puo rinominare un exe in esecuzione), avvia il nuovo e si chiude
  • launcher: quando supervisiona il tray gli passa launcher-supervised, un argomento posizionale che i tray vecchi ignorano; in quel caso gli update restano compito del launcher, niente doppia gestione
  • rotazione dei file spostata in selfupdate.ApplyPending, condivisa da launcher e tray
  • runner 1.0.2

Transizione: un tray 1.0.1 o precedente non sa aggiornarsi da solo, quindi la 1.0.2 si installa al primo riavvio del servizio o del PC.

Test: go vet linux+windows, go test -race verdi; 5 test nuovi sull auto-update del tray.

Ticket ]po[ 74770 - segnalazione di Marcello: l update non aggiornava agent-tray.exe. **Causa** (launcher.log del PC di Marcello, launcher 1.0.1): `WTSQueryUserToken: A required privilege is not held by the client`. Il servizio gira con l account dell utente (serve per l auth di claude), quindi il launcher non puo avviare il tray nella sessione utente: rinuncia a supervisionarlo ma continua a scaricarne gli update, che nessuno installa. Restavano in agent-tray.exe.new fino al primo riavvio del servizio o del PC. **Fix** - tray: al login e poi ogni minuto, se trova un update per una versione diversa dalla propria, ruota i file (su Windows si puo rinominare un exe in esecuzione), avvia il nuovo e si chiude - launcher: quando supervisiona il tray gli passa `launcher-supervised`, un argomento posizionale che i tray vecchi ignorano; in quel caso gli update restano compito del launcher, niente doppia gestione - rotazione dei file spostata in `selfupdate.ApplyPending`, condivisa da launcher e tray - runner 1.0.2 Transizione: un tray 1.0.1 o precedente non sa aggiornarsi da solo, quindi la 1.0.2 si installa al primo riavvio del servizio o del PC. Test: go vet linux+windows, go test -race verdi; 5 test nuovi sull auto-update del tray.
Col servizio sotto l'account dell'utente (il setup normale, per l'auth di
claude) WTSQueryUserToken e' negato: il launcher non puo' avviare il tray,
rinuncia a supervisionarlo ma continua a scaricarne gli update, che restavano
fermi in agent-tray.exe.new fino al riavvio del PC. Visto sul PC di Marcello
con il launcher 1.0.1: 'A required privilege is not held by the client'.

- tray: al login e poi ogni minuto, se c'e' un update per una versione
  diversa dalla propria, ruota i file, avvia il nuovo e si chiude
- launcher: passa al tray 'launcher-supervised' (argomento posizionale, un
  tray vecchio lo ignora); in quel caso gli update restano compito suo
- rotazione dei file spostata in selfupdate.ApplyPending, condivisa
- runner 1.0.2
claudia deleted branch fix/tray-self-update 2026-10-06 10:41:37 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
Soltea-org/soltea-agent-gateway!26
No description provided.