---
summary: "OpenFEC tools now reject explicit inputs their resolved endpoints would ignore, with fixed-width ID and range validation before dispatch"
breaking: true
security: false
---

# 0.8.0 — 2026-08-30

## Changed

- **Direct candidate and committee lookups** now reject search-only filters rather than silently ignoring them; candidate totals scope remains valid only when totals are requested ([#25](https://github.com/cyanheads/openfec-mcp-server/issues/25)).
- **Schedule A aggregate routing, Schedule A/B/E keyset modes, and election summaries** now reject explicitly supplied inputs unsupported by the resolved OpenFEC endpoint ([#26](https://github.com/cyanheads/openfec-mcp-server/issues/26)).
- **Candidate and committee IDs** now require their complete FEC shapes: `H`/`S`/`P` plus eight alphanumeric characters, or `C` plus eight digits ([#27](https://github.com/cyanheads/openfec-mcp-server/issues/27)).

## Fixed

- **Date and numeric range filters** reject malformed calendar dates and inverted bounds before dispatch; legal-search date-kind errors retain their more specific precedence ([#34](https://github.com/cyanheads/openfec-mcp-server/issues/34)).
- **`OpenFecService` outbound parameter allowlists** now cover Schedule A aggregate and election-summary endpoints, preventing future routing drift from sending unsupported parameters.

## Dependencies

- `@biomejs/biome` ^2.5.10 → ^2.5.11
- `@types/node` 26.2.0 → 26.4.0
- Transitive lockfile updates: `fast-uri` 3.1.5 → 3.1.6, `hono` 4.13.3 → 4.13.5, `rolldown` 1.2.5 → 1.2.6, and Vue compiler packages 3.5.41 → 3.5.42.
