Chirp 0.9.0
Hypermedia application compiler foundations, experimental HTTP QUERY and WebMCP forms, htmx 4 preview contracts, and Kida 0.11 compatibility.
Focus: make full Chirp applications more inspectable and provable while opening carefully bounded preview lanes for HTTP QUERY, htmx 4, and WebMCP.
This minor release adds stable compiled-transition evidence, boosted-navigation testing, structured inspection design, and a tested full-application journey. It also ships experimental HTTP QUERY and WebMCP form support behind explicit opt-in contracts. Htmx 2.0.10 remains the default; htmx 4.0.0-beta5 is an exact, reversible preview rather than a default migration.
Highlights
Hypermedia application compiler foundations
Chirp now assigns stable, public-safe identities to compiled render
transitions and carries them through runtime traces, DevTools exports, and
testing coverage.TestClient.boosted()and route-smoke helpers distinguish
full, boosted, and narrow-target requests, catching full documents before they
reach fragment outlets.
Dynamic registries can replace unreachable reference stubs with
app.declare_template(...). Declarations retain call-site origin and validate
their templates and named blocks without suppressing unrelated dead-template
diagnostics.
Experimental HTTP QUERY
Explicit RFC 10008QUERYroutes can declare accepted request media types and
reuse Chirp's existingPage, Fragment, OOB, Stream, and Suspense
rendering surface. Request failures, discovery headers, redirects, conditional
responses, body-aware cache keys, opt-in response caching, DevTools traces, and
browser/server/intermediary behavior now have executable proof.
QUERY remains experimental and explicit-route-only. GET remains the portable default, and unsupported intermediaries must fail visibly rather than silently rewriting a request to POST.
Htmx 4 preview, htmx 2.0.10 default
Managed htmx 2 installations now use the verified 2.0.10 browser bundle. An
exact htmx 4.0.0-beta5 preview provisions core,htmx-2-compat, and hx-sse
in a nonce-safe order with version-aware startup diagnostics.
The preview includes request metadata normalization, fetch-era lifecycle and DevTools handling, explicit response/default contracts, native SSE and signal delivery, and fail-loud handling for response headers removed by htmx 4. Htmx 2 behavior remains supported during the preview.
Experimental WebMCP forms
WebMCPFormprojects an explicitly opted-in frozen form contract into safely
escaped declarative browser-tool attributes while preserving the same normal
HTTP and htmx form, server validation, authorization, and CSRF boundary.
app.check()reports malformed or unsafe projections, and the browser lane
proves progressive enhancement and confirmation behavior.
Full-application and downstream proof
The maintained Todo, Kanban Shell, Dashboard Live, Lucky Cat, and Freeze Site examples now form one tested journey from SQLite and dual-mode forms through boosted navigation, OOB, Suspense, SSE, contract diagnostics, deployment, and optional static projection. A pinned Furatena canary exercises the built Chirp wheel as advisory downstream release evidence.
Migration notes
- Kida: the runtime floor is now
kida-templates>=0.11.0. Kida 0.11 does not require a runtime API or template-syntax migration from 0.10. - Dynamic templates: replace unreachable
if False: Page(...)orFragment(...)discovery stubs withapp.declare_template(...). - Existing QUERY routes: bare
methods=["QUERY"]registrations must add a non-emptyquery_media_types=(...)declaration before application freeze. - HEAD: GET routes now answer HEAD when no explicit HEAD route exists and suppress the body while retaining GET-equivalent metadata. Register an explicit HEAD route if the application must reject that method.
- Htmx: the managed htmx 2 baseline moves to 2.0.10. Htmx 4 remains an exact preview and is not selected automatically.
- Htmx 4 timing headers: preview responses reject
HX-Trigger-After-SwapandHX-Trigger-After-Settle; use rendered target data and per-target lifecycle events instead.
Dependencies
kida-templates>=0.11.0bengal-pounce>=0.8.2milo-cli>=0.4.1is resolved by the maintained docs toolchain through Bengal, allowing the Kida 0.11 development and documentation environment.
Upgrading
pip install --upgrade "bengal-chirp==0.9.0"
Htmx 4, HTTP QUERY, and WebMCP remain provisional surfaces. Review their linked guides and compatibility gates before enabling them in production.