Skip to content

Releases: SidneyBissoli/senado-br-mcp-cloudflare

v3.4.0 — estatisticas + descricoes enriquecidas

Choose a tag to compare

@SidneyBissoli SidneyBissoli released this 08 Jul 23:02

What's Changed

  • chore(server.json): drop "open data" from description lead by @SidneyBissoli in #35
  • docs(readme): add Glama badge by @SidneyBissoli in #36
  • docs(readme): use Glama small score badge by @SidneyBissoli in #37
  • chore: corrige comentário de contagem do grupo e-Cidadania (8→9) by @SidneyBissoli in #38
  • docs(readme): English-language example questions in "See it in action" by @SidneyBissoli in #39
  • Sessão 2 — Higiene de deps + blindagem e-Cidadania (anti prompt-injection) by @SidneyBissoli in #41
  • Sessão 1 — Harness de eval de seleção de tool by @SidneyBissoli in #40
  • Eval: runner robusto a falhas de infra (retry + fail-fast) by @SidneyBissoli in #42
  • Sessão 3 — Aprofundar proveniência (granularidade por-campo, #711, auditoria retrieved_at) by @SidneyBissoli in #43
  • Sessão 4 (item 2) — migrar Zod 3 → 4 (Standard Schema) by @SidneyBissoli in #44

Full Changelog: v3.3.1...v3.4.0

Dataset e-Cidadania — dataset-v1.0.0

Choose a tag to compare

@github-actions github-actions released this 03 Jul 23:53

Changelog — dataset de participação do e-Cidadania

Changelog do DADO (separado do CHANGELOG.md, que é do código/servidor MCP).
Formato baseado em Keep a Changelog; o dataset segue
Versionamento Semântico próprio (dataset-v<X.Y.Z>), distinto
da versão do pacote npm/servidor.

O dado é append-only: releases não reescrevem valores publicados — corrigem via nova versão. Cada
entrada amarra a versão de schema (schemaVersion) vigente e aponta o version-DOI do Zenodo.

Convenção de bump (ver src/dataset/release.ts):

  • MAJOR — mudança de schema (schemaVersion sobe junto);
  • MINOR — edição periódica nova (mais dado, mesmo schema) — a cadência anual decidida na ETAPA 2;
  • PATCH — release extraordinário (defeito de dado corrigido), com version-DOI próprio.

O concept-DOI (Zenodo) é estável entre versões — é o que um paper cita para "o dataset". Cada
release tem também seu version-DOI. Enquanto o Zenodo não cunha, os campos aparecem como
10.5281/zenodo.PENDENTE (ver docs/release-runbook.md).


[dataset-v1.0.0] — 2026-07 · Inaugural (bootstrap 2026)

  • schemaVersion: 1.0.0
  • concept-DOI: 10.5281/zenodo.PENDENTE · version-DOI: 10.5281/zenodo.PENDENTE
  • Licença do dado: Dados Abertos do Senado Federal — uso livre com atribuição da fonte
    (ver LICENSE-DATA.md; separada da licença de código, MIT).

Adicionado (primeiro corte congelado)

Corpus completo da camada de participação do e-Cidadania, num único data package, com envelope de
proveniência por campo
({ value, sourceEndpoint, sourceField, retrievedAt, license, schemaVersion })
em cada valor de cada registro:

Entidade Registros (vintage de ref. 02/07/2026) Série temporal
consultas — Consultas públicas (Apoie) ~7.773 first-seen (censurada à esquerda)
ideias — Ideias legislativas ~113.704 first-seen (censurada à esquerda)
eventos — Eventos interativos (audiências) ~5.443 first-seen (censurada à esquerda)
consultas_votos — Votos históricos por UF (acervo Arquimedes) 15.085 vintage único (série = 1)

Contagens autoritativas do corte: os números acima são a referência do vintage de 02/07/2026; o
corte congela o corpus do D1 na data da tag (as três entidades vivas crescem com o cron diário —
consultas_votos é acervo congelado, não muda). As contagens exatas por arquivo, com checksums, ficam
em release.json e datapackage.json dentro do bundle (o datapackage.json é coberto pelo
SHA256SUMS), que são a fonte autoritativa do que foi efetivamente congelado.

Dicionário de variáveis, operacionalização e proveniência campo-a-campo em
docs/dataset-dictionary.md (gerado da fonte única src/dataset/schema.ts).
Pipeline de harmonização documentado em docs/dataset-harmonization.md.

Resolução temporal do first-seen no bootstrap — declaração load-bearing

A série oficial de ritmo de entrada é o firstSeenAt = MIN(scraped_at) por registro
(ecidadania_history; Recon Parte III). Antes da entrada em produção do cron de crawl diário
(ingest-ecidadania.yml, cron: 0 5 * * *), a resolução do first-seen foi irregular: o corpus
completo era varrido em intervalos de 2 a 6 dias, então o first-seen de um registro tem a
granularidade do dia em que aquele crawl completo rodou, não do dia real de entrada. Consequências,
que fazem parte do contrato metodológico deste release:

  • Piso duro da série = 14/06/2026 (criação da base D1). Nada encerrado e ausente da listagem atual
    antes disso é capturável.
  • Censura à esquerda, baseline por entidade: o primeiro crawl completo de cada entidade concentra
    a grande maioria dos first-seen num único vintage de baseline, que deve ser excluído de análises
    de ritmo — consultas 16/06/2026 (98,6%; série interpretável a partir de 22/06/2026);
    ideias 29/06/2026 (~99,9%; a partir de 30/06/2026); eventos 29/06/2026 (~99,5%; a partir de
    30/06/2026).
  • Período de bootstrap (irregular): entre o piso e a estabilização do cron diário, a série é
    interpretável mas não uniforme — trate a resolução como "dia do crawl", não "dia da entrada".
    A partir da produção do cron diário a resolução passa a ser de 1 dia.
  • Falhas de crawl (erro em ecidadania_scrape_runs) são lacunas conhecidas da série, nunca
    silenciadas.

Caveats de dado herdados da harmonização (ETAPA 4 — validação de proveniência APROVADA 👤)

  • consultas_votos é acervo de vintage único (profundidade de série = 1): não é série temporal;
    o único campo temporal é referencePeriod (carimbo "dados atualizados até" do CSV Arquimedes).
  • Não existe data de abertura de consulta upstream (Recon Parte II) — firstSeenAt é o único
    sinal prospectivo de ritmo; dataApresentacao foi reprovado como proxy (enviesado).
  • Status de eventos dobra REGISTRADO/"sem data prevista" em agendado (Recon §4.1) — declarado,
    não corrigido (dívida de tool, não de dataset).
  • eventos comentarios/hora/data são só-listagem, com caveat PROVISÓRIO (achado A3 da ETAPA 4):
    comentarios recebe 0 quando ausente na listagem (indistinguível de zero real) e hora/data podem
    divergir da página de detalhe. Não use como medida fina de engajamento/horário antes do estudo de
    reconciliação listagem×detalhe (planejado; ver ROADMAP). Proveniência permanece fiel à listagem.
  • Codificação: saída UTF-8; o CSV Arquimedes (consultas_votos), servido em windows-1252 rotulado
    como octet-stream, é transcodificado para UTF-8 na leitura.
  • Ordenação determinística: registros por entity_id ascendente e chaves JSON estáveis — dois freezes
    do mesmo corpus produzem NDJSON byte-idêntico (o diff entre vintages é só mudança real de dado).

Integridade

SHA256SUMS (formato coreutils) e release.json (manifesto com versões, DOIs, commit e contagens)
acompanham a bundle. Verifique com sha256sum -c SHA256SUMS após descomprimir.


v3.3.1

Choose a tag to compare

@SidneyBissoli SidneyBissoli released this 25 Jun 00:25
62e8d56

Changed

  • agents moved from runtime dependencies to devDependencies — it is only used by the hosted Worker, so npx senado-br-mcp no longer downloads it (~1.1 MB + transitive). No behavior change.

v3.3.0 — Enriched error envelope

Choose a tag to compare

@SidneyBissoli SidneyBissoli released this 25 Jun 00:25
0482824

Added

  • Every tool error now carries an actionable hint and is mirrored in structuredContent, so errors are as parseable as successful results (additive, non-breaking).

Fixed

  • e-Cidadania transient failures (HTTP 5xx/429, timeouts, network) are now correctly flagged retryable: true.

v3.2.0 — Local channel + universal provenance

Choose a tag to compare

@SidneyBissoli SidneyBissoli released this 25 Jun 00:25
49f4c40

Added

  • npm/stdio channel — run the same 66-tool server locally via npx senado-br-mcp (stdio), hitting the official government APIs directly. Published to npm and advertised in the official MCP Registry alongside the hosted remote.
  • Provenance (source, source_url, dataset_id, reference_period, retrieved_at, attribution) now covers all 66 tools, not just the pilot set.
  • Public GET /status (version + last-deploy) and PII-free per-tool usage telemetry in Cloudflare Analytics Engine.