Released: March 4, 2026
Enterprise-scale configuration, health probes for Kubernetes, pluggable session and auth backends, and shell scaffolding.
Highlights
- AppConfig.from_env() — Load config from CHIRP_* environment variables
- Health probes —
liveness()andreadiness()for K8s orchestration - Pluggable backends — SessionStore, RateLimitBackend, LockoutBackend protocols
- chirp new --shell — Scaffold with persistent app shell (topbar + sidebar)
- Modular contracts — Contracts split into focused rule modules
Added
Enterprise Config
AppConfig.from_env(prefix="CHIRP_")— Load from environment- New fields:
env,redis_url,audit_sink,feature_flags,http_timeout,http_retries,skip_contract_checks,lazy_pages - Optional
python-dotenvviapip install chirp[config]
Health Probes
chirp.health.liveness()— K8s liveness probechirp.health.readiness(checks)— K8s readiness probe with pluggable checksHealthCheckdataclass for custom checks
Pluggable Backends
- SessionStore — CookieSessionStore (default), RedisSessionStore
- RateLimitBackend — Pluggable rate limit storage
- LockoutBackend — Pluggable login lockout storage
Other Additions
Request.request_id— Request tracingchirp.logging— Structured JSON loggingDomainprotocol — Pluggable feature modules viaregister_domain()chirp new --shell— Shell scaffolding (topbar + sidebar)- Layout slot context propagation for LayoutPage
- form_get example
- Layout debug middleware
- Database
connect_timeout,connect_retries
Changed
- App module split into
app/package - Contracts split into
contracts/package - Lazy imports for faster
import chirp - Kida errors: ANSI stripped in HTTP/SSE/JSON
- Session middleware refactored for pluggable backends
Fixed
- Contracts: regex for Kida URL extraction in htmx attrs
- Contracts: action+method matrix (GET default, swap safety)
Installation
pip install bengal-chirp==0.1.4
# or
uv add bengal-chirp==0.1.4
With chirp-ui:
pip install bengal-chirp[ui]