# Revisione grafica: consegna su worktree e Docker Stato: **pubblicata per revisione visiva, non integrata in main**. ## Dove provarla - Docker locale: . - Worktree: `/Users/mp/projects/ThothII-visual-review`. - Ramo: `codex/ui-visual-review`. - Base preservata: `2d1b714ebe31419d712e9c3324a5e171d5f0317d`. - Checkout originale: `/Users/mp/projects/ThothII`, ramo `codex/prototype-administration-pages`, lasciato intatto, incluse le note non ancora committate e i prototipi. Non è stato eseguito alcun merge, push o aggiornamento di Gitea. Questa consegna richiede la revisione ottica del proprietario prima dell'adozione. ## Interventi Impeccable, registro product, ha guidato le scelte: Manrope sans-serif locale per tutta la UI; niente serif nei componenti o nei documenti; cinque ruoli tipografici condivisi; monospace conservato per contenuto tecnico. I font non dipendono più da Google Fonts. Le etichette ordinarie non usano più monospace maiuscolo. Le piccole dimensioni arbitrarie dei componenti sono state ricondotte a 12, 14 o 16 px. Titoli Admin a 24 px; intestazioni, controlli e prosa sono coerenti fra superfici. Il rosso resta l'accento principale. Date e protocolli sono neutri. Verde e ambra usano token semantici leggibili anche in tema scuro. La guida Pi non è più presentata come un grande avviso ambra. Il tema delle utility segue il tema dell'app/portale, non autonomamente quello del sistema operativo. Placeholder e focus sono più leggibili. Interventi specifici: - Workspace: tipografia e stati uniformati, mantenute quattro schede e preprocessing. - Database: riepilogo più compatto, Catalog summary al posto di Fleet summary, intestazioni delle griglie senza monospace maiuscolo, selezioni compatibili con il tema scuro. - Memory: titoli e form sans-serif; messaggio distinto per libreria vuota e nessun risultato filtrato; paginazione mostrata quando serve. - Evidence: istruzioni tecniche espandibili, percorso host sempre disponibile e copiabile nella relativa sezione, filtri responsive con ricerca di larghezza utile. - Pi: guida leggibile a 16 px, codice correttamente su più righe, tab OS coerenti, testo che distingue default d'installazione e modello selezionato, Available models. - Core/sessioni: uniformazione estetica senza modifiche al workflow; otto fasi, gate, log, input e gestione sessioni conservati. Nei layout compatti il lettore documenti usa lo spazio disponibile anziché una colonna illeggibile. Il modello globale, i default, le autorizzazioni e i blocchi di navigazione non sono stati ridisegnati. Non sono state eseguite elaborazioni LLM o mutate informazioni applicative per questa verifica. ## Verifica | Verifica | Esito | | --- | --- | | Frontend, suite Vitest | 679 test passati | | TypeScript + build produzione | Passati | | Playwright dedicato | 7 scenari passati, nessun retry | | Larghezze | 390, 649, 768, 1280, 1600 CSS px | | Superfici Playwright | Cinque Admin, guida Pi, Core iniziale, My/All sessions e lettore archivio | | Interazioni | Tab OS da tastiera, modifica Memory trattenuta durante tentativo di navigazione, ritorno al Core dopo annullamento | | Tema | Chiaro indipendente dal tema OS; scuro tramite attributo del portale | | Spazio host | Simulazione di 240 px riservati al menu sinistro e 72 px all'header, con utility concorrente | | Docker reale | Accesso e navigazione fra le cinque pagine Admin; titolo sans-serif 24 px e nessun overflow dell'intera pagina nel viewport verificato | I test visuali usano fixture e intercettano tutte le richieste API prima che possano raggiungere un'installazione. Nessuna scrittura è ammessa: ogni scenario controlla che non ne siano state tentate. Gli screenshot sono negli output locali ignorati da Git, `frontend/test-results/visual-review/`. Comandi di verifica nel worktree: ```sh cd /Users/mp/projects/ThothII-visual-review/frontend npm test -- --maxWorkers=2 --minWorkers=1 npm run build npx playwright test --config playwright.visual.config.ts ``` Contrasti calcolati sulle coppie di token opachi di riferimento, non su ogni possibile composizione/hover: | Coppia | Chiaro | Scuro | | --- | --- | --- | | Testo principale / card | 15,16:1 | 13,61:1 | | Testo secondario / card | 5,67:1 | 8,40:1 | | Successo / card | 6,76:1 | 8,69:1 | | Avvertimento / card | 6,64:1 | 9,44:1 | | Bordo input / card | 3,36:1 | 4,56:1 | | Testo pulsante primario / riempimento | 5,03:1 | 6,83:1 | Limiti: non è una certificazione WCAG completa; non è stata eseguita una nuova sessione LLM sul Docker reale. La prova con geometria host non equivale all'integrazione nel vero Omics Portal. Lo zoom browser 200% e tutte le combinazioni di hover/trasparenza non sono stati verificati esaustivamente. I test funzionali già esistenti coprono fasi, sessioni e protezioni; le modifiche non cambiano la loro logica. ## Docker e ripristino Progetto Compose: `thothii-18998cca7b0a`. È stato ricreato **solo frontend** con `--no-deps --no-build` dopo una build esplicita dal nuovo worktree. | Elemento | Valore verificato | | --- | --- | | Immagine nuova | `thothii-frontend:visual-review-20260912` | | Digest immagine nuova | `sha256:eeccb28f5c5cd78da08fd007e259e3fb88f26b4f1415a825a3b5829061f79ed3` | | Immagine precedente conservata | `thothii-frontend:before-visual-review-20260912` | | Digest precedente | `sha256:635f25477f11a476034052e87b2129ae26a9a049c4bedde0ada3a1d65e4ee924` | | Container frontend nuovo | `50dd012cd400`, healthy | | Core invariato | `0dcce917be0c`, healthy | | Catalog DB invariato | `89755e439dc7`, healthy | | Qdrant invariato | `52ebd5c47955`, healthy | | Embedding invariato | `7f690e534eda`, healthy | | Bundle servito | `/index-Cd-Ma0ye.js`, `/index-CptC2K6s.css` | Per tornare al look precedente, senza rebuild e senza modificare dati o Core: ```sh bash /private/tmp/thothii-memory-preview.sh \ -f /Users/mp/projects/ThothII-visual-review/deploy/compose.visual-review-rollback.yaml \ up -d --no-deps --no-build frontend ``` Per ripubblicare il look di revisione già costruito: ```sh bash /private/tmp/thothii-memory-preview.sh \ -f /Users/mp/projects/ThothII-visual-review/deploy/compose.visual-review.yaml \ up -d --no-deps --no-build frontend ``` Questi override sono deliberatamente locali e usano il launcher dell'installazione già presente; non vanno applicati sul server PSD. Il launcher in `/private/tmp` dipende dai profili locali esistenti: se rimosso, ricostruire l'invocazione dai profili dell'installazione, senza sostituire configurazioni o volumi. Le immagini di review e rollback restano taggate: non eseguire una pulizia delle immagini prima della decisione. ## Decisione successiva Il proprietario valuta il look su Docker. Solo dopo approvazione si procederà con l'integrazione su `main`, verificando anche l'eventuale differenza fra `main` e il ramo di partenza. Un rifiuto della revisione richiede soltanto il ripristino frontend sopra indicato; codice e prototipi precedenti sono preservati.