Skip to content

needs_hardware is deliberately not a safety gate; pin the decision - #103

Merged
Nerds489 merged 1 commit into
mainfrom
docs/needs-hardware-not-a-gate
Sep 26, 2026
Merged

Nerds489 merged 1 commit into
mainfrom
docs/needs-hardware-not-a-gate

Conversation

@Nerds489

Copy link
Copy Markdown
Owner

Context

Follow-up audit to #102 (which enforced requires_root): checked the other manifest cost-flags for the same "declared but not enforced" class.

Audit result

Why needs_hardware stays informational

Unlike the two safety flags it is a capability prerequisite, not an authorisation:

  • The leaf tool fails on its own when the adapter or interface is absent.
  • No generic check settles "hardware present" the way os.geteuid() settles root.
  • A planning-only manifest already errors in plan_exec.
  • Folding it into the gate would force an engagement onto every hardware chain for no safety gain.

Change

Records the decision so it is not re-flagged as a bug or wrongly "fixed":

No behaviour change. Bump 12.1.8 -> 12.1.9.

An audit of the manifest cost-flags after #46 confirmed destructive and
requires_confirmation are enforced end to end: BaseToolWrapper.execute passes
destructive to the scope gate, and plan_exec authorises both where the manifest
and dispatch meet. needs_hardware is the one cost-flag still display-only, and
that is by design, not the #90/#102 defect repeated.

Unlike the other two it is a capability prerequisite, not an authorisation: the
leaf fails on its own when the adapter or interface is absent, no generic check
settles "hardware present" the way os.geteuid() settles root, and a
planning-only manifest already errors above. Folding it into the gate would
force an engagement onto every hardware chain for no safety gain.

Record the decision where the question arises: a note in plan_exec next to the
#46 enforcement, and test_needs_hardware_alone_does_not_gate alongside the tests
that pin the other two flags. The test fails if someone adds needs_hardware to
the gate condition, which is the reminder to read the note first.

Bump 12.1.8 -> 12.1.9.
@Nerds489
Nerds489 merged commit e1a02a9 into main Sep 26, 2026
2 checks passed
@Nerds489
Nerds489 deleted the docs/needs-hardware-not-a-gate branch September 26, 2026 03:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant