mesh-issues: an issue knows whether its fix is delivered, says it ready to verify, and a fix stuck after its merge is said (hq ADR 0281)
The operator approved measuring from the delivery's own events whether each fix an issue names reached the machines; delivered is not resolved, and a merged fix that does not arrive is said on the issue and the operator's channel instead of found.
This commit is contained in:
@@ -81,6 +81,24 @@ to two minutes, which the tool runner allows a handler while keeping its event a
|
||||
The new values are optional keys of an issue's one JSON value: an issue kept before reads as having none; the
|
||||
key-value state has no schema to migrate.
|
||||
|
||||
## Whether the fix is delivered (hq ADR 0281)
|
||||
|
||||
For each pull request an issue's `fixed-by` names, the module keeps what `mesh-delivery.transition` last said —
|
||||
state, why, merged and when — or asks `seat:mesh-delivery.checks` once (at its own `moved`) for one it has not
|
||||
heard of. Nothing sets it by hand. `get` and every `list` row carry `delivery`, one line derived from it, worst
|
||||
first: "fix not delivered: …", "held: …", "fix merged, not delivered: …", "fix not merged: …", "nothing heard from
|
||||
the delivery of …", "delivered to every machine it should reach" (covered by a later merge says so).
|
||||
|
||||
Delivered is not resolved. When every fix of an issue not yet resolved is delivered, the issue gains a note and the
|
||||
event `ready-to-verify`, once per set of fixes; it is resolved once its acceptance is proven live. A fix is named
|
||||
while the issue stays `located`: `move` to the status it has changes what it holds and is refused when it changes
|
||||
nothing.
|
||||
|
||||
Every five minutes the module looks for a fix merged and not delivered after `stuck-after` (default `2h`): it is
|
||||
said once — a note on the issue and a warning on the operator's channel (`seat:operator-channel.notify`, key
|
||||
`issue-tracker.fix-stuck.<number>`), cleared there when every fix of the issue is delivered. A module that runs only
|
||||
its bundle cannot raise a controller condition (hq ADR 0256), so the warning is the channel's, not the controller's.
|
||||
|
||||
## The import of hq's issues (slice 3)
|
||||
|
||||
`issue-tracker.import` reads every `04-ISSUES/NNN-slug/00-report.md` of hq **through the records module
|
||||
@@ -174,7 +192,8 @@ verb takes an argument naming a caller, and none can be given one.
|
||||
## Settings
|
||||
|
||||
`duplicate-check` (`on`; `off` stops the triage of new issues), `judge-model` (`sonnet`; `haiku` or `opus`) and
|
||||
`forge-owner` (the forge's owner of the repositories `fixed-by` names, for asking a delivery) steer the triage.
|
||||
`forge-owner` (the forge's owner of the repositories `fixed-by` names, for asking a delivery) steer the triage;
|
||||
`stuck-after` (`2h`) is how long a merged fix may take to be delivered before it is said.
|
||||
|
||||
```
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user