Bengal 0.3.3

Serve-ready builds, preview serving, artifact audit, git-backed versioning, atomic outputs, and Pounce sendfile fixes

Key theme: Bengal 0.3.3 makes local feedback faster and release output safer. Serve can get HTML ready sooner while finishing artifact, health, and cache work in the background; preview now serves completed output through Pounce; and generated artifacts have stronger audit, cache, and atomic-write coverage.


Highlights

Serve And Preview Feedback

bengal servenow distinguishes first paint from full build completion. The default serve-ready path can defer non-browse-critical artifact, health, cache, and audit work, then finish that tail in the background with quieter console output.

For checks that should match completed production output, use:

bengal preview

Preview runs a complete build and serves the finished output through Pounce static handling.

Artifact And Health Correctness

The new artifact audit command scans generated output for missing internal file references:

bengal audit

Health and link validation now reuse more scoped state, cache repeated link checks, validate changed pages more precisely during incremental runs, and route generated artifact discovery through an explicit artifact inventory when available.

Incremental Build And Output Safety

Warm builds now avoid more unnecessary work: page artifact shards rewrite only when affected, output-format graph data is lazy, unchanged JSON/text/Markdown sidecars are skipped, and post-render artifacts can be reused for incremental output formats and link-registry setup.

More generated outputs now use atomic writes, including special pages, optimized CSS, output-format sidecars, notebook sidecars, and generated font CSS/files.

Git Versioned Docs

Bengal can discover documentation versions from matching release tags, build the latest branch plus previous tags, prune stale managed version outputs, and keep sidebar links pointed at versioned section paths.

This release also dogfoods git-backed versioning on Bengal's own documentation site.

Theme And CLI Surface

Theme development gets a bundledchirpui theme, theme library asset contracts, stronger theme metadata validation, and better theme previewand swizzle workflows.

The CLI output path now renders help, command messages, reports, health output, audit output, and structured notices through Bengal-owned Kida templates and the sharedCLIOutputbridge.

Static Serving Fix

Bengal now requiresbengal-pounce>=0.7.1, which includes protocol-owned sendfile handling. Dev and preview static assets can use sendfile without the HTTP/1 Content-Lengtherrors seen with older Pounce releases.


Added

  • bengal auditfor generated artifact reference checks.
  • bengal previewfor production-like local serving of completed output.
  • Git release-tag version discovery and a version-awareurl_fortemplate helper.
  • Atom feed generation and theme library asset contracts.
  • A bundledchirpuitheme.

Changed

  • bengal servecan start from a browse-ready build and finish full artifact work in the background.
  • CLI help and command output now route through Bengal-owned Kida templates.
  • Incremental health, cache, provenance, and output-format paths reuse more scoped state and avoid more unchanged writes.
  • Git versioned builds now handle stale outputs, latest-version assets, tag aliases, and version selector behavior more consistently.
  • Theme commands and validation now cover bundled theme inspection, package skeletons, swizzling, preview, and metadata checks.

Fixed

  • Fix Pounce static sendfileContent-Lengthcrashes by requiring the upstream protocol-owned sendfile release.
  • Fix CSS minification around descendant selector whitespace.
  • Fix incremental template invalidation across active theme inheritance chains.
  • Fix git-versioned sidebar links and generated site-wide link targets.
  • Fix several stale-cache and stale-output paths in page artifacts, post-render artifacts, icon/render caches, health reports, and watcher shutdown.

Upgrading

uv pip install --upgrade bengal
# or
pip install --upgrade bengal

If you saw LocalProtocolError: Too little data for declared Content-Length while serving static JS, font, or asset files, upgrade to Bengal 0.3.3 so the environment resolves bengal-pounce>=0.7.1.