controller v0.269.0: whole restore from the second drive; crash loops stopped; exact image digests; steps judged by their own .felhom.yml (decisions 26-28, R-661 R-666 R-667 R-668 R-664 R-665 R-662, 09 6.4 part 6)
gates / gates (push) Successful in 27s

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
This commit is contained in:
2026-09-24 12:18:39 +02:00
parent 7c3b3a9694
commit 3c6b49b31c
141 changed files with 3401 additions and 237 deletions
+2 -2
View File
@@ -376,7 +376,7 @@ func (s *Server) localeFuncs(lang string) template.FuncMap {
// Found live on 2026-09-20: on an English app page the only Felhom-authored Hungarian left
// was this badge, „Naprakész", with a Hungarian tooltip under it.
"updateBadge": func(st stacks.Stack) *MetaBadge {
if st.HoldReason != "" { // R-625's twin — see updatebadge.go
if st.HoldReason != "" && st.HoldKind != "unhealthy_stop" { // R-625's twin — see updatebadge.go (v0.269.0: not for an unhealthy stop)
return &MetaBadge{
Label: b.Msg(lang, "badge.update.held"),
Class: "tag-error",
@@ -582,7 +582,7 @@ func (s *Server) readerFuncs(lang string, prev template.FuncMap) template.FuncMa
if base, ok := prev["updateBadge"].(func(stacks.Stack) *MetaBadge); ok {
out["updateBadge"] = func(st stacks.Stack) *MetaBadge {
bd := base(st)
if bd != nil && st.HoldReason != "" { // R-625: the title is the hold's opening, for THIS reader
if bd != nil && st.HoldReason != "" && st.HoldKind != "unhealthy_stop" { // R-625: the title is the hold's opening, for THIS reader
bd.Title = firstSentence(holdFor(st))
}
return bd