Chirp 0.10.0
Milo-backed typed CLI and read-only agent inspections, stronger release evidence, Pelt production hardening, and cacheable anonymous sessions.
Focus: make Chirp's developer surface typed and agent-readable while strengthening the evidence used to ship the framework and its in-tree PostgreSQL driver.
This minor release moves the packagedchirpcommand tree onto Milo's lazy
typed command runtime without changing established command syntax, output
channels, or exit behavior. It also exposes the reviewed read-onlycheck,
diff, and routes operations through MCP and llms.txt, improves Pelt's
real-wire and streaming behavior, and restores shared-cache eligibility for
anonymous responses that do not create session state.
Highlights
One typed command surface for people and agents
Thechirp CLI now uses milo-cli>=0.4.1,<0.5for lazy typed command
registration. Chirp retains its existing handlers and compatibility contract,
including help, flags, aliases, output streams, exit codes, and import-laziness
expectations.
The read-onlycheck, diff, and routesinspections return stable structured
results for programmatic and agent calls. Those operations are explicitly
allowlisted for MCP andllms.txt; lifecycle and write-capable commands remain
CLI-only.
Release evidence that fails when it should
CI now enforces the configured coverage floor and rejects new exception-hygiene regressions. A machine-checked public-claims ledger ties performance, free-threading, and rolling-reload language to committed evidence.
The synthetic benchmark tooling can emit versioned comparison artifacts, includes FastHTML in the optional framework matrix, and runs paired same-runner regression checks with a 20 percent median-latency budget. These workloads are internal regression evidence, not production performance claims.
Pelt real-wire and streaming hardening
Pelt's PostgreSQL conformance lane now covers PostgreSQL 13 through 18. A versioned live-PostgreSQL benchmark separates aggregate query scaling from single-cursor and sequential bulk-loop boundaries.
Server cursors release decoded batches as iteration advances, resumed portals retain row metadata, and database errors preserve exact SQLSTATE values while linking to the shipped troubleshooting catalog.
Cacheable anonymous responses
SessionMiddleware no longer emits Set-Cookieor writes to a custom session
store when a request has no incoming session cookie and creates no session
state. Public anonymous responses can therefore remain eligible for shared and
CDN caching.
Existing cookies still receive sliding refreshes. Timeout metadata, CSRF token creation, nested session mutation, login/logout, tampered-cookie recovery, and explicit session regeneration retain their previous persistence behavior.
Production request limits
Chirp now forwardsAppConfig.max_request_body_sizeto Pounce. Requests within
the application's configured limit are no longer rejected by Pounce's former
1 MiB default, while oversized requests still receive a wire-boundary 413.
Migration notes
- CLI dependency:
milo-cli>=0.4.1,<0.5is now a required dependency. Existing Chirp commands retain their tested terminal contract. - Anonymous sessions: code that intentionally depended on receiving an
empty session cookie on the first untouched request must now create session
state or call
regenerate_session()explicitly. - Pelt: cursor batching and portal-resume fixes do not change the public query API; they correct memory and protocol behavior.
- Htmx: htmx 2.0.10 remains the default. The htmx 4 preview is unchanged by this release.
Dependencies
kida-templates>=0.11.0bengal-pounce>=0.8.2milo-cli>=0.4.1,<0.5
Upgrading
pip install --upgrade "bengal-chirp==0.10.0"
See the full changelog for every included fix and release-evidence change.