Chirp 0.1.9

Route directory contract, sync-path improvements, route introspection, and synthetic benchmarks

Key additions: a documented route-directory golden path, faster sync request handling, debug route introspection, and a synthetic benchmark suite.


Highlights

Route Directory Golden Path

Filesystem routes now have a clearer contract for app-shell projects:

  • _meta.py for titles, sections, breadcrumbs, and shell mode
  • _context.py for inherited route context
  • _actions.py for _action-driven form mutations
  • _viewmodel.py for template assembly when a route needs more than a simple handler

The new route-directory guide and route-contract reference document how these files work together, andapp.check()now validates section bindings, shell-mode expectations, and route-file consistency.

Sync Path and Request Handling

Chirp now exposes a fused sync path throughApp.handle_sync() for simple request-response routes. The new SyncRequestkeeps method and path eager while URL query values, cookies, and headers stay lazy until accessed.

On the standard ASGI path, sync handlers also avoid blocking the event loop, so the framework is safer under mixed sync/async workloads even when a route does not use the fused path.

Route Introspection in Debug Mode

Debug builds now include route-focused introspection tools:

  • X-Chirp-Route-*headers for route kind, section, metadata, and discovered files
  • /__chirp/routes explorer for drilling into layouts, providers, actions, handler signatures, and route metadata

These additions make filesystem routing and app-shell debugging much easier without adding production surface area.

Synthetic Benchmarks

Chirp now ships a synthetic benchmark suite for comparing Chirp, FastAPI, and Flask across JSON and CPU workloads, plus Chirp-specific fused sync and mixed JSON+SSE scenarios.

The benchmark docs explicitly frame these as synthetic tests, not production claims, and the newbenchmarkextra installs the comparison stack when you want to run them locally.


Changed

  • Route contracts — Section registration, shell context assembly, fragment-target expectations, and route metadata are now first-class parts of the filesystem routing model.
  • CLI scaffoldschirp newnow keeps its templates in dedicated modules, with updated shell and SSE scaffolds.
  • Package metadata — Homepage/docs URLs now point to the published site, and the project metadata better reflects Chirp's HTMX + HTML-over-the-wire positioning.

Dependencies

  • kida-templates>=0.2.7
  • bengal-pounce>=0.2.2
  • chirp-ui>=0.1.6 (optional, for chirp[ui])

Breaking Changes

None. This release adds new routing structure, diagnostics, and performance-oriented paths without changing the existing public programming model.


Upgrading

uv pip install --upgrade bengal-chirp
pip install --upgrade bengal-chirp

Optional extras:

  • UI layer:pip install "bengal-chirp[ui]"
  • Benchmark suite:pip install "bengal-chirp[benchmark]"