10 Changelog
10.1 v0.1 (draft)
The first draft of the OpenHAL specification, dated 2026-10-24.
10.1.1 Version numbers
- On 2026-10-28 the draft dated 2026-10-24 became v0.1, because versions are now numbered
MAJOR.MINOR(ADR 0017). The requirements did not change. hal/initializenegotiates0.1. AprotocolVersionthat is not in the formMAJOR.MINOR, such as a date, getsINVALID_PARAMS(-32602) with a reason that names the supported versions.- The draft moved from its dated folder to
spec/v0.1/.
10.1.2 Hub protocol
- JSON-RPC 2.0 messages over WebSocket at
/rpcand over stdio throughopenhal rpc. - Initialization with version negotiation,
hal/initializedandhal/shutdown. - Core methods
hal/initialize,hal/devices/list,hal/devices/describe,hal/readandhal/readMany. - Control methods
hal/write,hal/dryRun,hal/planCheck,hal/stopandhal/unlock. - Full methods
hal/action,hal/confirmations/list,hal/confirmations/approve,hal/confirmations/reject,hal/routines/list,hal/routines/dryRunandhal/audit/query. - Notifications
hal/value,hal/blocked,hal/stopped,hal/deviceAdded,hal/deviceRemovedandhal/confirmationRequested. - The error registry, codes -32700 to -32603 and -32001 to -32023, with one registry name per Safety Kernel code.
- Conformance Levels
core,controlandfullfor Hubs and Drivers.
10.1.3 Device File format 0.1
- Identity and library matching (
device,id,match). - Driver selection with shorthand (
connect). - Read channels, write channels with min, max, step, rate and enum limits, and actions with typed arguments, requirements and run limits.
- Safe state as values, an action, or ordered steps.
- Interlocks and the expression language, with three-valued evaluation where unknown never passes.
- Watchdog heartbeat, loss behavior and max duration rules.
- Hazard classes and human-signed approvals for routines on high hazard Devices.
- Notes as data, provenance and verification status.
- Limits provenance. High risk targets stay read-only until a human confirms their limits.
10.1.4 Risk levels
On 2026-11-03, at the owner's decision of 2026-11-02 (ADR 0023).
- Every channel and action has a Risk Level,
low,mediumorhigh, which a Hub sets from the Device File. Reading is alwayslow. - Only high risk targets, and low or medium targets whose
suggestedlimits came from neither the Device nor the library, wait for a human to confirm their limits. Other low and medium targets take commands within the Device File's range, and a low channel ignores a rate that is onlysuggested. - A high risk action that can't be undone needs a human's approval at least once.
- Scope follows the lower of a target's Risk Level and the Device's hazard class.
- Device Files gain
riskon write channels and actions, andmap.pinties targets on one pin to one level. - The firmware protocol gains
PINand theio,pbandabkeys ofDESC, andDESCmay be up to 4,000 bytes.
10.1.5 Safety, routines and security
- The Safety Kernel check order, unknown values, Grants, confirmations, stop and unlock.
- YAML and Python routines that run through the Safety Kernel and start disabled.
- Local-only network exposure by default, human and agent tokens, and text from Devices handled as data.