Skip to content

Synapse 1.3.0 — «Foundations» 🏗️

Lo sprint che paga il debito strutturale prima del multi-vault (v1.4 → 2.0): rifattorizzazione, correttezza, sicurezza e mobile. Nessuna feature AI nuova — di proposito. Prima release tagliata da main secondo la nuova policy di CONTRIBUTING.

🧱 Fondamenta

  • main.py decomposto: da 9.311 a ~1.400 righe, 13 router per dominio (app/routers/*) — contratto API congelato e provato: OpenAPI byte-identico prima/dopo
  • Lineage di release riallineata: v1.2.4–1.2.6 mergiate in main; regola «i tag si tagliano solo da main» in CONTRIBUTING

🐛 Correttezza (2 P1 + 18 P2 dal code review della 1.2.6)

  • Il ricalcolo del grafo non congela più il server: igraph/FA2/Louvain girano in un thread executor — richieste, stream e watcher restano fluidi anche su vault da migliaia di pagine
  • La risposta della chat non finisce più nella conversazione sbagliata: abort dello stream al cambio conversazione/unmount + binding della risposta alla conversazione d'origine
  • Dialog «Continua a modificare» senza più loop infinito; scrittura atomica di index.md; stream provider chiusi su timeout/errore; wikilink con confini di parola ([[Cat|cat]]egory addio); editing concorrente → 409 invece di perdita silenziosa; e altri 10 fix con test di regressione

🔒 Sicurezza

  • Guardia SSRF sui fetch del deep-research: solo http/https, blocco IP privati/metadata su ogni hop, max 3 redirect
  • Auth esente per metodo oltre che per path; Postgres non più esposto sull'host; credenziali via .env; rate limit per-IP sugli avvii di chat/ingest/research

📱 iPhone e iPad (ADR-0057)

  • 3 tier di viewport (mobile ≤767 / tablet 768–1023 / desktop ≥1024): drawer per albero, dettagli e conversazioni su mobile; safe-area per notch/home indicator; 100dvh per Safari
  • Touch reattivo: eliminato il ritardo di ~350ms sul tap, target ≥44px reali, feedback al tocco istantaneo, azioni conversazione sempre visibili su touch

⚙️ CI/CD

  • Job E2E Playwright in CI con stack Docker + seed automatico; immagini multi-arch (amd64+arm64) — Synapse gira anche su Raspberry Pi/ARM; make bump per il version bump atomico a 4 file; workflow release-cut per tagliare release da Actions

Artefatti

Synapse_1.3.0_aarch64.dmg · _x64-setup.exe · synapse-clipper-1.3.0.zip · latest.json firmato · immagini GHCR backend/frontend/marker v1.3.0+latest (amd64+arm64)

Qualità: 1820 test backend + 1750 frontend; mypy strict 0 errori; OpenAPI zero-drift; 2 nuovi ADR (0056 indicizzato, 0057 responsive); invarianti I1–I9 verificate.