packages feed

servant-health-0.1.0.0: CHANGELOG.md

# Changelog for servant-health

This project follows the [Haskell PVP](https://pvp.haskell.org/).

## 0.1.0.0 — 2026-07-24

First release.

### New Features

- **Probe routes and wire contract.** `Servant.Health` exports `HealthApi`, a
  `NamedRoutes` record mounted under `"health"` that answers `GET /health/live`
  and `GET /health/ready`. Responses are typed via `MultiVerb`
  (`ProbeResponses`), and the passed/failed → 200/503 mapping lives in the one
  `AsUnion ProbeResponses ProbeResult` instance. The `ProbeStatus` body is a
  fixed key set — `status`, `check`, `failingSince` — with `failingSince` null
  while healthy.
- **Injectable check seam.** `type ProbeCheck = IO ProbeVerdict` plus
  `healthServer` and `runProbe`. The package ships no checks of its own; checks
  are run afresh on every request and nothing caches a verdict.
- **Check combinators.** `Servant.Health.Check` provides `boolCheck`,
  `sequenceChecks` (short-circuiting, empty list is healthy), `safeCheck`
  (synchronous exceptions become failed probes, asynchronous ones are re-thrown),
  `withProbeTimeout`, and `newFailureTracker` for reporting the original onset of
  a failing run rather than the latest observation.
- **Path constants.** `Servant.Health.Paths` exports `healthMountSegment`,
  `liveRawPath`, `readyRawPath`, and `healthRawPaths` for request-logger
  exclusions and conformance-test exemption lists.
- **OpenAPI schema.** A non-orphan `ToSchema ProbeStatus` instance derived from
  the same `probeJsonOptions` value as the JSON codec, so the published schema
  and the bytes on the wire cannot disagree.
- **`testkit` public sublibrary.** `servant-health:testkit` exports
  `probeContractTests`, which drives a real Warp server built from the
  consumer's own application builder and asserts the full probe matrix —
  including the cross-assertions that catch an umbrella record wiring the two
  probe routes to each other's checks. Depend on it from test stanzas only.

### Other Changes

- Supports a single OpenAPI cohort: `openapi-hs >=5.0 && <5.1`, with
  `servant-openapi-hs >=5.1 && <5.2` used test-only. See
  [ADR 7](https://github.com/shinzui/servant-health/blob/master/docs/adr/7-single-cohort-openapi-support.md); the 4.1 cohort was
  dropped before this first release.
- Added `README.md`, plus `homepage`, `bug-reports`, and a `source-repository
  head` stanza to the cabal file.