measurements-are-tracked-over-time — Coverage and CI cost are kept, exported and drawn over time, from the one measurement each has
Every master run's coverage and CI cost is kept as a derived series, exported in LCOV and Cobertura from the one measurement docs/COVERAGE.md requires, uploaded to Coveralls and Codecov when their secrets exist, drawn on the site and in the Cockpit, and emitted as OpenTelemetry when an endpoint is configured; no number differs between the gate, the export and the graph.
PLÁNOVÁNO 0 z 6 úkolů hotovo
- připraveno
- 3
- blokováno
- 3
- aktivní
- 0
- verify
- 0
- hotovo
- 0
- zrušeno
- 0
Problém
Coverage is measured on every run and kept nowhere: scripts/rust-coverage's export is a 14-day artifact, no format another tool reads is written, nothing is uploaded, and no history or graph exists. CI cost is the same: ci-timings reads only the open pull requests' latest observation, so a regression of a job's minutes or a gate's pass rate is seen by a person reading runs, not by the repository. The owner's order of 2026-10-22 asks for coverage and pipeline telemetry that can be analysed, improved and connected to Coveralls, Codecov and OpenTelemetry.
Výsledek
Every master run's coverage and CI cost is kept as a derived series, exported in LCOV and Cobertura from the one measurement docs/COVERAGE.md requires, uploaded to Coveralls and Codecov when their secrets exist, drawn on the site and in the Cockpit, and emitted as OpenTelemetry when an endpoint is configured; no number differs between the gate, the export and the graph.
Aktuální stav
rust-coverage writes one JSON export per run; validate.yml uploads it for 14 days; .ai/repo/ci/suite-durations.tsv is the only kept CI cost, refreshed by hand.
Cílový stav
LCOV and Cobertura exports of the one measurement (I3932); a coverage and CI-cost series per master run with graphs (I3933); OpenTelemetry traces of CI runs (I3934) and of agent sessions (I3935) when an endpoint is configured; every external upload skipped, never failed, without its secret.
Rozsah
- scripts/rust-coverage
- .github/workflows/validate.yml
- docs/COVERAGE.md
- test/cases
- .ai/repo/project
Mimo rozsah
- A second coverage counter, threshold or parser anywhere
- Sending anything outside the repository without the owner's secret configured for it
- Changing any gate's verdict
Kritéria přijetí
- The export, the gate and the graph give the same line totals for the same run, shown by a case
- A master run's coverage and CI cost are in the series without anyone running a command
- With no secret or endpoint configured, every upload and export step is skipped and the run's verdict is unchanged
Validace
- bin/majordomus plan validate
Požadované důkazy
- sada testů
Úkoly
Každý z nich je prováděcí kontrakt s vlastními kritérii přijetí, validačním příkazem a požadovanými důkazy. Sloupec wave je vrstva grafu závislostí, v níž úkol leží.
| issue | status | vlna | závisí na | název |
|---|---|---|---|---|
| I3932 | BLOKOVÁNO | 1 | I3919 | Coverage is exported as LCOV and Cobertura from its one measurement, and uploaded to Coveralls and Codecov when their secrets exist |
| I3933 | BLOKOVÁNO | 2 | I3932 | Every master run's coverage and CI cost join a derived series that the site and the Cockpit draw |
| I3934 | PŘIPRAVENO | 0 | — | A CI run is emitted as an OpenTelemetry trace when an endpoint is configured, and nothing is sent when none is |
| I3935 | BLOKOVÁNO | 1 | I3934 | An agent session's telemetry reaches the same OpenTelemetry endpoint, configured once and projected to every provider |
| I3941 | PŘIPRAVENO | 0 | — | The UI draws the trends the pages publication records: coverage and CI time per run, and the slowest jobs |
| I4220 | PŘIPRAVENO | 0 | — | A run that /trends/ draws is a link the site check decides by provenance |
Graf
flowchart LR
I3932["I3932<br/>Coverage is exported as LCOV and Cobertura from its one measurement, and uploaded to Coveralls and Codecov when their secrets exist"]:::blocked
I3933["I3933<br/>Every master run's coverage and CI cost join a derived series that the site and the Cockpit draw"]:::blocked
I3934["I3934<br/>A CI run is emitted as an OpenTelemetry trace when an endpoint is configured, and nothing is sent when none is"]:::ready
I3935["I3935<br/>An agent session's telemetry reaches the same OpenTelemetry endpoint, configured once and projected to every provider"]:::blocked
I3941["I3941<br/>The UI draws the trends the pages publication records: coverage and CI time per run, and the slowest jobs"]:::ready
I4220["I4220<br/>A run that /trends/ draws is a link the site check decides by provenance"]:::ready
I3932 --> I3933
I3934 --> I3935
classDef done stroke:#16a34a,fill:#dcfce7,color:#14532d,stroke-width:2px
classDef active stroke:#2563eb,fill:#eff6ff,color:#1e3a8a,stroke-width:2px
classDef verify stroke:#7c3aed,fill:#f5f3ff,color:#4c1d95,stroke-width:2px
classDef ready stroke:#0891b2,fill:#ecfeff,color:#164e63,stroke-width:2px
classDef planned stroke:#0891b2,fill:#ecfeff,color:#164e63,stroke-width:2px
classDef blocked stroke:#b45309,fill:#fffbeb,color:#78350f,stroke-width:2px
classDef cancelled stroke:#6b7280,fill:#f9fafb,color:#374151,stroke-width:2px
classDef superseded stroke:#6b7280,fill:#f9fafb,color:#374151,stroke-width:2pxOdkazuje z tohoto diagramu (6)
- I3932 Coverage is exported as LCOV and Cobertura from its one measurement, and uploaded to Coveralls and Codecov when their secrets exist
- I3933 Every master run's coverage and CI cost join a derived series that the site and the Cockpit draw
- I3934 A CI run is emitted as an OpenTelemetry trace when an endpoint is configured, and nothing is sent when none is
- I3935 An agent session's telemetry reaches the same OpenTelemetry endpoint, configured once and projected to every provider
- I3941 The UI draws the trends the pages publication records: coverage and CI time per run, and the slowest jobs
- I4220 A run that /trends/ draws is a link the site check decides by provenance
Canonical record: .ai/repo/project/milestones/measurements-are-tracked-over-time.yaml. Read it back with majordomus plan show measurements-are-tracked-over-time.