# Correzione input sessione embedded e Memory vuota ## Stato **Rilascio operativo eseguito il 14 settembre 2026 alle 17:18 CEST**, dopo l'autorizzazione esplicita del proprietario al riavvio. Core e frontend sono healthy; le nuove ammissioni sono riaperte (`active: false`, `admissions: 0`). Non risultavano processi Pi RPC attivi prima del fermo. L'inventario resta identico: una sessione `open` e una `closed`, entrambe non archiviate. Il checkout operativo `/srv/thothii-v2/source/ThothII` è stato aggiornato in fast-forward al commit Gitea `d6cdffea629daf92cae8392eb1ebb3bb6f275f55`. ## Cause e correzioni - La nuova `.thot-host` usa `100dvh`; Omics limita invece `#root` allo spazio sotto il topbar e ne nasconde l'overflow. La prova browser riproduce controlli che terminano a 821 px con il contenitore che termina a 782 px. La shell embedded ora ha `max-height: 100%`, così rispetta il contenitore; il fallback alla viewport e il contratto `--thoth-app-height` restano utilizzabili. - Nell'installazione reale PostgreSQL contiene zero Memory Card e la collection `psd-clinical-memory` zero punti, senza vettore sparse BM25. Il workflow interrogava comunque embedding/Qdrant e trasformava `BM25 collection configuration mismatch` in `memory_unavailable`, status 503. Il recupero ora restituisce `[]` dopo aver verificato in PostgreSQL che l'archivio è vuoto. Gli errori dell'archivio autorevole continuano a propagarsi. `memory rules` calcola il vettore soltanto se serve e lo condivide fra le due famiglie. Nessuna migrazione, modifica di card, indice, DWH o autenticazione è necessaria. ## Verifiche eseguite - Riproduzione live: `tht memory search` restituiva 503. - Confronto delle immagini attuale/candidata, con PostgreSQL e Qdrant reali e montaggi read-only: attuale exit 1/status 503; candidata exit 0/`[]`. La configurazione diagnostica non contiene credenziali DWH e non interroga il DWH. - 54 test Memory superati, 1 skipped, 2 deselected secondo la configurazione pytest; inclusi test PostgreSQL/Qdrant reali e regressione CLI archivio vuoto. - 90 test frontend superati: shell host, composer, creazione e gestione sessioni. - 5 scenari Playwright superati: sessione attiva embedded a 390/1280 px con input multilinea e apertura del dialogo di arresto; composer full dopo navigazione amministrativa; geometria host con header/rail. - TypeScript, build frontend, Ruff sui file Python modificati, `git diff --check` e scansione layout superati. Entrambe le build Docker completate; smoke della configurazione frontend superato. - Screenshot verificati in `frontend/test-results/visual-review/`. ## Immagini distribuite e controlli server Le immagini candidate già collaudate sono quelle ora in esecuzione. Container core `1e71b0abd5aa` e frontend `45387534e8ad` avviati rispettivamente alle 15:18:43 e 15:18:49 UTC. Catalogo, Qdrant, embedding e Omics web non sono stati ricreati. Nginx Omics è stato verificato e ricaricato per risolvere gli indirizzi aggiornati. | Immagine distribuita | ID | | --- | --- | | `thothii-v2-core:49333a2d-session-memory-fix` | `sha256:ff4c435abd67c57e1e91e6e560dae73e67350ca499a5aedca3ffa517b9f59ee0` | | `thothii-v2-frontend:49333a2d-session-memory-fix` | `sha256:35933317769f3e12953f3b144d51f8fc2e7e9f7c4830eba80cc626f757f5bf0d` | Controlli dopo il riavvio: - `memory search` e `memory solved-search` nel core distribuito: exit 0, `[]`. - `workflow-doctor`: `ready: true`, un workspace; inventario sessioni invariato. - HTTP `/health`: `status: ok`; tutti i servizi richiesti healthy. - Omics serve config embedded/en e asset con HTTP 200: `index-BpY9Lzwz.js`, `index-BhJrKSGn.css`; verificata nel CSS la regola di altezza corretta. - `/datamart-builder/api/me` senza login continua a rispondere 403. - `nginx -t` superato; reload completato; TTL manifest Django trascorso. - `tht status`: exit 0; `tht doctor --json`: `ok: true`, 13/13 controlli passati. - Nessun errore di avvio rilevato nei log core. Backup protetto in `/srv/thothii-v2/backups/20260914-session-memory-fix` (directory 0700): operator.env, descriptor e override precedenti, archivio di data, workspace-registry e Pi creato a core fermo, dump logico PostgreSQL e snapshot nativo Qdrant. Elenco tar e `pg_restore --list` validati; tutti gli SHA256 verificati. Le immagini precedenti restano anche con tag `before-session-memory-fix-20260914`. Nessuna migrazione o modifica al DWH. Il rollback normale resta applicativo. ## Comandi di rilascio e diagnostica Il seguente launcher conserva progetto, env file e ordine degli override. Le ammissioni sono state bloccate e il core fermato prima del backup: ```bash thoth_fix_compose() { sudo docker compose --project-name thothii-7f901b48fe35 \ --project-directory /srv/thothii-v2/source/ThothII \ --env-file /srv/thothii-v2/operator/operator.env \ -f /srv/thothii-v2/source/ThothII/compose.yaml \ -f /srv/thothii-v2/source/ThothII/deploy/compose.server.yaml \ -f /srv/thothii-v2/source/ThothII/deploy/compose.git-ssh.yaml \ -f /srv/thothii-v2/operator/compose.portal-upstream.yaml \ -f /srv/thothii-v2/source/ThothII/deploy/psd-server-v2/generated/compose.models.yaml "$@" } thoth_fix_compose exec -T core node /app/backend/dist/operator-command.js maintenance-activate thoth_fix_compose exec -T core node /app/backend/dist/operator-command.js maintenance-status thoth_fix_compose stop --timeout 45 core ``` Dopo il backup è stato aggiornato esclusivamente `THTII_RELEASE_IMAGE_TAG` in `/srv/thothii-v2/operator/operator.env` a `49333a2d-session-memory-fix`, preservando altri valori, proprietario e permessi. Avvio e reload eseguiti: ```bash thoth_fix_compose up -d --no-deps --no-build core frontend sudo docker exec omics_portal-nginx-1 nginx -t sudo docker exec omics_portal-nginx-1 nginx -s reload ``` Il CLI legge i segreti soltanto con l'UID proprietario (10001). L'invocazione come root viene rifiutata dal controllo di proprietà; nessun file segreto è stato modificato. Per la diagnostica è stata usata una configurazione Docker temporanea vuota, evitando la directory `/root/.docker` inaccessibile a quell'UID: ```bash sudo install -d -m 0700 -o 10001 -g 1006 /tmp/thoth-owner-docker thoth_fix_cli() { sudo env DOCKER_CONFIG=/tmp/thoth-owner-docker \ setpriv --reuid=10001 --regid=1006 --groups=1006,1014,988 \ /usr/local/bin/tht --installation \ /srv/thothii-v2/source/ThothII/deploy/psd-server-v2/thothii-installation.yaml "$@" } thoth_fix_cli status thoth_fix_cli doctor --json ``` Riapertura dopo i controlli runtime: ```bash thoth_fix_compose exec -T core node /app/backend/dist/operator-command.js maintenance-deactivate ``` Rollback applicativo: ripristinare l'operator.env protetto, ricreare solo core/frontend con lo stesso launcher, verificare e ricaricare nginx. Per riallineare anche i sorgenti preparare il revert del solo commit `d6cdffea`, preservando le modifiche successive. Non occorre ripristinare PostgreSQL o indici per un rollback di queste due correzioni. ## Accettazione interattiva Le prove browser automatiche su input e arresto sono passate prima del rilascio; la distribuzione degli asset corretti è verificata attraverso il proxy reale. Resta da confermare il comportamento nella sessione autenticata del proprietario, ricaricando la pagina Omics. Il collaudo non ha creato sessioni workflow reali né invocato un modello generativo; non sostituisce l'accettazione interattiva completa Omics/IdP documentata nella matrice di autenticazione.