Changelog of @hackage/servant-health 0.1.0.0

Changelog for servant-health

This project follows the Haskell PVP.

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