m23: un registro (promemoria_eventi_generati) ricorda i promemoria a 24 e 3 ore già generati, così eliminare la notifica non li fa rigenerare dal cron né riaccodare la mail a ogni giro. m24: la push dei promemoria, che nascono nel database, la manda il worker mailer/ con lo stesso modulo dell'app (coda notifiche_push_coda, esiti, backoff, iscrizioni scadute eliminate, push scartate oltre 3 ore). Il sondaggio pre-partita scrive anche notifiche_utente (tipo sondaggio_cacche): compare in-app e arriva per email. L'immagine del worker si costruisce dalla radice del repository per includere src/lib/webpush.server.ts. Test: 9 di integrazione per m23, 17 per la coda push, 6 per la route del sondaggio, nuovi casi unitari sul worker; prova end-to-end con un servizio push finto. Documentazione e catalogo delle notifiche aggiornati. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Routes
TanStack Start uses file-based routing. Every .tsx file in this directory
defines a route. Do not create src/pages/, src/routes/_app/index.tsx, or
app/layout.tsx — those are Next.js / Remix conventions. The only root layout
is src/routes/__root.tsx.
Conventions
| File | URL |
|---|---|
index.tsx |
/ |
about.tsx |
/about |
users/index.tsx |
/users |
users/$id.tsx |
/users/:id (dynamic — bare $, no curly braces) |
posts/{-$category}.tsx |
/posts/:category? (optional segment) |
files/$.tsx |
/files/* (splat — read via _splat param, never *) |
_layout.tsx |
layout route (renders children via <Outlet />) |
__root.tsx |
app shell — wraps every page; preserve <Outlet /> |
routeTree.gen.ts is auto-generated. Don't edit it by hand.