Merge pull request 'Say a build handed out again restarted: its log, the queue and the check's verdict (issue 594, part)' (#280) from fix/594-a-replaced-agent-finishes-its-build into main

This commit was merged in pull request #280.
This commit is contained in:
2026-10-12 22:55:59 +00:00
8 changed files with 230 additions and 5 deletions
+5 -2
View File
@@ -73,6 +73,9 @@ type QueuedAsk struct {
On string `json:"on,omitempty"`
Was string `json:"was-on,omitempty"`
Started time.Time `json:"started,omitempty"`
// Delivery is the how-manyth time the ask was handed out, as its latest start said: more than 1 is
// a build started again after an earlier taker left it (novox/hq issue 594).
Delivery int `json:"delivery,omitempty"`
}
// Queue is the seat's work queue as it stands.
@@ -162,7 +165,7 @@ func ClassifyQueue(asks []QueuedAsk, delivered uint64, ackPending int, heard Bui
}
a.State = AskDead
if s, ok := current[a.ID]; ok {
a.On, a.Started = s.On, startedAt(s)
a.On, a.Started, a.Delivery = s.On, startedAt(s), s.Delivery
running = append(running, i)
continue
}
@@ -183,7 +186,7 @@ func ClassifyQueue(asks []QueuedAsk, delivered uint64, ackPending int, heard Bui
for _, i := range group {
if slots == 0 {
// Past what the worker counts: handed out as often as it may be.
out[i].On, out[i].Started = "", time.Time{}
out[i].On, out[i].Started, out[i].Delivery = "", time.Time{}, 0
continue
}
out[i].State = AskInFlight