chore(templ): regenerate host_tile_templ.go for cancelledFromHold

Catches the generated file up to the .templ source committed in 599fd15.
No behavior change — the generator just hadn't been re-run.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
2026-04-20 21:04:01 -04:00
parent a01db63952
commit 4c153bb115
+15
View File
@@ -308,6 +308,9 @@ func tileStatus(r *model.Run) string {
case model.StateWaitingReboot: case model.StateWaitingReboot:
return "Waiting for reboot" return "Waiting for reboot"
} }
if cancelledFromHold(r) {
return "Failed (cancelled)"
}
return string(r.State) return string(r.State)
} }
@@ -315,6 +318,9 @@ func tileMood(r *model.Run) string {
if r == nil { if r == nil {
return "idle" return "idle"
} }
if cancelledFromHold(r) {
return "fail"
}
switch r.State { switch r.State {
case model.StateCompleted: case model.StateCompleted:
return "pass" return "pass"
@@ -326,6 +332,15 @@ func tileMood(r *model.Run) string {
return "active" return "active"
} }
// cancelledFromHold is true when a FailedHolding run was later Cancelled
// by the operator (tracked by State=Cancelled with FailedStage still
// set — mid-stage cancels don't stamp FailedStage). These deserve a
// fail-colored tile because the run did fail; the cancel was just the
// operator choosing not to recover.
func cancelledFromHold(r *model.Run) bool {
return r != nil && r.State == model.StateCancelled && r.FailedStage != ""
}
func sshInvocation(keyPath, ip string) string { func sshInvocation(keyPath, ip string) string {
if keyPath == "" { if keyPath == "" {
return "ssh root@" + ip + " (hold key not yet recorded)" return "ssh root@" + ip + " (hold key not yet recorded)"