[DOCS] Contesto: PWA v1.15.0 pushata+verificata + cron supervisore conferma autonoma (4 cicli rc=0)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
36513fa722
commit
eeeb014c49
@@ -11,7 +11,7 @@ NIS2 reso **PWA installabile** su Android (Chrome) e iOS/iPadOS (Safari "Aggiung
|
||||
- **Head**: tag PWA iniettati in **77 HTML** (64 + 6 admin + 7 subdir, escluso `offline.html`); viewport normalizzato a `viewport-fit=cover` **mantenendo lo zoom** (WCAG 1.4.4).
|
||||
- **AGID/WCAG**: Bootstrap Italia (già live), zoom+orientamento liberi, **touch target ≥44px** (`@media (pointer: coarse)` in `style.css`), safe-area in standalone. "Dichiarazione di accessibilità" obbligatoria solo per PA → opzionale, non implementata.
|
||||
- **Rigenerare**: `node scripts/gen-pwa-icons.mjs` (icone) · `node scripts/inject-pwa-head.mjs` (tag head, idempotente). Tutto **statico** → live via bind-mount, nessun USR2.
|
||||
- Bump `version.json` 1.14.1 → **1.15.0**. **commit/push in attesa di conferma utente** al momento del salvataggio.
|
||||
- Bump `version.json` 1.14.1 → **1.15.0**. **Committato `36513fa`** (21:09 del 14/6) e **pushato su Gitea** (`b80bf23..36513fa`, 00:38 del 15/6, via host con chiave fresca). **Verificato end-to-end**: manifest JSON valido + campi installabilità, sw.js/pwa.js sintassi OK, **70 pagine** servite con manifest+pwa.js (0 gap), artefatti **live 200** su prod (manifest/sw/offline/icone), AGID OK (0 pagine bloccano lo zoom, touch-target ≥44px, safe-area standalone, icone maskable).
|
||||
|
||||
### Supervisore autonomo ticket (lavoro principale di oggi)
|
||||
NIS2 = **primo adopter LIVE** dello standard AgileHub `autonomous-supervisor-agent` (`hub_standards` id=32). Un agente `claude -p --model opus` headless (chiave SSH **effimera per ciclo**) fa da supervisore **end-to-end** ai ticket NIS2 → **NIS2 esce dal `ticket-agent-cron` generico**.
|
||||
@@ -21,9 +21,12 @@ NIS2 = **primo adopter LIVE** dello standard AgileHub `autonomous-supervisor-age
|
||||
- **Doc archivio**: `docs/INCOMING_FROM_AGILEHUB_2026_06_14_supervisor_adoption.md` → commit `489a032` (verificato su Gitea via `ls-remote`).
|
||||
- **Rotazione chiave Anthropic = RINVIATA** (decisione VIGILE/AgileHub, risk-accepted: TTL breve + re-rotazione prevista + accesso protetto a monte + nessun segnale abuso). Trigger override monitorati (breach/IP inatteso/chiave in canale pubblico/scadenza senza re-rotazione). **Verificato NIS2-side**: la chiave esposta NON è in repo/git-history/`.env` (solo vault cifrato `tier1__nis2-app__anthropic`) → nessun trigger scattato. Il cron supervisore usa l'**OAuth della flotta**, non queste API key. Memoria: `project_autonomous_supervisor`.
|
||||
|
||||
### In corso al momento del salvataggio (~16:2x CEST)
|
||||
- **Verifica primo giro cron 16:17** (auto, AgileHub host-side, mi pinga ~16:28) → poi mio check indipendente: HEAD nis2 invariato a `489a032` (coda vuota = 0 commit), nuova entry ciclo audit JSONL, 0 orfani auth devapp3@, heartbeat email.
|
||||
- (TRPG, **non NIS2**) db-job 20: poller AgileHub attivo (dry-run → approve → execute).
|
||||
### Cron supervisore — confermato che parte DA SOLO (giri sera 14/6 → notte 15/6)
|
||||
- **4 cicli `rc=0` no-op** verificati nell'audit JSONL: **16:17 / 20:17 / 00:17** (+ run osservate #366/#367). Ogni giro: pre-check OK (no kill switch, no `agent-working.lock`), chiave effimera installata→`cycle_cleanup_done`, **4 code tenant 7 vuote**, nessuna release, **heartbeat consegnato** a cristiano.benassati@ (HTTP 201). HEAD non cambia ai giri (no-op).
|
||||
- **Chi-ha-fatto-cosa**: il commit `36513fa` (PWA, 21:09) **NON è del supervisore** — nell'audit non c'è alcun ciclo alle 21:09 (giri solo a `:17`). Era lavoro interattivo mio. Dubbio chiuso.
|
||||
- **Monitoraggio de-escalato (concordato con utente)**: il supervisore è **indipendente** (cron server + chiave effimera propria per ciclo + heartbeat al referente) → il mio check host-side è un **livello bonus**, non una dipendenza di sicurezza. Check **all'occasione**, niente poll ansioso.
|
||||
- ⚠️ **Lezione operativa — la chiave SSH host del MIO monitoraggio ruota ~14h**: scaduta tra le 20:27 e le 00:16 (push + check host bloccati in quella finestra), AgileHub ne ha droppata una fresca in `/projects/nis2-agile/.ssh-temp/agilehub-host-temp` (00:38) → ripristinato. NB: è cosa diversa dalla chiave effimera che il *supervisore* si genera da sé per ciclo (quella non dipende da me).
|
||||
- (TRPG, **non NIS2**) db-job 20: poller AgileHub — fuori scope NIS2.
|
||||
|
||||
### Lavoro 13/6 (avatar/formazione + feedback) — dettaglio in memoria, qui sintesi
|
||||
- **Avatar di prodotto FORMAZIONE-first**: 5 endpoint `/api/demo/*`, dataset demo 996001 (RO) + 996002 (sandbox), guard `applyDemoGuard` (read 200/write 403), manifest tour `nis2-tour-2026.json` (10 step), frontend demo-mode (`?demo=`), tassonomia 10mod/28lez + banca esercizi. Collaudo E2E PASS sul subdomain. Memoria: `project_demo_avatar`. Handoff: `docs/OUTGOING_TO_AGILEHUB_2026_06_13`.
|
||||
@@ -33,7 +36,7 @@ NIS2 = **primo adopter LIVE** dello standard AgileHub `autonomous-supervisor-age
|
||||
### Aperti / prossimi
|
||||
- **Osservazione supervisore 3 giorni** → `hub_standards_adoption`[id=32, nis2] = **implemented** ~21/6 (passiva, kill switch a portata).
|
||||
- Backlog/debito: cache headers server-side (evita i bump manuali `?v=`) · token widget a basso privilegio (AgileHub-side).
|
||||
- Residuo precedente ancora valido: commit/push `docs/sql/039_integrity_keys.sql` (vedi sotto, 12/6).
|
||||
- ✅ `docs/sql/039_integrity_keys.sql` ora **committato+pushato** (in `b80bf23`, su Gitea).
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user