feat(tray): gestione progetti del servizio dal tray (74770) #20
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feat/tray-gestione-progetti"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Ticket ]po[ 74770 — richiesta di Marcello del 06/10/2026.
Cosa fa
Voce Gestisci progetti… nel menu della tray icon: finestra WebView2 per aggiungere, modificare ed eliminare i progetti gestiti dal servizio.
Decisioni concordate con Marcello: il tray scrive direttamente
config.jsone forza il servizio a rileggerlo; eliminazione inclusa.Come
cmd/tray/projects.go,projects.html): valida (ID univoco, path assoluto ed esistente, almeno un progetto), riscrive soloprojectsinconfig.json(chiavi e ordine preservati, backupconfig.json.bak, scrittura atomica), poiPOST /api/reload. Se il worker è fermo il file viene salvato comunque e vale dal prossimo avvio. Senza WebView2 apreconfig.jsonnel blocco note.Config.ReloadProjects(mutex sui progetti),config_pathpubblicato instatus.json, endpointPOST /api/reload(token, solo POST). Segnalarestart_requiredse nel file sono cambiati campi letti solo all'avvio.projects.update→projects.updatedsulla connessione già aperta. Niente riconnessione: il gateway chiuderebbe le sessioni in corso. Una sessione su un progetto tolto arriva in fondo (path fissato atask.start).Compatibilità
/api/reload→ la finestra chiede di riavviare il servizio.Test
go vet(linux + windows),go test -race ./...verdi; nuovi test su config (scrittura/reload), status server, agent, editor del tray con worker in-process.pytest102 verdi (di cui 2 nuovi e2e: sessione viva durante l'update, frame malformato).config.json).