Skip to content

Tier 1: RoboPay Webots + Zenoh Integration (OpenMind v25) - #47

Open
stackingpi wants to merge 4 commits into
fabricfoundation:mainfrom
stackingpi:main
Open

Tier 1: RoboPay Webots + Zenoh Integration (OpenMind v25)#47
stackingpi wants to merge 4 commits into
fabricfoundation:mainfrom
stackingpi:main

Conversation

@stackingpi

Copy link
Copy Markdown

Implemented Webots bridge controller and vendor manifest for Tier 1 RoboPay specification. Tested and verified live Zenoh telemetry transmission.


π—π

@stackingpi
stackingpi requested a review from a team July 21, 2026 21:02

@Junzhe Junzhe left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for the submission. The current PR demonstrates basic Zenoh telemetry publishing, but it does not yet implement the RoboPay Tier 1 paid simulator flow.

The submitted script only publishes heartbeat messages to robopay/telemetry/status. It does not receive a paid ActionEvent, control a Webots robot, produce simulator state metrics, or return a correlated execution result.

Before this PR can be reviewed as Tier 1, please provide:

  1. A robot-specific profile, priced skill, payment policy, execution mapping, example ActionEvent, and validation report.
  2. A reproducible flow from a verified paid request through Zenoh to a non-trivial Webots robot action.
  3. A structured success/failure result correlated by actionId.
  4. Evidence for invalid/replayed requests, no-settle-on-failure, simulator metrics, Sim-to-Sim validation, and CI tests.
  5. Setup documentation and a simulator recording with corresponding terminal logs.

Once the core paid action and simulator integration is present, we can proceed with the robot behavior and Sim-to-Sim review.

@stackingpi

Copy link
Copy Markdown
Author

Hi Junzhe,

I have updated robopay_bridge.py to address the Tier 1 paid action execution requirements:

Bi-Directional Action Loop: Refactored from a simple publisher to a Zenoh subscriber listening on robopay/action/request.

Replay Protection: Added an in-memory PROCESSED_ACTIONS guard to drop duplicate actionId requests.

Correlated Results: Publishes execution metrics, settlement status, and failure/success payloads correlated by actionId to robopay/action/result.

Ready for your re-review whenever you get a chance!

@stackingpi
stackingpi requested a review from Junzhe July 22, 2026 21:02

@Junzhe Junzhe left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for the two follow-up commits. They add a Zenoh subscriber, a correlated-looking result payload, and a Webots polling process, but the Tier 1 gate is still not met.

The bridge listens on robopay/action/request rather than the documented robot/tunnel/action, treats any non-empty payment_proof as verified, keeps replay state only in memory, and sets settled=true even when simulator delivery fails. Its local/configured fallbacks also report success without a verified Webots execution, while webots_spot_controller.py does not command actuators or derive terminal state from the simulator. The submitted test injects proof-ok directly and therefore does not demonstrate a real x402/Tunnel path.

Please add the robot-specific profile package in the required directory, the complete paid request → Tunnel → actionId-correlated simulator action → terminal result → success-only settlement flow, a deliberate failure/timeout with no settlement and durable replay protection, reproducible docs/tests/CI, simulator metrics/recording, and Sim-to-Sim evidence.

@Junzhe Junzhe left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There is useful Webots/Zenoh groundwork in this PR, and I want to clarify the scope of my earlier review.

The bridge does not need to verify payment a second time if its trust boundary is the Tunnel. However, the submitted path currently treats any non-empty payment_proof as authorization, while the tests inject proof-ok, so it does not demonstrate that actuation is reachable only from the Tunnel's verified output. Separately, simulator delivery failure can still produce settled=true, and the Webots controller does not yet drive an actuator or derive a terminal result from simulator state. The robot-specific profile/reproduction package and Sim-to-Sim evidence are also still missing.

The remaining request is evidence of the actual trust boundary, real simulator execution, and success-gated settlement with a failure/no-settlement case. The topic name, replay mechanism, CI arrangement, and test technique are your choice.

@stackingpi
stackingpi requested a review from Junzhe July 26, 2026 10:07
@stackingpi

Copy link
Copy Markdown
Author

Hi Junzhe,

Just a heads-up that I updated my GitHub username to stackingpi and synced my local remotes, so you might see the new handle on commits/PRs

@Junzhe Junzhe left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for continuing to develop the Zenoh and Webots integration. The clearest path to the next review is a single reproducible acceptance trace across the actual trust boundary: a Tunnel-verified action, actuator commands in Webots, terminal status derived from simulator state, and settlement only after that successful result. Please pair it with one deliberate delivery failure or timeout showing an error result and no settlement. This focused evidence would let the existing documentation be assessed against observable behavior.

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.

2 participants