delivery.trends
The series of CI runs the pages publication recorded in this checkout at site/data/trends.json, oldest first: for each run its wall time, the time its jobs waited for a runner, its jobs, and the coverage it measured (lines, functions and regions as covered over total with the percentage they give); and the median run and queue time of every job over the series, the slowest first. A read of one file: nothing is fetched, derived or written, and no committed file depends on it. A figure the file does not give is absent, never zero, and a run that measured no coverage has none. `recorded: false` with the reason when the file is absent, is not JSON, or is not the trends/v1 series.
The series of CI runs the pages publication recorded in this checkout at site/data/trends.json, oldest first: for each run its wall time, the time its jobs waited for a runner, its jobs, and the coverage it measured (lines, functions and regions as covered over total with the percentage they give); and the median run and queue time of every job over the series, the slowest first. A read of one file: nothing is fetched, derived or written, and no committed file depends on it. A figure the file does not give is absent, never zero, and a run that measured no coverage has none. `recorded: false` with the reason when the file is absent, is not JSON, or is not the trends/v1 series.
- query
- experimental
- module delivery
- #delivery
- #ci
- #trends
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/delivery/trends operationId delivery.trends |
| 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 · TrendsReport
| property | type | required | description |
|---|---|---|---|
| generated_from | array | yes | The ids of the runs the series was written from, as the file gives them. |
| job_medians | array | yes | The medians of the jobs, the slowest first. |
| reason | string | null | no | Why it does not, when it does not. |
| recorded | boolean | yes | Whether the checkout holds a series of this schema. |
| runs | array | yes | The runs, oldest first. |
JSON Schema
{
"$defs": {
"JobMedian": {
"description": "The median of one job over the series.",
"properties": {
"median_queued_seconds": {
"description": "The median of its queue time, in seconds.",
"format": "double",
"type": [
"number",
"null"
]
},
"median_run_seconds": {
"description": "The median of its run time, in seconds.",
"format": "double",
"type": [
"number",
"null"
]
},
"name": {
"description": "The job's name.",
"type": "string"
},
"runs": {
"description": "How many runs the median is over.",
"format": "uint64",
"minimum": 0,
"type": [
"integer",
"null"
]
}
},
"required": [
"name"
],
"type": "object"
},
"TrendCoverage": {
"description": "The coverage a run measured; each kind is `None` when the file does not give it.",
"properties": {
"functions": {
"anyOf": [
{
"$ref": "#/$defs/TrendRatio"
},
{
"type": "null"
}
],
"description": "Functions."
},
"lines": {
"anyOf": [
{
"$ref": "#/$defs/TrendRatio"
},
{
"type": "null"
}
],
"description": "Source lines."
},
"regions": {
"anyOf": [
{
"$ref": "#/$defs/TrendRatio"
},
{
"type": "null"
}
],
"description": "Regions."
}
},
"type": "object"
},
"TrendJob": {
"description": "One job of a run.",
"properties": {
"conclusion": {
"description": "How it ended, when the file says.",
"type": [
"string",
"null"
]
},
"name": {
"description": "The job's name.",
"type": "string"
},
"queued_seconds": {
"description": "Seconds it waited for a runner, when the file gives them.",
"format": "double",
"type": [
"number",
"null"
]
},
"run_seconds": {
"description": "Seconds it ran, when the file gives them.",
"format": "double",
"type": [
"number",
"null"
]
}
},
"required": [
"name"
],
"type": "object"
},
"TrendRatio": {
"description": "One covered-over-total figure of a run, with the percentage the two give.",
"properties": {
"covered": {
"description": "What the run covered: lines, functions or regions.",
"format": "uint64",
"minimum": 0,
"type": "integer"
},
"percent": {
"description": "`covered` over `total` in percent, or `None` when there was nothing to cover.",
"format": "double",
"type": [
"number",
"null"
]
},
"total": {
"description": "What there was to cover.",
"format": "uint64",
"minimum": 0,
"type": "integer"
}
},
"required": [
"covered",
"total"
],
"type": "object"
},
"TrendRun": {
"description": "One run of the series.",
"properties": {
"conclusion": {
"description": "How the run ended.",
"type": [
"string",
"null"
]
},
"coverage": {
"anyOf": [
{
"$ref": "#/$defs/TrendCoverage"
},
{
"type": "null"
}
],
"description": "The coverage it measured, or `None` when it measured none."
},
"head_sha": {
"description": "The commit the run judged.",
"type": [
"string",
"null"
]
},
"jobs": {
"description": "Its jobs.",
"items": {
"$ref": "#/$defs/TrendJob"
},
"type": "array"
},
"queued_seconds_total": {
"description": "Seconds its jobs waited for a runner, summed.",
"format": "double",
"type": [
"number",
"null"
]
},
"run_id": {
"description": "The forge's id of the run, as text.",
"type": "string"
},
"started_at": {
"description": "When the run started, as the file wrote it.",
"type": [
"string",
"null"
]
},
"wall_seconds": {
"description": "Seconds from the run's start to its end.",
"format": "double",
"type": [
"number",
"null"
]
}
},
"required": [
"run_id",
"jobs"
],
"type": "object"
}
},
"description": "The series, or why this checkout holds none.",
"properties": {
"generated_from": {
"description": "The ids of the runs the series was written from, as the file gives them.",
"items": {
"type": "string"
},
"type": "array"
},
"job_medians": {
"description": "The medians of the jobs, the slowest first.",
"items": {
"$ref": "#/$defs/JobMedian"
},
"type": "array"
},
"reason": {
"description": "Why it does not, when it does not.",
"type": [
"string",
"null"
]
},
"recorded": {
"description": "Whether the checkout holds a series of this schema.",
"type": "boolean"
},
"runs": {
"description": "The runs, oldest first.",
"items": {
"$ref": "#/$defs/TrendRun"
},
"type": "array"
}
},
"required": [
"recorded",
"generated_from",
"runs",
"job_medians"
],
"title": "TrendsReport",
"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.