Recovery model
What a partition must do when something goes wrong
Recovery in GoMyRobotOS is declared per partition, in the contract, before any fault happens:
recovery:
watchdog: true
restart_policy: restart
safe_state: predefined
escalation_policy: supervisor
Field |
Meaning |
|---|---|
|
whether the partition uses a contractual heartbeat |
|
what a failure means: restart / safe state / escalation |
|
the predefined state the partition may fall back to |
|
who decides when recovery exceeds the partition’s authority |
The detect → contain → recover → resume pipeline
The recovery semantics follow the fault model that GoMyRobotFault and GoMyRobotVerify test against:
fault
↓
detect
↓
contain
↓
recover
↓
resume / safe state
and the associated research-measured recovery model:
T_detect T_contain T_recover T_resume
The frozen M0 baseline requires the end result to be a measurable recovery model, not merely a statement that “recovery exists”. Until milestone M3+ produces these measurements, no recovery time claims exist in this documentation.
The independence boundary (ADR-0011)
The component responsible for recovering a failed component must not depend exclusively on the failed component.
The division of labor is therefore strict:
GoMyRobotOS exposes recovery semantics, contract fields, recovery hooks on the runtime model, and the escalation surface.
GoMyRobotGuard implements the independent recovery mechanism - monitoring flight, service, and platform/hypervisor domains and taking restart / isolate / reset actions:
GoMyRobotGuard
│
┌───────────┼───────────┐
│ │ │
▼ ▼ ▼
Flight Service Platform
domain domain / hypervisor
│ │ │
└───────────┼─────────┘
▼
Recovery action
│
┌─────────────┼─────────────┐
▼ ▼ ▼
restart isolate reset
On HPSC this boundary has hardware teeth: the device includes an independent system-controller processor suitable for monitoring and fault management, a candidate for Guard’s independence (research track, M4).
Recovery as assurance evidence
Each contract’s requirements + verification.required_tests pair with the
recovery actions actually taken: GoMyRobotOS records what happened
(restart, safe state, escalation), and the external assurance process
decides whether that behavior supports the intended argument. That is
part of the M5 recovery/assurance
integration.