Chirp 0.4.0

Refined public API, shell tabs, free-threading safety, performance optimizations, and dependency upgrades

Focus: refine the public API surface, add shell tabs, harden free-threading safety, and improve performance.


Highlights

Refined public API

New first-class types on the public surface (#56):

  • RenderPlan — captures template + context intent before rendering, enabling inspection and middleware hooks.
  • MutationResult — structured return type for mutation routes, pairing redirect targets with OOB fragment updates.
  • tools — expanded utility surface exposed from the top-level package.

Shell tabs contract

Shell tabs (#54) introduce a layout contract for tabbed navigation shells, enabling multi-section apps with consistent chrome and tab state management.

Scaffold command

chirp scaffold(#50) generates project boilerplate — routes, templates, and config — for new apps and mounted page directories.


Performance

  • Eliminated redundant sorting, allocations, and O(n) scans across hot paths (#52).

Hardened

  • Free-threading safety improvements and tighter linting rules (#51).

Fixed

  • Alpine.js injection now uses explicit/dist/cdn.min.jsCDN paths, preventing silent CJS breakage in browsers (#49).
  • Addedunsafe-evalto default CSP for Alpine.js compatibility (#49).
  • Test guards against bare jsDelivr CDN URLs in Alpine injection (#53).

Dependencies

  • bengal-pounce>=0.5.1 (bumped from >=0.4.0)
  • kida-templates>=0.3.2 (bumped from >=0.3.1)
  • chirp-ui>=0.2.5 (bumped from >=0.2.3)

Upgrading

uv pip install --upgrade "bengal-chirp>=0.4.0"
pip install --upgrade "bengal-chirp>=0.4.0"