Sezione 1.4.1 del CHANGELOG, versione in package.json e package-lock.json,
PROJECT_STATE aggiornato. Nessuna migration.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Sezione 1.4.0 del CHANGELOG, versione in package.json e package-lock.json,
PROJECT_STATE aggiornato. Il test di presenza-modificata copre ora i confini
delle 6 ore, ogni stato, allenatore inattivo, admin senza slot, doppio ruolo e
ora dell'evento non valida. Documentazione delle notifiche allineata (riga 9,
copertura test, email, DATABASE). Nessuna nuova migration: la m32 e la m33 sono
applicate in produzione (09/10/2026).
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
La sezione in fondo al Calendario mostra solo i compleanni del mese in corso non
ancora passati. Sezione 1.3.1 del CHANGELOG, versione in package.json e
package-lock.json, PROJECT_STATE e modulo calendario aggiornati. Nessuna migration.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Sezione 1.3.0 del CHANGELOG con tutto quanto dopo v1.2.3 (notifica di compleanno,
obiettivi cliccabili, presenze sui convocati, avvisi in Home, caratteri più
grandi, tessera CSI tolta dalla dashboard). Versione in package.json e
package-lock.json, PROJECT_STATE aggiornato. Migration da applicare: m31.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Il giocatore senza certificato vede una card rossa cliccabile, l'admin
l'elenco dei mancanti sopra scaduti e in scadenza. Nessuna migration.
Aggiorna @tanstack/react-start alla 1.168.60 (con router, plugin e query) e
chiude le vulnerabilità di npm audit: Vercel bloccava il deploy con la
1.168.34. Il tipo di error in __root.tsx diventa unknown, come nel nuovo tipo
di TanStack.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Changelog della 1.2.2, versione in package.json e stato del progetto: le
migration m27-m30 sono applicate in produzione dal 01/10/2026.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Changelog della 1.2.1, versione in package.json e stato del progetto: la
migration m26 è applicata in produzione e tutte le 37 migration sono allineate.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Changelog dalla 1.1.1: notifiche email con worker Docker e interruttore Email,
push dei promemoria, sondaggio in-app ed email, l'allenatore senza promemoria
degli eventi e la correzione dei promemoria che ricomparivano.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Aggiunge dragDirectionLock alla tab bar (Squadra > Stats non salta più su
Obiettivi durante uno scroll verticale veloce) e aggiorna il changelog
con quanto già presente su main dalla 1.1.0: keepalive giornaliero,
cifratura di default del backup e la card allenatore uniformata.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Aggiunta la sezione [1.1.0] nel changelog, spostata la voce da «Prossimo» a
«Fatto» nella roadmap e chiuso lo stato di DD-035 come implementata.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
La sezione [1.0.0] riunisce i commit dopo il tag v0.9.2: ruolo allenatore,
centro notifiche in-app, messaggi dell'admin, Gestione eventi a calendario,
script di backup, data di nascita pubblica corretta. La nota sulle versioni
passa dal regime pre-1.0 al versionamento semantico.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
- npm run typecheck (tsc --noEmit) entra nella checklist di fine lavoro:
bun esegue i test senza controllare i tipi, ed è così che si erano
accumulati errori di tipo con la suite verde.
- La logica pura del download dello storage passa in storage-core.ts,
testata con dati finti (nessuna lettura del .env reale).
- Il download dello storage esce con errore se anche un solo file non
si scarica, così backup.sh non dichiara completo un backup parziale.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Tolti il login social e il reporting errori verso l'editor Lovable (codice
morto, mai importato o no-op in produzione), la cartella .lovable/ con i
piani dell'editor, e riscritto vite.config.ts senza il preset
@lovable.dev/vite-tanstack-config, esplicitando gli stessi plugin
(TanStack Start, Tailwind, tsconfig-paths, React, Nitro/cloudflare) che
forniva.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Il nome era ancora `tanstack_start_ts`, quello dello starter da cui è nato il
progetto. Non lo vede nessun utente — il pacchetto è privato, e il nome che
leggono i giocatori sta in public/manifest.webmanifest e in __root.tsx — ma
è la prima riga che si apre guardando il repository.
Aggiornata anche la riga corrispondente in bun.lock, così il prossimo
`bun install` non ha niente da riscrivere. Nessuna dipendenza si risolve per
nome del workspace root: lint, test e build passano.
`package-lock.json` resta indietro di proposito: è fermo a fine agosto e il
progetto installa con bun.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Dei 45 componenti in `src/components/ui/` solo `drawer` e `sonner` erano
importati da qualche parte. Gli altri 43 — e con loro ~45 dipendenze: tutti i
`@radix-ui/*`, recharts, react-hook-form, date-fns, embla, cmdk, input-otp,
react-day-picker, react-resizable-panels, class-variance-authority,
tw-animate-css — erano superficie di aggiornamento e di sicurezza pagata a
vuoto. Stessa sorte per `src/hooks/use-mobile.tsx`, mai importato. `zod`
resta: lo usano tre route API.
Le dipendenze dirette passano da 50 a 21. Il bundle client NON cala per
questo: quel codice non era importato e il tree-shaking già lo escludeva.
Nella direzione opposta entra `motion`, l'unica aggiunta: serve per le molle
interrompibili che nessuna `@keyframes` CSS può dare (vedi DD-021). Costa ~42
KB gzip, che le rimozioni non compensano — il bundle client passa da 267 a
308 KB gzip.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
The project had no automated verification at all, so the "Test" step in
the AGENTS.md workflow rested entirely on clicking through the app.
The suite runs on bun with node:assert and adds no dependency: every file
is a script that exits non-zero when a check fails, and test/run.ts runs
each one in its own process. Unit tests cover the rules that decide what
players see (badges, streaks, ball duty rotation, ratings, MVP ties,
scouting totals, goals, notifications, CSI parsing); integration and
end-to-end tests drive the real dev server. Nothing writes to the
database, so both can be pointed at a live environment.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>