Guardrails
Mutating actions do not run unchecked. Every action is routed through the brain gate, and destructive operations pass additional guardrails that are live-proven on the scoped board pair.
Flash gate
Section titled “Flash gate”Flashing validates its input before touching the board:
- A valid tracked baseline, an explicit valid
.elf, or an explicit valid.hexsucceeds. - A missing path or an invalid suffix refuses deterministically.
Recover gate
Section titled “Recover gate”Recovery is board-policy aware:
- On a board with a supported
recover_mode(for example Nordic APPROTECT vianrf_pyocd_unlock), recover succeeds only with explicit confirmation. - On a board with no supported recover mode tracked, recover refuses deterministically.
Mutation watchers
Section titled “Mutation watchers”Watchers stop a run from thrashing against a broken operation. They are scoped, so a failure in one area does not block unrelated actions:
- Repeated flash failures block only
flash_firmware. - Repeated UART misses block only
read_serial. - Repeated recover failures block only
unlock_recover.
Disconnecting and reconnecting clears the block state.
Why it matters
Section titled “Why it matters”These gates are what make it safe to hand a model direct control of a debug probe: it can iterate on a fix, but it cannot silently loop on a destructive action or brick a board without an explicit, validated request.