orchestrator: Drop verdicts for a component already isolated

A failure verdict or a corruption report can be in flight from before the
cascade gated its component. VerificationFailed and CorruptionDetected now
return early when the component is gated. Recovering it re-walks the chain for
a device that stays held, and on exhaustion a Required one locks the platform
down over a cascade that was already contained, which contradicts the rule that
a non-Required cascade never reaches lockdown.

property_isolation_is_sticky_under_random_sequences guards both: after
ReportIsolated(id), nothing in the rest of the run emits ReleaseReset or
RecoverComponent for that id. The cursor invariant the walk depends on is
written down on the field, since that property is what guards it.

Assisted-by: Claude:claude-opus-5
Signed-off-by: Christina Quast <christina.quast@9elements.com>
2 files changed
tree: c1714b771a94e737f278a42693b39753a545021b
  1. .github/
  2. docs/
  3. drivers/
  4. hal/
  5. openprot/
  6. platform/
  7. presubmit/
  8. services/
  9. target/
  10. third_party/
  11. tools/
  12. util/
  13. .bazelignore
  14. .bazelrc
  15. .bazelversion
  16. .clang-format
  17. .gitignore
  18. .semgrepignore
  19. BUILD.bazel
  20. CONTRIBUTING.md
  21. LICENSE
  22. MODULE.bazel
  23. MODULE.bazel.lock
  24. pw
  25. README.md
  26. rust-toolchain.toml
  27. workflows.json
README.md

OpenPRoT

Technical Charter

The OpenPRoT Technical Charter can be found at https://github.com/OpenPRoT/.github/blob/main/GOVERNANCE.md

Getting Started

NOTE: We are converting our build system to bazel. We recommend installing bazelisk to automatically manage bazel versions.

Available Tasks

You can run tasks using the Pigweed workflow launcher pw or bazel.

  • ./pw presubmit - Run presubmit checks: formatting, license checks, C/C++ header checks and clippy.
  • ./pw format - Run the code formatters.
  • bazel test //... - Run all tests.
  • bazel build //docs - Build documentation.

Development

The project is structured as a bazel module.

Requirements

  • Bazel. We recommend installing bazelisk to automatically manage bazel versions.

No additional tools are required - all dependencies are managed by bazel.