The controller no longer subscribes to the alive message: HostBeats, its handler, the heartbeat-gap duration and a fixed silent bound (issue 1183, AC3, AC4, AC5)
mesh/merge-gate head 19e3eac74658 merged into trunk 89cfa9431d8f — pass: builds build-agent, mesh-controller → ace, g14, novox, shanks; no bus step; every …
mesh/repo-check head 19e3eac74658 merged into trunk 89cfa9431d8f — pass: its merge-check.sh passed
mesh/delivery delivered

This commit is contained in:
2026-10-19 02:16:21 +02:00
parent 863db82737
commit 19e3eac746
26 changed files with 174 additions and 160 deletions
+5 -1
View File
@@ -318,6 +318,10 @@ func ago(d time.Duration) string {
return d.Round(time.Minute).String()
}
// silentBound is how long a machine may go unheard, where the watchman gives no verdict: three of the intervals nodes have
// always used, fixed now that no machine says its own (issue 1183).
const silentBound = heartbeatsMissed * heartbeatEvery
// heartbeatBound is a machine's S1 or S11 bound from the interval it says.
func heartbeatBound(every time.Duration) time.Duration {
if every <= 0 {
@@ -333,7 +337,7 @@ func watchHeartbeats(f *signalFacts) []conditions.Observation {
// Never heard is a machine that has not joined, which status says; asleep is not lost.
continue
}
bound := heartbeatBound(m.every)
bound := silentBound
silent := f.now.Sub(m.lastHeard)
if !m.silent(f.now) {
continue