135 lines
7.6 KiB
Markdown
135 lines
7.6 KiB
Markdown
# Full shell, Omics e interfaccia bilingue — verifica
|
|
|
|
Data: 2026-09-13. Specifica: [Full shell, integrazione Omics e interfaccia bilingue](../plans/2026-09-13-full-shell-spec.md).
|
|
I cinque ticket e le loro dipendenze sono elencati nel [piano](../plans/2026-09-13-full-shell-and-portal-integration.md).
|
|
|
|
Correzione della base grafica: la prima build descritta qui non includeva i sette
|
|
commit del ramo `codex/ui-visual-review` già installati sul Mac. Il
|
|
[rapporto di integrazione](2026-09-13-visual-shell-integration.md) documenta il
|
|
recupero di font, allineamenti e layout, mantenendo le funzionalità di questa consegna.
|
|
|
|
## Risultato
|
|
|
|
- Configurazione pubblica generata dal descrittore installato; full ed embedded
|
|
usano la stessa immagine frontend. Sul Mac: `full`, locale iniziale `en`.
|
|
- 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; `OmicsPortalAdapter` incapsula 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_language` fissata 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](../operations/shell-and-localization.md) 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:
|
|
|
|
1. Il contenitore CSS `@scope` includeva 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 `--background` risultava 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.
|
|
2. 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-gutter` rendono il requisito verificabile nella build.
|
|
3. 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:
|
|
|
|
```javascript
|
|
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.
|