Synapse 1.3.5 β Allineamento dei file-cardine a llm_wiki ποΈ¶
Release di paritΓ di formato con nashsu/llm_wiki sui quattro file-cardine del vault
(schema.md, log.md, overview.md, purpose.md) e sul frontmatter delle pagine generate.
overview.md e purpose.md erano giΓ allineati; questa release chiude i due divari residui β
schema.md (era uno stub) e log.md (era un marker log macchina) β mantenendo gli invarianti.
π schema.md β da stub a contratto completo¶
Lo schema di bootstrap (vault.py) e il vault reale ora descrivono l'intero contratto che
l'AI di ingest e i curatori umani seguono, in stile llm_wiki ma fedele a Synapse:
- Page Types β directory (entity/concept/source/query/comparison/synthesis + overview/index/log)
- Naming Conventions (kebab-case, author-year-topic per le fonti, question-slug per le query)
- Frontmatter completo, inclusi lang (F3) e i campi opzionali delle fonti (authors/year/url/venue)
- Index Format, Log Format, Cross-referencing Rules, Contradiction Handling
π log.md β da marker macchina a diario narrativo (K4)¶
append_log ora scrive un log narrativo, raggruppato per giorno, allineato a llm_wiki e
ancora append-only + machine-parseable (K4 preservato):
## 2026-07-06
- 19:52:54Z Β· indexed Β· concept Β· [[Cloud Licensing]] β wiki/concepts/cloud-licensing.md
- 19:53:10Z Β· deleted Β· wiki/concepts/stale-page.md
- Header
## YYYY-MM-DDscritto una volta al giorno; esattamente un bullet per ingest (AC-K4-1) - Verbo azione (
indexed/deleted), tipo pagina e wikilink al titolo quando noti - Formato centralizzato: anche la cancellazione pagina (
DELETE /pages) passa daappend_log - Lo storico esistente non viene riscritto (append-only, I5/K4); le voci nuove usano il nuovo formato
π·οΈ Frontmatter β created / updated¶
Ogni pagina generata (write_wiki_page) ora porta created e updated (date-only, Obsidian-friendly):
- created Γ¨ impostato una volta e preservato attraverso le rigenerazioni (letto dal file su disco)
- updated avanza a ogni scrittura
- L'hash Γ¨ calcolato sugli stessi byte scritti su disco β nessun falso mismatch nell'optimistic-lock (ADR-0035)
π€ CI β stop alla deprecation Node 20¶
GitHub Actions forzava su Node 24 le action ancora su Node 20. Pin aggiornati alle major correnti (luglio 2026) su tutti i workflow (ci.yml, desktop-release.yml, release-cut.yml, release-notes-sync.yml):
- actions/checkout v4 β v5
- docker/build-push-action v5 β v7
- docker/login-action v3 β v4
- docker/setup-buildx-action v3 β v4
- docker/setup-qemu-action v3 β v4
β Verifica¶
- Suite backend verde sulle aree toccate (ingest incrementale, save-to-wiki, obsidian-check, cascade-delete, smoke provider 3-backend); ruff/mypy puliti sui moduli modificati
- Fallimenti locali residui = sole dipendenze opzionali non installate in dev (
fa2_modified/igraph,pypdf) β verdi in CI/Docker - Nessuna modifica agli invarianti: K4 resta append-only + parseable; I5 Obsidian-valid; I1 indice incrementale
Note¶
AC-K4-1/2evolvono nel formato (una voce narrativa per ingest) mantenendo la semantica (append-only, una voce per ingest); testtest_ingest_incrementalaggiornati di conseguenza- La popolazione automatica di
authors/year/url/venuesulle source page resta un'estensione futura (richiede estrazione lato provider); lo schema li documenta eextra="allow"li round-trippa se un provider li emette