R-772: a health probe that could not run records not_checked + NOT healthy, is looked at again on the 10 s cycle, and the app page says so

The state stays the containers' (probeSaysUnhealthy skips a not-checked record), so R-630 holds.
Red-proof RP-D1 — felhom.eu audits/visitors-2026-10-01/D.

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-10-01 21:01:42 +02:00
parent 1e8d045815
commit b53721db34
7 changed files with 721 additions and 5 deletions
+7 -3
View File
@@ -82,13 +82,17 @@ func (m *Manager) RunHealthProbes() error {
for _, np := range noProbe {
m.mu.Lock()
if s, ok := m.stacks[np.name]; ok {
// R-772: NOT healthy — no check ran. R-630's point still holds through NotChecked: the state is read from
// the containers, never forced to unhealthy by this record. Not healthy also means the 10-second fast
// cycle, so a container that comes back is checked within seconds, not 5 minutes later.
s.HealthProbe = &HealthProbeResult{
Healthy: true, // never RED on our own inability to look — R-630's whole point
LastCheck: m.now(),
Healthy: false,
NotChecked: true,
LastCheck: m.now(),
Details: []HealthCheckDetail{{
Type: "none",
Target: np.name,
Healthy: true,
Healthy: false,
Error: MsgHealthNoProbeContainer,
MessageKey: KeyHealthNoProbeContainer,
}},