docs(beast): cockpit bridge enabled and verified live on beast-01 - #163
Conversation
beast-cockpit.service is now enabled+active (was disabled/inactive), the monorepo cutover is deployed (legacy ugv_ws gone), rosbridge is up on 127.0.0.1:9090, tailscale serve fronts it over the tailnet, and the DISARM/RE-ARM round trip via /ugv/set_allow_motion was verified over the bridge. allow_motion left true (armed).
🤖 CodeAnt AI — Review Status
|
Thanks for using CodeAnt! 🎉We're free for open-source projects. if you're enjoying it, help us grow by sharing. Share on X · |
PR Summary by Qododocs(beast): Update beast-01 quick-connect for live cockpit/rosbridge setup
AI Description
Diagram
High-Level Assessment
Files changed (1)
|
There was a problem hiding this comment.
Pull request overview
Updates docs/beast-ops.md to reflect the newly verified (2026-08-03) live state of BEAST-01 connectivity and cockpit/rosbridge availability, ensuring operators follow current on-robot reality rather than stale deployment assumptions.
Changes:
- Refreshes the Quick connect block to reflect the monorepo cutover deployment and current workspace path.
- Documents
beast-cockpit.serviceas enabled/active and describes the rosbridge endpoint via Tailscale Serve. - Records a verified DISARM/RE-ARM round trip via
/ugv/set_allow_motion.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| `~/beast/RobotOverview/robot/beast/ros2_ws`). `beast-ros-base.service` and | ||
| `beast-cockpit.service` are both **enabled and active**. `beast-cockpit` serves the | ||
| rosbridge on `127.0.0.1:9090`, fronted over the tailnet by | ||
| `sudo tailscale serve --https=443 http://127.0.0.1:9090` → `https://beast-01.tyrannosaurus-magellanic.ts.net/`. |
| The DISARM/RE-ARM round trip over that bridge via `/ugv/set_allow_motion` was verified live | ||
| (2026-08-03) and `allow_motion` was left `true` (armed). Network-path details below were | ||
| last fully verified 2026-07-31 unless marked newer. |
Code Review by Qodo
1. Cockpit status contradicts runbook
|
| rosbridge on `127.0.0.1:9090`, fronted over the tailnet by | ||
| `sudo tailscale serve --https=443 http://127.0.0.1:9090` → `https://beast-01.tyrannosaurus-magellanic.ts.net/`. |
There was a problem hiding this comment.
1. Rosbridge url ambiguity 🐞 Bug ≡ Correctness
Quick connect presents the bridge as an https://... URL and omits the --bg form used elsewhere, but the cockpit/client connection is explicitly documented as wss://... in existing cockpit docs. This ambiguity can cause operators to copy/paste the wrong protocol/command when configuring or troubleshooting cockpit connectivity.
Agent Prompt
### Issue description
`docs/beast-ops.md` Quick connect shows the cockpit bridge being fronted as `https://...`, but other authoritative cockpit docs describe the client endpoint as `wss://...` and standardize the `tailscale serve` invocation with `--bg`. This can mislead operators into using the wrong scheme in clients or thinking the endpoint is a normal HTTPS page.
### Issue Context
Tailscale Serve terminates HTTPS and can proxy WebSockets, so the public hostname is the same, but clients should be pointed at a `wss://` URL (as the cockpit docs/README already state).
### Fix Focus Areas
- docs/beast-ops.md[10-18]
ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools
| `~/beast/RobotOverview/robot/beast/ros2_ws`). `beast-ros-base.service` and | ||
| `beast-cockpit.service` are both **enabled and active**. `beast-cockpit` serves the |
There was a problem hiding this comment.
2. Cockpit status contradicts runbook 🐞 Bug ≡ Correctness
Quick connect now states beast-cockpit.service is enabled/active and tailscale serve is fronting the bridge, but later in the same runbook it still says BEAST-01 does not currently have the cockpit service/proxy configured and that cockpit telemetry/controls are not live. This makes the runbook self-contradictory for operators trying to decide whether cockpit is actually deployed.
Agent Prompt
### Issue description
`docs/beast-ops.md` now contains conflicting claims about cockpit deployment: the Quick connect block says the cockpit service is enabled/active and the bridge is served over the tailnet, while a later (dated) acceptance note still claims cockpit is not installed/enabled and not live.
### Issue Context
If the later bullets are intended as historical notes, they should be rewritten in past tense and/or explicitly marked as superseded by the newer Quick connect verification.
### Fix Focus Areas
- docs/beast-ops.md[10-18]
- docs/beast-ops.md[230-237]
ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools
| The DISARM/RE-ARM round trip over that bridge via `/ugv/set_allow_motion` was verified live | ||
| (2026-08-03) and `allow_motion` was left `true` (armed). Network-path details below were |
There was a problem hiding this comment.
3. Armed state lacks safe closeout 🐞 Bug ☼ Reliability
Quick connect records that after testing /ugv/set_allow_motion, allow_motion was left true (armed) without an explicit “return to safe state” step. This is risky framing in an ops runbook given the same document warns about prior/unfinished stop-on-silence safety verification while allow_motion is true.
Agent Prompt
### Issue description
The Quick connect verification note ends in an armed state (`allow_motion=true`) without guidance to disarm when done. In an operational runbook, this should either (a) explicitly state it was re-disarmed after the verification, or (b) include a clear instruction to disarm unless actively supervising motion.
### Issue Context
The same doc contains strong warnings about motion continuing on command silence and that the watchdog behavior was not yet re-tested, which increases the importance of leaving the robot in a known-safe state.
### Fix Focus Areas
- docs/beast-ops.md[10-18]
- docs/beast-ops.md[216-226]
ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: b8d9092a9f
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| `~/beast/ugv_ws` checkout is at `2d1eab7`; `beast-ros-base.service` is active and | ||
| `beast-cockpit.service` is inactive. The monorepo cutover described below has not yet been | ||
| deployed. Network-path details below were last fully verified 2026-07-31 unless marked newer. | ||
| `~/beast/ugv_ws` checkout is gone and the monorepo cutover is deployed (workspace at |
There was a problem hiding this comment.
Point the live-check command at the deployed workspace
After this cutover, anyone following the mandatory Ground-truth check at lines 121–125 will still run source ~/beast/ugv_ws/install/setup.bash. Because this change says that checkout has been removed and the command chains operations with &&, execution stops before the topic, voltage, and publisher checks, leaving the prescribed live-verification path unusable; update it to source the install under ~/beast/RobotOverview/robot/beast/ros2_ws.
AGENTS.md reference: AGENTS.md:L99-L106
Useful? React with 👍 / 👎.
| `~/beast/ugv_ws` checkout is gone and the monorepo cutover is deployed (workspace at | ||
| `~/beast/RobotOverview/robot/beast/ros2_ws`). `beast-ros-base.service` and |
There was a problem hiding this comment.
Record the deployed monorepo revision
This cutover removes the previously recorded live commit 2d1eab7 but replaces it only with a directory. The deployment recipe at lines 173–182 explicitly requires git -C ~/beast/RobotOverview rev-parse --short HEAD to be recorded in Quick connect, and because deployments are manual (lines 185–186), the path cannot establish which revision the services are actually running; record the live monorepo HEAD so later operators can correlate behavior with source.
AGENTS.md reference: AGENTS.md:L94-L106
Useful? React with 👍 / 👎.
| `beast-cockpit.service` are both **enabled and active**. `beast-cockpit` serves the | ||
| rosbridge on `127.0.0.1:9090`, fronted over the tailnet by | ||
| `sudo tailscale serve --https=443 http://127.0.0.1:9090` → `https://beast-01.tyrannosaurus-magellanic.ts.net/`. |
There was a problem hiding this comment.
Update the deployment owner doc with the live rollout
These lines now declare beast-cockpit.service active and Tailscale Serve configured, while docs/deploy.md lines 61–65 still tell deployment operators that the service has not been installed or enabled and that Serve has not been configured. That leaves the designated deployment-state document reporting the exact opposite of this live verification, which can cause operators to repeat rollout steps or diagnose the transport as absent; update that section while retaining the separate fact that the Hangar's BEAST_COCKPIT_WS_URL remains unconfigured.
AGENTS.md reference: AGENTS.md:L108-L116
Useful? React with 👍 / 👎.
User description
Updates the Quick connect block to current verified state (2026-08-03):
CodeAnt-AI Description
Document the verified live cockpit bridge and armed robot state
What Changed
Impact
✅ Clearer live robot connection steps✅ Confirmed cockpit service availability✅ Verified remote motion-control access💡 Usage Guide
Checking Your Pull Request
Every time you make a pull request, our system automatically looks through it. We check for security issues, mistakes in how you're setting up your infrastructure, and common code problems. We do this to make sure your changes are solid and won't cause any trouble later.
Talking to CodeAnt AI
Got a question or need a hand with something in your pull request? You can easily get in touch with CodeAnt AI right here. Just type the following in a comment on your pull request, and replace "Your question here" with whatever you want to ask:
This lets you have a chat with CodeAnt AI about your pull request, making it easier to understand and improve your code.
Example
Preserve Org Learnings with CodeAnt
You can record team preferences so CodeAnt AI applies them in future reviews. Reply directly to the specific CodeAnt AI suggestion (in the same thread) and replace "Your feedback here" with your input:
This helps CodeAnt AI learn and adapt to your team's coding style and standards.
Example
Retrigger review
Ask CodeAnt AI to review the PR again, by typing:
Check Your Repository Health
To analyze the health of your code repository, visit our dashboard at https://app.codeant.ai. This tool helps you identify potential issues and areas for improvement in your codebase, ensuring your repository maintains high standards of code health.