mini-static 0.31.2

A secure, async static file server with streaming, traversal protection, and connection limits.
Documentation
# REVIEW.md

## Scope
Commit `f590758` — feat(server): serve a configurable page for 404s
(Cargo.toml/lock bump, README, src/server.rs, tests/not_found_page.rs).

## Part One: Standard Conformance
- **S4/A6: doc comment misplacement**`with_not_found_page` was inserted
  *between* `with_spa_transition`'s doc block and its `pub fn`. The spa-transition
  docs (including its `SpaTransition::Slide` example) attached to
  `with_not_found_page`, and `with_spa_transition` was left undocumented. — **Fixed
  now**: method relocated below its own doc block; `with_spa_transition` re-owns
  its docs.
- **S5 (consistency): missing `# Example`** — every sibling builder method carries
  a rustdoc example; the new one didn't. — **Fixed now**: example added.
- A1–A5, A7, A10, T1–T3 otherwise clean: startup validation of the page path
  (A4), degraded-not-500 fallback with the reason documented (A5), traversal
  check reuses `root_canon` + `starts_with` like the resolver, tests live in
  their own file (T3), exercise real request paths (T2), and each asserts a
  spec-derived value (T1). Version bump follows the workspace convention
  (patch-by-default for additive features).

## Part Two: Relics / Shape / Cost
- **R3: blocking read on the async path**`not_found_response` used
  `std::fs::read` directly in the request handler, while the rest of the request
  path deliberately keeps disk I/O off the tokio worker threads (`spawn_blocking`
  for resolve, `tokio::fs::File` for bodies). A 404 flood on slow storage would
  stall workers. — **Fixed now**: made the fn `async` and switched to
  `tokio::fs::read`.
- R1 clean — the `text()` helper's doc comment was updated with the change; no
  dead code or stale comments left behind.
- R2 clean — the fallback-on-read-failure shape is the lean version; no
  unnecessary indirection.

## Verdict
Status: CLEAR

Fix-now items remaining: none (all three applied in the working tree; clippy
`-D warnings` and full test suite pass, 404-page suite 11/11).
Follow-ups filed: none. (Noted, pre-existing and out of scope: 4 rustdoc
intra-doc-link warnings in css.rs/spa.rs/server.rs that predate this commit.)
Accepted tradeoffs: per-response disk read of the 404 page (documented
intentionally — live-editability over caching; one small async read on a cold
path).