Skip to content

bengal-chirp 0.1.9

Choose a tag to compare

@lbliii lbliii released this 13 Mar 15:01
· 180 commits to main since this release
0dd9ebc

Chirp 0.1.9

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, and app.check() now validates section bindings, shell-mode expectations, and route-file consistency.

Sync Path and Request Handling

Chirp now exposes a fused sync path through App.handle_sync() for simple request-response routes. The new SyncRequest keeps 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 new benchmark extra 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 new now 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

:::{tab-set}
:::{tab-item} UV

uv pip install --upgrade bengal-chirp

:::

:::{tab-item} pip

pip install --upgrade bengal-chirp

:::

:::{/tab-set}

Optional extras:

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