Project-specific offline Shadow

Test the approved-then-changed case—not the easier never-approved case.

This profile is pinned to workbench-mobile-home-robot commit 716864c. It prepares two real Draft files from two offline planner artifacts, approves only the baseline, and submits both through one evaluator. The exact customer ExecutionController is loaded with a measured fail-closed adapter attached at ActionAdapter.dispatch; Shadow never invokes it.

Updated · RLSOK

Download the Workbench profile
01

Start from the owner's exact offline path

Use the clean public checkout at 716864c08ea383b29b29d46c0a1452cf579a3b2a and run tools/scripts/local_runner.py, the implementation behind make demo-offline. The captured plan must say offline=true, network_access=disabled and model_call=null.

The profile also hashes the typed ActionAdapter.dispatch(SemanticAction) boundary, its policy validator, the offline runner, the BSP readiness record and the design-partner handoff. It preserves REPOSITORY_BASELINE_READY_PHYSICAL_BRINGUP_BLOCKED and physical_release_ready=false.

02

Prepare, inspect and approve the exact Draft

The v2 ZIP is 12,149 bytes with SHA-256 00400f5a8dba514a8cb6b60caa0a84a8b8b2a30b2f49f308f2b1893fac92900f. Preparation accepts no approver argument and writes approval.state=tested with empty approval identity fields. Inspect baseline-draft.json before a different reviewer records approval.json.

The included approve command creates a local review record bound to the canonical Draft hash. It is not Hosted Cloud browser authentication. For the first owner mapping, replace the offline reference device/controller facts and use the owner's normal independent approval authority rather than treating this sample approval as customer acceptance.

curl -fLO https://github.com/realitywarden/rlsok/releases/download/quchaosheng-workbench-offline-shadow-v2/quchaosheng-workbench-offline-shadow-v2.zip
echo "00400f5a8dba514a8cb6b60caa0a84a8b8b2a30b2f49f308f2b1893fac92900f  quchaosheng-workbench-offline-shadow-v2.zip" | sha256sum -c -
unzip quchaosheng-workbench-offline-shadow-v2.zip -d rlsok-workbench-profile

python3 /path/to/workbench/tools/scripts/local_runner.py   --goal "Place the red block in the tray" --output baseline-demo.json
python3 /path/to/workbench/tools/scripts/local_runner.py   --goal "Inspect the red block" --output changed-demo.json
python3 rlsok-workbench-profile/workbench_offline_shadow.py prepare   --source-root /path/to/workbench --expected-commit 716864c08ea383b29b29d46c0a1452cf579a3b2a   --demo-json baseline-demo.json --output baseline-draft.json
python3 rlsok-workbench-profile/workbench_offline_shadow.py prepare   --source-root /path/to/workbench --expected-commit 716864c08ea383b29b29d46c0a1452cf579a3b2a   --demo-json changed-demo.json --output changed-draft.json

# A separate reviewer inspects baseline-draft.json before recording this step.
python3 rlsok-workbench-profile/workbench_offline_shadow.py approve   --draft baseline-draft.json --approver <reviewer-identity>   --approved-at <RFC3339-time> --output approval.json
python3 rlsok-workbench-profile/workbench_offline_shadow.py evaluate   --baseline-draft baseline-draft.json --changed-draft changed-draft.json   --approval approval.json --source-root /path/to/workbench --output result.json
03

Read both decisions and every zero

  • The unchanged approved configuration reports WOULD_ALLOW with SHADOW_NO_DISPATCH.
  • The separately prepared changed Draft differs at configuration.plannerArtifactDigest and reports WOULD_BLOCK with configuration_digest_mismatch and BLOCKED_BEFORE_DISPATCH.
  • The profile imports the exact customer ExecutionController and attaches an instrumented fail-closed adapter; its measured ActionAdapter.dispatch, goal, zero, stop, hold, cancel, retry and action-attempt counts remain zero.
  • A never-approved Draft and any Draft edited after approval fail closed instead of being accepted as the requested test.
04

Keep this result in its real evidence class

The v2 release was downloaded again, its focused tests passed, and its evaluator loaded the exact customer ExecutionController at commit 716864c, attached the measured adapter, submitted the two existing Draft files and returned WOULD_ALLOW then WOULD_BLOCK with zero measured dispatches. That is reproducible software/offline evidence only. It is not a deployment, a physical robot, code adoption, an authenticated external fact or customer acceptance.

Sources and verification scope

Source code and guides describe implementation and setup. Release notes identify reported checks and their limits. Publication alone does not establish customer use or physical-robot validation.

Frequently asked questions

Does WOULD_ALLOW call ActionAdapter.dispatch?

No. It is an eligibility result in offline Shadow. The exact ExecutionController owns the attached instrumented adapter, but Shadow does not invoke the controller; any accidental dispatch would be counted and fail closed.

Is the included approval a Hosted browser approval?

No. It is a separate local record bound to the exact Draft hash. The repository owner must perform the final mapping and use their real independent approval authority.

Does this make the Workbench repository physically ready?

No. The profile preserves the repository's own blocked physical-bringup status and makes no deployment or hardware claim.

Continue with the relevant guide

Try the local example without an application. For setup or integration help, you can also contact us.