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 probesliveness() and readiness()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
  • Optionalpython-dotenv via pip install chirp[config]

Health Probes

  • chirp.health.liveness()— K8s liveness probe
  • chirp.health.readiness(checks)— K8s readiness probe with pluggable checks
  • HealthCheckdataclass 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 tracing
  • chirp.logging— Structured JSON logging
  • Domain protocol — Pluggable feature modules via register_domain()
  • chirp new --shell— Shell scaffolding (topbar + sidebar)
  • Layout slot context propagation for LayoutPage
  • form_get example
  • Layout debug middleware
  • Databaseconnect_timeout, connect_retries

Changed

  • App module split intoapp/package
  • Contracts split intocontracts/package
  • Lazy imports for fasterimport 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]