Pre-alpha, simulation only. AI-assisted. Nothing here controls real hardware. Not safety-certified and not independently audited.
Fixed
- The offline ROS 2 mock:
clear_stop()no longer raises. Before, a Bridge over it could be stopped but never cleared. - One-joint and two-link stand-in arms and the simulated machine tool:
apply()anddry_run()refuse NaN, infinity, text, booleans and None withValueErrorand change nothing. (The Bridge already rejected these values, so this matters only when an adapter is called directly.) - MTConnect wording corrected: the README, the industry guide and the adapter docstrings no longer say that MTConnect is "not purely read-only". As read in Part 5 (Interfaces), machines coordinate through published request and response states and the standard gives no direct way for one machine to command another. Our adapters are observe-only. The 0.0.4 page on PyPI still shows the old sentence; a published version cannot be edited.
Added
- Adapter conformance tests: one contract that every adapter must pass.
- An explicit-state model of the approval flow (18 reachable states, five properties) and a replay of every one-proposal event sequence up to five events through the model and the real Bridge. It is a hand-written abstract model, not a proof about the code.
Tested
Real pytest from the TestPyPI source archive of this version: 604 passed, 16 skipped (the 16 are designed skips of the conformance tests). Python 3.13.18, pytest 8.4.2, MuJoCo 4.0.0, MCP SDK 1.30.0 (Colab, 2026-11-07). This is also the first release checked on MuJoCo 4.0.0; earlier releases were checked on 3.17.0. CI passed on Python 3.10, 3.11 and 3.12 for the pull requests that make up this release.
Not tested yet
- Windows: the refusal fix from 0.0.3 and the PowerShell steps have not been re-tested there.
- Cross-machine repeatability is not measured.
Install: pip install ragleap-physical==0.0.5. Full list: CHANGELOG.md in the package folder.