health.ready
Can this process serve traffic: the registry and the index it built at start-up, already resident, and how the layer read. Only local initialisation — never an external provider, a database or another service, because a readiness check that probes a dependency fails a deployment for something that is not this process.
Can this process serve traffic: the registry and the index it built at start-up, already resident, and how the layer read. Only local initialisation — never an external provider, a database or another service, because a readiness check that probes a dependency fails a deployment for something that is not this process.
- query
- behaviorally_verified
- module health
- #health
- #deployment
Exposure
Where this one definition is reachable. Absence is explicit: a surface not listed does not carry it.
| surface | as |
|---|---|
| MCP | — |
| HTTP | GET /api/v1/ready operationId health.ready |
| command line | — |
Schemas
The canonical input and output, from the Rust types; the MCP tool schema and the OpenAPI parameters and responses are derived from these.
input · Empty
No properties: the capability takes no input.
JSON Schema
{
"additionalProperties": false,
"description": "No input.",
"title": "Empty",
"type": "object"
}output · Readiness
| property | type | required | description |
|---|---|---|---|
| capabilities | integer | yes | How many capabilities the registry holds; zero would mean nothing to serve. |
| commit | string | yes | The commit this executable was built from, or unknown; the same value health.live
answers. |
| dirty | boolean | null | no | Whether the build's tree was dirty; null when the build did not know. |
| layer | reference | yes | Whether the layer read cleanly. A degraded layer is still served — the diagnostics are the point — so this reports rather than refuses. |
| objects | integer | yes | How many objects the index holds. Read from the index this process built at start-up: it is already in memory, and reading it walks nothing. |
| ready | boolean | yes | Whether every part below is in place. |
| reasons | array | no | Every reason this answer is not a plain yes, as code: words. lease_lost and
stale make ready false: another process holds this checkout's lease, or this one
serves code that is gone. layer_degraded does not: the layer is served with its
diagnostics, and a client decides whether that is enough. |
| stale | string | null | no | Why this process is serving code that is no longer on disk: the executable it was
started from has been replaced or removed since. Present, ready is false — a server
answering with yesterday's code says so in the place it says it is ready, to a client
holding nothing but this answer (I1502). |
| version | string | yes | This executable's version. |
JSON Schema
{
"$defs": {
"HealthStatus": {
"description": "Where one dimension of the system stands. Ordered by severity, so the worst check\ndecides the whole.",
"oneOf": [
{
"const": "ok",
"description": "The engine that decides this dimension is satisfied.",
"type": "string"
},
{
"const": "warn",
"description": "Nothing is broken and something is worth looking at.",
"type": "string"
},
{
"const": "fail",
"description": "The engine that decides this dimension is not satisfied.",
"type": "string"
},
{
"const": "unknown",
"description": "This process cannot decide it, and says so rather than reporting `ok`.",
"type": "string"
}
]
}
},
"description": "The answer to \"can this process serve traffic\": the local initialisation a request\nwould need, and nothing beyond this process. A readiness check that grew a dependency\nprobe fails a deployment because an unrelated service is down.",
"properties": {
"capabilities": {
"description": "How many capabilities the registry holds; zero would mean nothing to serve.",
"format": "uint",
"minimum": 0,
"type": "integer"
},
"commit": {
"description": "The commit this executable was built from, or `unknown`; the same value `health.live`\nanswers.",
"type": "string"
},
"dirty": {
"description": "Whether the build's tree was dirty; `null` when the build did not know.",
"type": [
"boolean",
"null"
]
},
"layer": {
"$ref": "#/$defs/HealthStatus",
"description": "Whether the layer read cleanly. A degraded layer is still served — the diagnostics\nare the point — so this reports rather than refuses."
},
"objects": {
"description": "How many objects the index holds. Read from the index this process built at\nstart-up: it is already in memory, and reading it walks nothing.",
"format": "uint",
"minimum": 0,
"type": "integer"
},
"ready": {
"description": "Whether every part below is in place.",
"type": "boolean"
},
"reasons": {
"description": "Every reason this answer is not a plain yes, as `code: words`. `lease_lost` and\n`stale` make `ready` false: another process holds this checkout's lease, or this one\nserves code that is gone. `layer_degraded` does not: the layer is served with its\ndiagnostics, and a client decides whether that is enough.",
"items": {
"type": "string"
},
"type": "array"
},
"stale": {
"description": "Why this process is serving code that is no longer on disk: the executable it was\nstarted from has been replaced or removed since. Present, `ready` is false — a server\nanswering with yesterday's code says so in the place it says it is ready, to a client\nholding nothing but this answer (I1502).",
"type": [
"string",
"null"
]
},
"version": {
"description": "This executable's version.",
"type": "string"
}
},
"required": [
"ready",
"version",
"commit",
"capabilities",
"objects",
"layer"
],
"title": "Readiness",
"type": "object"
}Policies
- benchmark
- required — a target on every transport the exposure declares; the cases are the input type's
- cache
- disabled — every call runs the handler
Benchmark targets
Derived from the registry for this repository: one requirement per transport, and the cases the input type provides. The whole matrix is on the benchmarks page.