Read the mesh's comment verdicts as approvals, and warn on no fix timed from the log (issue 403, review 69)
mesh/delivery-group group fix/403-fix-time checking: composed check out of date: novox/mesh-controller@7ca5a45ecc5a was judged against trunk ?, the trunk is no…
mesh/merge-gate out of date: judged against trunk 2fe5601397ae, the trunk is now 0863ec2a059d; judged again on a recheck or when it is merged
mesh/repo-check out of date: judged against trunk 2fe5601397ae, the trunk is now 0863ec2a059d; judged again on a recheck or when it is merged
mesh/delivery superseded: a newer head of the same pull request

The forge refuses an approval of one's own pull request, so the independent
reviews are comment reviews opening with "Verdict: approve at <sha>"; read
only APPROVED, the review phase was never measured. A fix whose start was
read back from the log was fixed before fix times were measured: it is kept
and shown, never warned on. A carried value at fixing after one at diagnosing
starts at its worker's active (the move), not its since (the diagnosis).
This commit is contained in:
jochen
2026-10-12 16:16:04 +02:00
parent 43df7ebc5a
commit aed7e0c968
3 changed files with 168 additions and 27 deletions
+6 -3
View File
@@ -146,8 +146,11 @@ its bundle cannot raise a controller condition (hq ADR 0240 rule 8, ADR 0256), s
## A fix's time (hq ADR 0313)
An issue's **fix time** runs from its first move to `fixing` (kept as `fixing-from`; a take-over or a later move
back to `fixing` does not restart it, and an issue moved before the moment was kept has it read from its log) to the
moment the last of its fixes is delivered. Once every fix it names is delivered, `get` carries it as `fix-time`:
back to `fixing` does not restart it) to the moment the last of its fixes is delivered. An issue moved before the
moment was kept has it read from its log: a move's own moment, or, for a value carried into the log after one at
another status, its worker's `active` (the move), never its worker's `since`, which a diagnosis first keeps. Such a
fix time says `from-log`: it is kept and shown, and never warned on, so the first fixes heard of after the tracker
starts measuring raise no warning for work done before it. Once every fix it names is delivered, `get` carries it as `fix-time`:
`from`, `end`, `took`, the issue's `class`, its **fix budget** (`budget`: five minutes for a leaf module, ten for a
core one, counted from the move to `fixing`), `over`, the fix delivered last (`fix`), the `worker`, and four
`phases` read from that fix, which add up to the fix time:
@@ -155,7 +158,7 @@ core one, counted from the move to `fixing`), `over`, the fix delivered last (`f
| phase | ends at | read from |
|---|---|---|
| implementing | its pull request opened | mesh-delivery's `opened` (the pull request's first head heard) |
| review | the first approval at its head | the forge's reviews (`gitea_pull_reviews`) |
| review | the first approval at its head | the forge's reviews (`gitea_pull_reviews`): the forge's own approval, or a comment review whose first line is `Verdict: approve at <sha>`, the sha the head it was posted at or a prefix of at least seven characters (the forge refuses an approval of one's own pull request, so the mesh's independent reviews are comments) |
| checks | its merge, required checks and any wait for the merge included | mesh-delivery's `merged_at` |
| merge to running | delivered | the delivery's `delivered` (its delivery time) |