Implement approved specification #32 and tickets #33-#37. Keep host authentication server-verified and pin session interaction language. Compile scoped base selectors for browser compatibility and retain full gutters during CSS pruning.
7.3 KiB
Full shell, Omics e interfaccia bilingue — verifica
Data: 2026-09-13. Specifica: Full shell, integrazione Omics e interfaccia bilingue. I cinque ticket e le loro dipendenze sono elencati nel piano.
Risultato
- Configurazione pubblica generata dal descrittore installato; full ed embedded
usano la stessa immagine frontend. Sul Mac:
full, locale inizialeen. - Header full con lingua, tema, fullscreen reale e menu utente/logout; rail sinistro vuoto di almeno 20 px. Nessuna rotellina amministrativa.
- Embedded senza header locale;
OmicsPortalAdapterincapsula l'osservazione del portale. Identità e autorizzazioni rimangono verificate dal server. - Cataloghi EN/IT, traduzioni dei controlli delle griglie, grafici e SQL adattati al tema. I contenuti di dominio rimangono invariati.
interaction_languagefissata nel manifest: cattura alla creazione, mantenimento alla ripresa e assegnazione atomica del valore workspace per sessioni precedenti.- Continuità della selezione al reload, nessuna ripresa automatica del modello e protezione delle bozze non inviate.
La guida operativa descrive configurazione, accesso, estensione ad altri portali/lingue e checklist di deploy.
Verifiche automatiche
| Livello | Esito |
|---|---|
| CLI nativa Go | go test ./...: 21 package verificati |
| Harness Python | 1290 passati, 1 saltato, 6 L2 esclusi |
| Gate Pi JavaScript | 205 passati |
| Frontend | suite completa: 755 passati in 90 file; regressione CSS prebuild superata |
| Backend | suite completa Node 24: 1397 passati, 40 saltati |
| Omics Docker isolato | 15 test Django/integrazione passati; controlli JavaScript del browser inclusi |
| Cataloghi | 1666 messaggi italiani, 1701 riferimenti statici; conflitti e interpolazioni verificati |
| Build | frontend, backend/typecheck e documentazione MkDocs strict verificati; regressione CSS eseguita automaticamente prima della build frontend |
La suite backend richiede Node 24. Sul Mac il percorso Homebrew node@24
risolveva a Node 25; è stato usato esplicitamente Node 24.16.0 già presente in NVM,
senza modificare il runtime globale. Un test preesistente sul timeout di arresto
di un processo è fallito sotto carico parallelo ed è passato isolatamente;
la verifica finale usa un solo worker.
I test coprono comportamenti pubblici e confini approvati: manifest filesystem e PostgreSQL, CLI, Fastify, processo Pi simulato, stream SSE, shell e widget React, template/autorizzazione Omics. Non è stata avviata una nuova generazione L2 contro il modello remoto o il DWH operativo. Il controllo statico dei cataloghi non è una prova di traduzione di ogni possibile messaggio diagnostico esterno.
Standards
Revisione indipendente rispetto al punto iniziale ThothII
2d1b714ebe31419d712e9c3324a5e171d5f0317d e Omics aff7581.
Due violazioni concrete del contratto: bozze dei gate non protette dal reload e
selezione di sessioni altrui persa per gli amministratori. Entrambe corrette e
riesaminate dal revisore indipendente. La protezione resta attiva anche durante
un invio e dopo un errore HTTP, fino all'accettazione e allo smontaggio del widget.
Nessun ulteriore rilievo concreto sul codice Omics o sulle euristiche di manutenibilità.
Esito finale del revisore: approvato, zero rilievi aperti.
Spec
Quattro rilievi: i due precedenti, più verifica dell'identità mancante dopo una riconnessione SSE riuscita ed errori deterministici dello stream non tradotti. Le correzioni includono test di regressione e sono state riesaminate dal revisore indipendente. Sono tradotti anche gli errori sanitizzati di avvio e le notifiche deterministiche dei gate già localizzate nella lingua fissata della sessione. Esito finale del revisore: tutti e quattro i rilievi chiusi, nessun nuovo rilievo o ampliamento ingiustificato dell'ambito.
Riepilogo iniziale: Standards 2 rilievi P2; Spec 4 rilievi P2. Gli assi restano separati; i rilievi comuni non rappresentano ulteriori difetti distinti. Riepilogo finale: Standards 0 aperti; Spec 0 aperti.
Collaudo visivo
Il collaudo con l'account locale autenticato ha trovato tre difetti non visibili nei test DOM dei componenti:
- Il contenitore CSS
@scopeincludeva l'intero livello base Tailwind e nel browser integrato non applicava i token. Il CSS era servito con HTTP 200, ma il font effettivo era Times e--backgroundrisultava vuoto. L'isolamento del reset è ora compilato in selettori ordinari, senza modificare gli stili del portale. Il browser applica Manrope e i token light/dark corretti. Revisione indipendente del CSS compilato: nessuna perdita di isolamento individuata. - La classe full costruita per interpolazione faceva eliminare il token del
margine dalla build Tailwind. Nomi di classe letterali e una regressione sulla
presenza di
--thot-shell-gutterrendono il requisito verificabile nella build. - Le griglie amministrative caricavano il tema CSS preesistente insieme al nuovo tema automatico della libreria. Griglie amministrative e anteprime ora usano un solo sistema CSS con i token della shell, eliminando il conflitto. I token vengono applicati anche ai contenitori di tema interni creati da AG Grid, che altrimenti sovrascriverebbero i colori ereditati.
Questi controlli sono stati eseguiti prima del commit di consegna. Il nuovo test
scripts/scoped-base.test.mjs viene eseguito dal comando prebuild anche in Docker.
Le prove di lingua/tema non hanno modificato dati del catalogo o avviato sessioni.
Installazione locale e recupero
Il binario nativo aggiornato è installato in /usr/local/bin/tht.
Il descrittore locale, non versionato, è
deploy/psd/thothii-installation.yaml; installation generate ha prodotto:
window.__THOTHII_CONFIG__ = {"backendBaseUrl":"/api","shell":{"mode":"full","defaultLocale":"en"}};
Il progetto Docker locale è thothii-18998cca7b0a; l'aggiornamento riguarda soltanto
core/frontend. Database, Qdrant, embedding e volumi persistenti restano invariati.
Le immagini precedenti sono conservate come
thothii-core:before-full-shell-20260913 e
thothii-frontend:before-full-shell-20260913.
Binario e descrittore precedenti sono in /private/tmp/thothii-shell-install.8idNoC
(copia temporanea locale, non backup permanente).
Il sorgente Omics aggiornato è registrato nel commit locale 95154e1.
Nessun push o deploy sul server di produzione è stato eseguito. Il collaudo
operativo sul server resta una fase del normale rilascio, seguendo la guida.
Core/frontend locali aggiornati e healthy; /api/health restituisce 200,
/config.js espone full/en e /api/auth/config conferma l'accesso locale.
Con l'account locale autenticato sono stati controllati header, cambio EN/IT,
light/dark, menu utente/logout, ingresso/uscita fullscreen tramite pulsante e
margini effettivi di 24 px. I test automatici coprono logout e sincronizzazione
con fullscreenchange, compreso il ritorno allo stato normale. L'uscita tramite
tasto Esc nativo resta da provare in un browser desktop ordinario: il comando
di tastiera automatizzato del browser integrato non l'ha riprodotta. Nessuna
promessa di collaudo completo del browser del server è implicita in queste prove.
Le preferenze locali sono state riportate a inglese e tema chiaro.