# 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.