diff --git a/CHANGELOG.md b/CHANGELOG.md index 45dd352..00bd49f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,35 @@ e questo progetto aderisce al [Versionamento Semantico](https://semver.org/lang/ --- +## [2.0.0] - 2026-05-12 + +### Aggiunto +- Architettura client-server con WebSocket: server Express (`server.js`) + handler (`src/websocket-handler.js`) come unica fonte di verità; display e controller sono client separati sincronizzati in tempo reale +- Interfaccia display (`/display`) e controller (`/controller`) su porta singola `:3000` +- Terminal controller CLI (`cli.js`) per controllo da riga di comando via WebSocket +- Robustezza connessione WebSocket: reconnect automatico con backoff esponenziale, indicatore stato connessione sul display +- Supporto query parameter `?wsHost=` per scenari WSL2 / development remoto +- Validazione cambi giocatori già in formazione lato client +- Sintesi vocale inoltrata dal controller al display via WebSocket +- Dialog set vinto sul controller al raggiungimento dei 25 punti: mostra il vincitore, permette di annullare l'ultimo punto (INDIETRO) o avanzare al set successivo con reset automatico formazioni +- Struttura striscia ottimizzata: array di set `[{ serv, r[] }]` che registra la sequenza dei punti e preserva la storia di tutti i set; elimina `storicoServizio` +- Persistenza stato su `.segnapunti/state.json`: salvato ad ogni azione, ricaricato all'avvio del server +- Suite di test completa: unit (Vitest), integration, component (Vue Test Utils + Happy-DOM), stress (50+ client), E2E (Playwright su Chromium, Firefox, Mobile Chrome) +- Dockerfile multi-stage (builder + runtime minimale) e docker-compose con volume per persistenza stato; immagine pubblicata su registro Gitea + +### Modificato +- `applyAction` usa `structuredClone` al posto di `JSON.parse/stringify` +- Calcolo cambio palla deduplicato in `applyAction` +- Undo punto (`decPunt`) ricostruisce il servizio precedente dalla storia `r[]` +- `nuovoSet` come azione dedicata per la progressione regolare tra set + +### Rimosso +- Dipendenze inutilizzate: `wave-ui`, `vue-router`, `concurrently` +- Script npm ridondanti: `preview`, `start` +- Asset template Vite: `vite.svg`, `vue.svg`, `serve.png` + +--- + ## [1.0.0] - 2026-02-10 Rilascio iniziale di **Segnapunti Anto**, un'applicazione web Progressive Web App (PWA) professionale per il tracciamento in tempo reale dei punteggi durante partite di pallavolo.