# Bengal 0.3.3

URL: /bengal/releases/0.3.3/
Section: releases
Description: Serve-ready builds, preview serving, artifact audit, git-backed versioning, atomic outputs, and Pounce sendfile fixes

---

> For a complete page index, fetch /bengal/llms.txt.

**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 serve` now 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:

```bash
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:

```bash
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 bundled `chirpui` theme, theme library asset contracts, stronger theme metadata validation, and better `theme preview` and 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 shared `CLIOutput` bridge.

### Static Serving Fix

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

---

## Added

- `bengal audit` for generated artifact reference checks.
- `bengal preview` for production-like local serving of completed output.
- Git release-tag version discovery and a version-aware `url_for` template helper.
- Atom feed generation and theme library asset contracts.
- A bundled `chirpui` theme.

## Changed

- `bengal serve` can 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 sendfile `Content-Length` crashes 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

```bash
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`.
