0.5.0
Elm Architecture lifecycle, milo-cli adoption, bench command, modern Python 3.14t patterns
Highlights
- Elm Architecture lifecycle — Server lifecycle rebuilt on a Store + Reducer + Render Middleware pattern. All 16 procedural output functions replaced with typed action dispatch, giving pounce an inspectable state model and a single view layer.
- milo-cli adoption — argparse replaced with milo's CLI class. Subcommands, MCP server,
llms.txt, and type-driven parsing out of the box. All lifecycle output rendered through branded kida templates. pounce bench— Built-in benchmarking command with wrk integration and formatted result tables.- Modern Python 3.14t patterns —
Finalconstants,StrEnumenums,kw_onlydataclasses,TCPWorkerProtocol, and stricter linting across the board.
Added
pounce bench— standardized benchmarking CLI command (#26)- Public lifecycle events API (
ConnectionOpened,ResponseCompleted, etc.) (#26) - 27 Hypothesis property-based fuzz tests across all parsers (#26)
DisplayConfigwith configurable signage modes and startup resolution (#25)pounce info— system diagnostic panel (Python, GIL, deps, frameworks) (#21)pounce check— pre-flight validator (app import, port, TLS, config) (#21)- Branded tracebacks via kida templates (#21)
- milo-cli integration with branded lifecycle output (#20)
Changed
- Elm Architecture lifecycle with Store + Reducer + Render Middleware (#22)
Finalannotations,StrEnum,kw_only=Trueon dataclasses,TCPWorkerProtocol (#23)- Expanded ruff rules (
S,A,T20,DTZ,FBT) and stricter ty config (#23) - Single-pass
_classify_request()replaces 4-5 separate header scans (#24) - Static file stat syscalls reduced from ~7 to ~3 (#24)
- CI:
cancel-in-progressand--maxfailfor faster feedback (#18)
Fixed
- Content-Length preserved when not compressing (#24)
- HTTP/1.0 keep-alive honours
Connectionheader correctly (#24) - Deployment docs: broken symlinks replaced with proper site pages (#19)
Docs
- Full audit of site docs, internal docs, and roadmap — removed false claims, fixed types/defaults (#17)
- Performance narrative docs with competitive comparison tables (#26)
docs/nogil-patterns.md— 10 reusable free-threading patterns (#26)
Install
uv add "bengal-pounce==0.5.0"