hub v0.132.0: the System page (versions + OS updates with the ring/switch/approve buttons, R-852), the Hosts Proxmox/kernel column, the operator-approved Docker engine release (2 healthy ring-0 nights), the crash-guard events (R-851); evidence audits/os-docker-crash-2026-10-04
gates / gates (push) Successful in 30s

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-04 16:16:02 +02:00
parent bee277ffad
commit 175ecfcdd2
45 changed files with 2198 additions and 12 deletions
+5
View File
@@ -695,6 +695,11 @@ var operatorOnlyEvents = map[string]bool{
"os_reboot_needed": true,
"os_ring0_stalled": true,
"os_not_covered": true,
// R-851 (hub v0.132.0): the crash guard. host_restarted_after_crash is deliberately NOT here — the household's line.
"host_crash_restart": true,
"host_crash_guard_tripped": true,
"host_crash_guard_rearmed": true,
"host_kernel_oops": true,
// R-197 (v0.93.0). "The sealed offsite repository key changed" is a custody fact about escrow
// blobs. A customer can take no action on it — the remedy is the operator's inspection of the
// off-site tier — and the text is operator-grade English naming host ids and retained-blob
@@ -12,11 +12,15 @@ import (
func TestOSUpdateEvents_OperatorOnlyExceptApplied(t *testing.T) {
for _, e := range []string{osupdates.EventFailed, osupdates.EventHealthFailed, osupdates.EventReleaseApprove,
osupdates.EventApprovedNow, osupdates.EventSettings, osupdates.EventStale, osupdates.EventRebootNeeded,
osupdates.EventRing0Stalled, osupdates.EventNotCovered, "tunnel_down", "tunnel_recovered"} {
osupdates.EventRing0Stalled, osupdates.EventNotCovered, "tunnel_down", "tunnel_recovered",
"host_crash_restart", "host_crash_guard_tripped", "host_crash_guard_rearmed", "host_kernel_oops"} {
if !operatorOnlyEvents[e] {
t.Errorf("%s is not operator-only", e)
}
}
if operatorOnlyEvents["host_restarted_after_crash"] {
t.Errorf("host_restarted_after_crash is the household's line and must NOT be operator-only")
}
if operatorOnlyEvents[osupdates.EventApplied] {
t.Errorf("%s is the household's line and must NOT be operator-only", osupdates.EventApplied)
}
@@ -0,0 +1,18 @@
SUBJECT: [Felhom] Warning: Your box restarted by itself after an unexpected stop. You do not need to do anything.
---
Dear Customer,
Your Felhom system sent the following notification:
Your box restarted by itself after an unexpected stop. You do not need to do anything.
Details:
- Server: demo-fixture
- Time: 2026-01-15 10:30
- Level: Warning
- Type: host_restarted_after_crash
If you have any questions, contact your operator.
Best regards,
Felhom.eu monitoring
@@ -0,0 +1,18 @@
SUBJECT: [Felhom] Figyelmeztetés: A dobozod egy váratlan leállás után magától újraindult. Ehhez nem kell semmit tenned.
---
Kedves Ügyfél!
A Felhom rendszered a következő értesítést küldte:
A dobozod egy váratlan leállás után magától újraindult. Ehhez nem kell semmit tenned.
Részletek:
- Szerver: demo-fixture
- Időpont: 2026-01-15 10:30
- Szint: Figyelmeztetés
- Típus: host_restarted_after_crash
Ha kérdésed van, vedd fel a kapcsolatot az üzemeltetővel.
Üdvözlettel,
Felhom.eu monitoring