Skip to content

v0.5.0

Choose a tag to compare

@github-actions github-actions released this 04 Jun 19:14
fe03844

v0.5.0 — changes since v0.4.0

Features

  • inietta l'agenda/note nel prompt della sintesi (punto c2) (91c9174)
  • attivazione funzioni durante l'evento (punto d) (dce8ff2)
  • funzione Agenda/Note — checklist live opt-in (punto c) (8dfc881)
  • validazione step-2 'traduzione senza lingue target' + import-order fix (punto b) (1bfb9e6)
  • altri default da template — descrizione, retention, n° relatori (punto a) (1459610)
  • default da template per semplificare la creazione evento ai novizi (5cf2170)
  • riepilogo wizard step-5 mostra il flag multitrack (PII-sensibile) (8ca1fe4)
  • consentMultitrack in admin registrations (JSON+CSV) + consentSnapshot (832fb7d)
  • includi consentMultitrack nell'export Art.15 (9032b42)
  • consenso per-partecipante consentMultitrack (ADR-013 Fase 5 parte 2) (a2de17d)
  • opt-in evento multitrackRecordingEnabled (ADR-013 Fase 5) (e288361)
  • derisk cattura + TTL JWT bot per durata evento + trivyignore Azurite (0d55f2a)
  • Helm chart + compose + CI per recorder & controller (ADR-013 Fase 3, punto 3) (4bb77c1)
  • flusso claim-based + upload presign per-traccia (ADR-013 Fase 3) (6ae016e)
  • endpoint recorder-desired/claim/upload-url + lifecycle unificato + edge-trigger (ADR-013 Fase 3) (65cd195)
  • orchestrazione runner-agnostic (K8s + Docker) per riuso open-source (10c3e27)
  • operator riconciliante per i Job recorder (ADR-013 Fase 3) (4efa8b5)
  • storage provider signed-URL reale (Azure/S3/GCS) — ADR-013 Fase 3 (873e4a7)
  • WebRTC capture core — Puppeteer + lib-jitsi-meet per-track MediaRecorder (ADR-013 Fase 3) (d581359)
  • toast/modali + skeleton estesi a 15 superfici admin (punti 2+3) (612bc97)
  • badge stato trascrizione per riga nella libreria registrazioni (punto 1) (0362eb8)
  • token C_* + badge stato artefatti + empty-state (polish #1/#2) (17bce6f)
  • pagina gestione video — contenuto tab in Card (polish UI) (d798b39)
  • skeleton loaders al posto dei 'Caricamento…' (polish #3) (6488a6d)
  • toast + modali di conferma .italia al posto di alert/confirm nativi (polish #2) (6099d3f)
  • tab 'Post-evento' nell'evento → collega trascrizione/sintesi/traduzioni (86e7fd1)
  • pagina dedicata di gestione video (trascrizione + sintesi + traduzioni) (b465563)
  • archivio registrazioni (video-library) scopribile dall'header (69ed2af)
  • accesso diretto alla gestione trascrizione da registrazioni ed evento (1ff89aa)
  • auto-naming cluster pyannote dal dominant-speaker log (ADR-013 Fase 0) (d09135b)
  • transcript UI gestisce segmenti sovrapposti (ADR-013 Fase 4) (38a0673)
  • cattura dominant-speaker + alignment auto-naming (ADR-013 Fase 0) (76d3e47)
  • CronJob multitrack-purge (ADR-013 Fase 5) (d86b3e1)
  • cron purge tracce audio post-trascrizione (ADR-013 Fase 5) (da62d95)
  • ingest manifest multitrack + enqueue TRANSCRIBE_MULTITRACK (ADR-013 Fase 2) (4aa6159)
  • multitrack-recorder service (Fase 3) + GDPR multitrack (Fase 5 docs) (8bd0ee1)
  • worker multitrack handler + auto-naming speaker (ADR-013 Fase 2) (1d79401)
  • claim/schema wiring TRANSCRIBE_MULTITRACK (ADR-013 Fase 2) (149ec06)
  • modello dati multitrack + dominant-speaker (ADR-013 Fase 0+2) (0b1b100)
  • ADR-013 speaker attribution multi-traccia + merge logic (Fase 1) (f0f09f6)
  • editor trascrizione post-evento + waveform/timeline (f4a47de)
  • pannello bookmark del visitatore nel sidebar (ce53861)
  • suggerimento nome speaker da LLM con un click (fcbba02)
  • sample text accanto ad ogni speaker non mappato (592ca13)
  • toggle AI postprod nel wizard di creazione/modifica evento (60dead2)
  • qualità trascrizione — initial_prompt, filtro hallucination, k forzato, post-correction LLM, badge confidence (b90877c)
  • pipeline provenance — fotografia dei modelli usati per ogni registrazione (7ac0b46)
  • rebrand testi + mini-player sticky + share-at-time + bookmark + follow-mode (996afc8)
  • UX/UI professionale post-evento (hero + topic chips + speaker palette + now-speaking chip) (2514735)
  • dubbing gender-aware + pool esteso + VTT name-prefixed (48e5e54)
  • dubbing multivoce (1 voce per speaker, sempre sintetica) (d0c2e77)
  • pipeline AI locale (faster-whisper + ECAPA + Mistral via Ollama + Piper) (e4a191b)
  • endpoint download trascrizione (.txt, .srt) e sintesi (.md) (a7bc675)
  • search nella trascrizione + auto-scroll smooth centrato (dd18c8a)
  • scorciatoie tastiera complete, popover help, a11y (e69cc30)
  • i18n it/en per scorciatoie, ricerca trascrizione, menu download (ed950ba)
  • tab 'Pipeline AI' in /admin/settings (#62) (88750b1)
  • tab 'Pipeline AI' in /admin/settings con kill-switch + provider (bc13e8a)
  • card pipeline AI sulla status page pubblica (#61) (0cea503)
  • card pipeline AI sulla status page pubblica (4ce5108)
  • AI pipeline in-cluster + fix postcss CVE-2026-41305 (#59) (643b0ab)
  • pipeline AI in-cluster — trascrizione, sintesi, traduzione, dubbing (75081e8)
  • cable logAdminAction into remaining mutating admin routes (12d65e2)
  • add opt-in NetworkPolicy with default-deny + allow-list (722ea89)
  • record privileged admin actions in append-only log (18c8a28)
  • add Art. 17 right-to-erasure endpoint and UI (29f80cd)
  • align all 22 locales with EN structure + admin nav fixes (76c3a2a)
  • render the central card as a palazzo of the garden (9509b2d)
  • treat the central card as an impassable structure (4376a74)

Bug fixes

  • drift Migration Integrity (agenda id) + trivyignore piano per Azurite (1ad8f8b)
  • evidenzia i campi moderatore obbligatori al publish (no più 'campi evidenziati' fantasma) (2e678f7)
  • override form-data 2.5.5 (CVE-2025-7783) (d0b6bbf)
  • process.exit(0) a fine main — il processo non terminava (1d33489)
  • porta controller 'ctrl' non 'http' — esclude il pod dagli endpoint del Service app (22efb38)
  • idle-timer conta solo partecipanti remoti visibili (88f06a4)
  • usa il config.js reale del Jitsi + uscita pulita con 0 tracce (38ae776)
  • estensioni .js negli import relativi (ESM runtime) (84a6e5e)
  • Dockerfile — PUPPETEER_CACHE_DIR nel build stage (Chrome non trovato) (b84d1ec)
  • allinea l'ingest al contratto reale del portale (multitrack-manifest) (a1b64e4)
  • gestione trascrizione/AI raggiungibile dalla sezione Registrazioni (75453af)
  • registra artifact con language NULL (no upsert composite) (8d56874)
  • x-ms-blob-type BlockBlob su PUT presigned Azure (d77774f)
  • worker TMPDIR=/work (rootfs read-only, /tmp non scrivibile) (ce9c0a4)
  • claim ritorna 204 senza body (no-job) (2c6ab5b)
  • claim query 500 (FOR UPDATE su lato nullable) + risorse worker (9a32f87)
  • worker CronJob eredita imagePullSecrets dall'app (6a483d0)
  • mini-transcript inline + "Partecipante N" + icone provenance + hint dub (b38d588)
  • rimuovi crossOrigin dal
  • audio dub si avvia + sync video↔trascrizione word-level (7a6bcd3)
  • orchestrator conta correttamente i worker Pending (0ccd6e1)
  • defaultTimezone whitelisted in PUT /api/admin/settings (cab51a5)
  • React #137 su tab Pipeline AI + tab nav wrap su più righe (113564d)
  • green up CI for PR #59 (migration drift, license, trivy) (b86ca73)
  • bump postcss to ^8.5.10 via override (CVE-2026-41305) (66aa63d)
  • widen getClientIp fallback chain for rate-limit keys (#58) (a3f91c2)
  • widen getClientIp fallback chain for rate-limit keys (7d0efb4)
  • rate-limit admin login + strip Next-version header + add security.txt (73f8814)
  • switch CSP to nonce-based scripts, drop unsafe-inline (ffdb244)
  • admin session TTL 24h -> 4h + /api/admin/refresh (32bcd60)
  • tighten Jitsi moderator JWT TTL from 4h to 2h (3ebc417)
  • encrypt Person.displayName (rubrica) at rest (f08a987)
  • encrypt ChatMessage.senderName and text at rest (4966fcb)
  • encrypt Registration.displayName at rest (b316fba)
  • encrypt EventModerator.name and EventInvitation.name (4ce4f15)
  • unblock docker-compose APP_SECRET >= 32 bytes (#52) (e5f6ede)
  • CSP frame-ancestors + Zod schemas on admin endpoints (08bd4bd)
  • tighten Jitsi JWT TTL for participants (90 min vs 4h) (10f0594)
  • rate-limit 7 public POST endpoints (819440f)
  • encrypt EmailOutbox html/text bodies at rest (64250f2)
  • encrypt CallSession.participants JSONB at rest (531e7f7)
  • encrypt EventInvitation.email with HMAC-keyed hash (1eb4dfd)
  • encrypt moderator/organizer emails and outbox recipient (8ec846b)
  • gate Art. 15 export behind a signed email link (86d344c)
  • rate-limit registration access-token lookup (0fdb64f)
  • migrate client API calls off ?token= and warn on legacy use (c5db5d7)
  • HMAC-sign recording webhooks (707820d)
  • validate APP_SECRET length and centralize access (dcfbb55)
  • make constantTimeEqual actually constant-time (bb3543d)
  • keep IDLE/PROVISIONING users in the waiting-room garden (2ce2d9a)
  • unstuck the avatar (spawn outside card + symmetric toggle) (ac125a6)
  • make avatar movement work even when form input is focused (9d4866f)
  • cap endsAt at 4h and disable endsAt-based auto-close (704c632)
  • network-resilient rejoin after Jitsi videoConferenceLeft (e31c58c)
  • real participant name in stats-id (Jicofo logs no longer show "Judah-hqj") (2108370)
  • align schema to DB to clear Migration Integrity drift (56b2710)

Refactoring

  • design token colori (.italia) al posto di 261 hex hardcoded (polish #1) (26ed9c9)

Documentation

  • design orchestrazione recorder — operator riconciliante (edge+level triggered) (a67d07d)
  • marca multitrack-recorder come PIANIFICATO (non ancora deployato) (e035cbb)
  • report — esito finale waveform validata, sezioni allineate (26c48bc)
  • report run cluster — waveform validata end-to-end + 6 bug corretti (9310724)
  • informativa privacy + service inventory per la pipeline AI (e39602f)
  • explain why style-src 'unsafe-inline' stays + migration plan (5c19dc3)
  • add PENTEST-RFP for an external pentest vendor (eee02c9)
  • note that CodeQL needs Code Scanning enabled in repo settings (fcb898a)

CI / build

  • runs-on arc-runner-eventi-dtd → arc-runner-pa-webinar (78b9558)
  • build & push immagine recorder :dev su modifiche infra/recorder/ (ADR-013 Fase 3) (a7a7114)
  • aggiungere workflow_dispatch trigger a ci.yml (689d1c7)
  • trigger CI workflow re-run on PR #62 (2676a7e)
  • pull postgres service from mirror.gcr.io too (#57) (ef54753)
  • pull node + postgres from mirror.gcr.io to dodge Docker Hub rate-limit (44a684f)
  • make CodeQL non-blocking + retry compose on Docker Hub rate-limit (08ffd6d)
  • add actions:read permission for telemetry upload (a0c6d4b)
  • add CodeQL workflow (f6eb839)
  • docker compose plugin + bump @xmldom/xmldom past CVE-2026-41672/3/4/5 (987ffd6)
  • run on arc-runner-eventi-dtd instead of ubuntu-latest (8578ff4)

Chores

  • flip GHCR ghcr.io/italia/eventi-dtd* → pa-webinar* (43598c2)
  • eventi-dtd → PA Webinar (codice, chart, brand, docs) (c2f2866)
  • add no-console-with-pii custom rule (warn level) (134fddd)
  • appease lint (unused GDPR_ACTIONS) and refresh license-report (8b3906e)
  • pin xmldom to 0.8.x and override fast-xml-builder (7cab31b)
  • bump next, marked, next-intl to patched versions (ba6d5a3)

Tests

  • align live-flow smoke tests with waiting-room refactor (bd6a3a1)

Other

  • i18n(admin): esternalizza stringhe inline conferma/toast (gdpr-templates/publications/sessions) (f26f75f)
  • deps(worker): gender-guesser per name_gender inference fallback (876ff66)
  • ux(postprod): testi più chiari, voice cloning explicit, status card informativa (6b1b7b2)
  • security: hardening admin/postprod surface (audit review) (9340207)
  • i18n(gdpr): seed export+erasure keys across the remaining 20 locales (d8f6322)
  • i18n: native translations for Irish (ga) (598c89b)
  • i18n: native translations for 21 EU locales (Irish pending) (16ba10f)

Full diff: v0.4.0...v0.5.0