Fuso `feat/split-apps` (fermo dal 03/09 e mai portato in main, mentre il container
delle piattaforme girava gia' da li'): il sito e le piattaforme erano online in due
copie, con database diversi e ruoli divergenti — `nicola` era `admin` di la' e
`piattaforme` di qua, e la promozione di ieri valeva solo su una delle due.
Adesso `insanitylab.it/campus`, `/piattaforme` e `/login` fanno 404: le aree
riservate stanno solo su `piattaforme.tielogic.xyz`. Il pannello `/admin` resta.
Nel database del sito restano `admin` ed `editor`; `nicola` e `adriano` sono usciti.
Il lavoro di oggi e' passato intatto: edizione `settembre-2026` coi cinque
pacchetti, i 73 tag, il countdown al 19/09 e la correzione del sabato. Verificato
sull'immagine nuova prima di metterla, chiedendo la pagina a quattro date.
Tre cose che lo split del 03/09 aveva lasciato indietro, trovate eseguendo:
- **`Dockerfile` del sito copiava ancora `campus-content`**, spostato sotto
`apps/platforms`: il build falliva. Nel sito non c'era piu' un solo riferimento a
quella cartella - solo la riga del Dockerfile. Rimossa.
- **`migra-utenti.mjs --togli-dal-sito` era un no-op silenzioso**: il `continue`
sugli utenti gia' presenti a destinazione saltava anche la cancellazione
dall'origine. Siccome copiare e ripulire sono due passi separati apposta, l'opzione
non funzionava proprio nel caso per cui esiste. Ora chi e' gia' di la' esce di qua
lo stesso, e il riepilogo dice quanti ne ha tolti.
- **`.env` non e' in git**, quindi il merge non lo ha spostato sotto `apps/sito/`.
L'`up` e' fallito dopo che il `down` aveva gia' tolto il container: **9,7 secondi
di sito giu'**, misurati. La prova con `docker run` non lo aveva visto perche' non
legge `env_file`. Il rimedio - `docker compose config` prima dello swap - e' scritto
nel README del sito, che prima non diceva come si fa un deploy.
Sito 149 test verdi, piattaforme 202.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FPKFABRT3y26dFNMquF3CS
Primo passo della separazione sito / piattaforme decisa da Adriano il 03/09:
due applicazioni autosufficienti, senza workspace di root, cosi' che ognuna
resti un progetto Astro completo ed estraibile.
Qui non cambia niente del codice: solo la radice. I pattern del .gitignore
che avevano una barra erano ancorati alla radice e dopo lo spostamento non
avrebbero piu' coperto niente (data/*.db*, uploads/*): resi validi a
qualunque profondita'.
Suite: 45 file, 347 test verdi prima e dopo lo spostamento.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EndnceRA5WnA6rvA5iV9WL