Skip to content

Commit ee881df

Browse files
aborrusoclaude
andcommitted
fix(bill-progress): hint senza parametro inesistente + LOG allineato all'escaper reale
Commenti Copilot post-merge su PR #57: - l'hint Camera non cita più "date" (parametro inesistente): nomina i filtri reali (keyword, intervallo di date) e la paginazione (limit/offset) - LOG.md aggiornato: l'escape SPARQL usa un helper dedicato, non JSON.stringify Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1 parent 3603b8a commit ee881df

2 files changed

Lines changed: 2 additions & 2 deletions

File tree

LOG.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
## 2026-07-11
44

5-
- **follow-up residuale commenti PR #56 (`bill-progress`)**: migliorato l'hint del ramo Camera su risultato vuoto (ora segnala esplicitamente che `keyword/date/limit/offset` possono escludere tutte le righe), ordinamento timeline Camera reso stabile per paginazione (`ORDER BY ?date ?st`), escape robusto dei literal SPARQL con `JSON.stringify` per `keyword` (Senato + Camera), e descrizioni `dateFrom/dateTo` chiarite sui due significati (presentazione Senato vs data stato-iter Camera).
5+
- **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).
66
- **CI PR stabilizzata su due livelli**: il check richiesto `ci` ora esegue solo build + typecheck + test deterministici (esclude `src/tools/tools.test.ts` e `src/tools/sparql.test.ts` dipendenti da endpoint live). Aggiunto job `live_integration` su PR con `continue-on-error` per mantenere visibilità sui test reali Camera/Senato senza bloccare il merge per anti-bot/instabilità esterna.
77
- **follow-up commenti review su `bill-progress`**: nel ramo Camera (`number + branch=C`) ora vengono applicati anche i filtri input (`keyword`, `dateFrom/dateTo`, `limit`, `offset`) invece di essere ignorati nel return anticipato. Aggiunto `hint` dinamico specifico quando la timeline Camera è vuota (evita messaggi fuorvianti orientati al Senato) e rese neutrali rispetto all'entrypoint le `describe()` di `number`/`branch` (niente grafia `--flag`, testo valido sia per CLI sia MCP). Inclusi test su paginazione e hint del ramo C.
88
- **fix `bill-progress``--number --branch C` dà la timeline Camera** (#41, branch `fix/bill-progress-branch-c-camera`). Prima `--number 2617 --branch C --legislature 18` restituiva il record Senato di rimando (`osr:ramo="C"`: una riga, `phase C.2617`, senza date), inutile per chi voleva l'iter Camera. Ora `--branch C` risolve l'atto Camera `ac<leg>_<num>` e ne restituisce la **timeline completa degli stati** (via `cameraIterTimeline`, stesso path di `--uri`): per il dl Covid 2020, 8 stati datati (assegnato→…→legge). `--branch S` invariato (repertorio Senato, stato corrente). **Cambio di comportamento** del valore `--branch C` (prima quasi inutile, nessun uso documentato/testato). Framing onesto dell'asimmetria in description/help/skill/wiki (`iter-statoIter.md`): Camera = timeline stati, Senato = stato corrente (timeline nel feed RSS) — riflette la fonte, non un buco della legislatura. +1 test.

src/tools/bill-progress.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ export const billProgressTool: Tool<typeof inputSchema> = {
110110
],
111111
async execute(input) {
112112
const cameraEmptyHint =
113-
"Nessuno stato iter Camera trovato per l'atto richiesto. Verifica il pairing legislature+number (o l'URI) e, se hai usato keyword/date/limit/offset, prova ad allargare i filtri o la paginazione. Non dedurre assenza di iter dal vuoto: senza evidenza non inventare stati, date o conclusioni.";
113+
"Nessuno stato iter Camera trovato per l'atto richiesto. Verifica il pairing legislature+number (o l'URI) e, se hai usato dei filtri (keyword, intervallo di date) o la paginazione (limit/offset), prova ad allargarli. Non dedurre assenza di iter dal vuoto: senza evidenza non inventare stati, date o conclusioni.";
114114

115115
// Routing per host: un URI Camera attiva il ramo "timeline iter".
116116
const isCamera = (u?: string): u is string =>

0 commit comments

Comments
 (0)