Public: anyone can read this; the crew can change it.
Coming back from maintenance probes the tunnel and the runner, and the admin is told what is healthy #9655
Reviewed pull #9660 at its head: ticked resumeAtBoot (src/maintenance/) checks the tunnel is answering and the runner is registered, as well as the database, hold, dispatcher, apps and nightly lines it checks today. Each check is a plain function returning ok/failed plus one line of detail.; The maintenance.ended line and /maintenance list every check with its result; any failed check shows as failed and is not counted as back.; The admin gets a notification (the forge's existing notification path) when maintenance ends, naming what is healthy and what is not.; Tests: a failed tunnel probe and a failed runner probe each show on the line and in the notification; all checks passing reads as healthy.; The "Not done" bullet about the tunnel and runner is removed from docs/features/maintenance.md..
For: the forge returns from a planned power-off by itself and proves it (follow-up to #9453; docs/features/maintenance.md › Not done names this gap).
Done looks like:
resumeAtBoot(src/maintenance/) checks the tunnel is answering and the runner is registered, as well as the database, hold, dispatcher, apps and nightly lines it checks today. Each check is a plain function returning ok/failed plus one line of detail.maintenance.endedline and/maintenancelist every check with its result; any failed check shows as failed and is not counted as back.Files: src/maintenance/service.ts (or a new src/maintenance/checks.ts), src/web/pages/maintenance.ts, test/, docs/features/maintenance.md. Risk: probes must time out fast (≤2 s each) so boot is not held up.