docs: describe hardware approval gateway

This commit is contained in:
vee
2026-08-03 10:25:05 +08:00
parent a952f37ceb
commit 155fbb59ba
+14 -6
View File
@@ -59,9 +59,17 @@ The workstation service must use the same `.env.auth` as the public container;
the SSH key must be restricted to that single reverse-listen port and must not the SSH key must be restricted to that single reverse-listen port and must not
be allowed to run remote commands. be allowed to run remote commands.
The physical bench is a process-wide single-flight resource. A hardware action Public physical execution uses a local-approval lease. A browser first submits
owns the bench from intent planning through final physical feedback. Concurrent an access request, and the bench operator chooses one terminal at
hardware actions and passive physical-state reads receive HTTP `409` `http://127.0.0.1:8000/hardware-control`. The decision API is restricted to
(`hardware_busy`) with `Retry-After`; they never enter the CAN path or wait to run unproxied loopback traffic, so it cannot be used through the public domain or
later against stale position state. Dry-run and simulated-hardware requests are the SSH tunnel. The approved terminal may run multiple tests; its lease is
not serialized by this gate. revoked after 180 seconds without a physical test, on voluntary release, or by
the local operator. A process restart clears all leases and pending requests.
Inside the approved lease, the physical bench remains a process-wide
single-flight resource. A hardware action owns the bench from intent planning
through final physical feedback. Concurrent actions and passive physical-state
reads receive HTTP `409` (`hardware_busy`) with `Retry-After`; they never enter
the CAN path or wait to run later against stale position state. Dry-run and
simulated-hardware requests are not serialized by this action-level gate.