You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix(senato-votes): derive legislature from --ddl-uri, not default 19 (#61)
* fix(senato-votes): derive legislature from --ddl-uri, not default 19
L'URI Senato dati.senato.it/ddl/{N} non codifica la legislatura, ma il
DDL espone osr:legislatura. Prima il filtro osr:legislatura era cablato
al default 19: --ddl-uri di un DDL di leg. diversa, senza --legislature
esplicito, dava un falso negativo silenzioso ("Nessuna votazione
trovata"). Ora la legislatura effettiva è derivata dal DDL e usata in
tutte le query, con fallback all'input. Allinea il comportamento a
votes --bill-code (Camera). +1 test di integrazione.
Chiude #60
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
* docs(log): headline accurata — legislatura derivata dal DDL, non dall'URI
L'URI dati.senato.it/ddl/{N} non codifica la legislatura (identifica solo
il DDL); la legislatura è letta da osr:legislatura del DDL. Allinea
l'headline al corpo della voce.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
* ci: rimuovi job live_integration (sempre rosso, zero segnale)
I test live interrogano dati.camera.it/dati.senato.it, che bloccano in
modo sistematico i runner GitHub (anti-bot/IP CI): il job falliva sempre
con 'SPARQL request failed after 5 attempts', senza distinguere una vera
regressione dal blocco di rete. Rete di sicurezza: testing live in locale
prima di ogni release (RELEASING.md).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: LOG.md
+1Lines changed: 1 addition & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,6 +2,7 @@
2
2
3
3
## 2026-07-11
4
4
5
+
-**fix `senato-votes --ddl-uri` — legislatura derivata dal DDL (non dal default 19)** (#60, branch `fix/senato-votes-ddl-legislature`). Prima `--ddl-uri` di un DDL di legislatura ≠ 19, senza `--legislature` esplicito, dava un **falso negativo silenzioso** ("Nessuna votazione trovata"): il filtro `osr:legislatura` cablato al default 19 escludeva le sedute del DDL. L'URI Senato `dati.senato.it/ddl/{N}` non codifica la legislatura, ma il DDL espone `osr:legislatura`: ora quando c'è `--ddl-uri` la legislatura effettiva è derivata dal DDL (una query `<ddlUri> osr:legislatura ?leg`) e usata in tutte le query, con fallback all'input. Allinea il comportamento a `votes --bill-code` (Camera) che di default non vincola la legislatura. Ripro: DDL 52988 (S.1811, decreto lockdown DL 19/2020, leg.18) ora torna il voto `18-219-1` anche senza `--legislature`, con `rss_url` corretto su `/18`. +1 test di integrazione. Emerso dal run news-driven `docs/news-agent/2026-07-11_18-11.md`.
5
6
-**v0.25.0** — release minor. Raccoglie **tutte** le PR mergiate dopo la v0.24.2 (#54–#59). Due nuove capacità utente: (1) **`speeches` filtro temporale**`--date-from`/`--date-to` + colonna `date` su entrambe le camere (#54, chiude #37); (2) **geografia di nascita normalizzata**`birth_province`/`birth_country`/`birth_region` su `senators`/`deputies`, regione derivata da SITUAS/ISTAT via `opensituas`, copertura 100% (#59, chiude #24/#23; corretto l'assunto errato "Senato solo città"). Più fix: **`bill-progress --branch C`** ora dà la timeline Camera (#55, chiude #41) e i follow-up di robustezza SPARQL/paginazione (#56/#57/#58). 43 tool invariati, 158/158 test verdi. Dettaglio nelle voci sotto.
6
7
- **feat geografia di nascita normalizzata — provincia, nazione, regione su entrambe le camere** (#24/#23, branch `feat/birth-geography-province-region`). Corretto un **assunto sbagliato** (era anche nel codice e nel wiki): il Senato **non** espone "solo la città". Ri-verificato con `COUNT` su tutta la leg.19 (254 senatori): `osr:cittaNascita` 254/254, `osr:provinciaNascita` 250/254 (i 4 mancanti sono i nati all'estero), `osr:nazioneNascita` 254/254 (`Italia` o stato estero). `senators list` ora restituisce `birth_province`, `birth_country`, `birth_region`. **Regione derivata** una volta sola in `src/core/province-region.ts` (modulo TS bundle-safe) da SITUAS/ISTAT report 64 via CLI `opensituas`, date-accurate (union snapshot 2010 + 2020 + più recente per le province soppresse/rinominate, + 3 alias per le forme brevi del Senato): copertura 100% (0 province non risolte). **Camera** (`deputies list`): la geografia è solo uno slug nell'URI (`comune_provincia_regione`), non triple — ora decodificata in `birth_city`/`birth_province`/`birth_country`/`birth_region` con disambiguazione dello slug a 2 parti (Valle d'Aosta / Trentino-Alto Adige `comune_regione` vs estero `comune_stato`) e `birth_region` portata alla **stessa** forma canonica del Senato (verificato: "Veneto" identico tra camere). `birth_province`/`birth_country` restano nella forma nativa di ciascuna fonte (nessun canonicalizzatore province cross-camera). Wiki `dati-anagrafici.md`/`index.md` corretti; nota ai gestori Camera (geografia non strutturata) in `docs/note-gestori-lod/`. +10 test unitari (risorsa provincia→regione + parser slug Camera), 158/158 verdi.
7
8
-**follow-up residuale commenti PR #56/#57 (`bill-progress`)**: migliorato l'hint del ramo Camera su risultato vuoto (ora segnala che i filtri `keyword`/intervallo di date o la paginazione `limit`/`offset` possono escludere tutte le righe), ordinamento timeline Camera reso stabile per paginazione con `?st` come tie-breaker in `ORDER BY` (non proiettato in `SELECT DISTINCT`, che ne altererebbe il dedup), escape robusto dei literal SPARQL per `keyword` (Senato + Camera) con helper dedicato che escapa solo `\ " newline CR` per la grammatica STRING_LITERAL2 (non `JSON.stringify`, che emette `\uXXXX` per i controlli, rifiutato da alcuni parser), e descrizioni `dateFrom/dateTo` chiarite sui due significati (presentazione Senato vs data stato-iter Camera).
0 commit comments