Repository navigation
Conversation
There was a problem hiding this comment.
go2 replay realtime (arm64)
Details
| Benchmark suite | Current: ce47c47 | Previous: e4b62ac | Ratio |
|---|---|---|---|
peak memory |
1843.207 MB |
1840.531 MB |
1.00 |
peak threads |
358 threads |
365 threads |
0.98 |
network (transport) |
2736.197 MB |
2730.976 MB |
1.00 |
disk write |
1.688 MB |
1.695 MB |
1.00 |
instructions |
137.595 G |
137.761 G |
1.00 |
This comment was automatically generated by workflow using github-action-benchmark.
❌ 1 Tests Failed:
View the top 1 failed test(s) by shortest run time
To view more test analytics, go to the Test Analytics Dashboard |
ce97909 to
1205383
Compare
e419ec4 to
df2a447
Compare
1205383 to
e773349
Compare
df2a447 to
24e0d00
Compare
hybrid-teleop-sim now declares three web channels with cockpit(): color_image as JPEG (15 Hz, quality 75), operator_hold_status as JSON (paced, so a second change right after the first still arrives, and replayed to a new viewer) and operator_hold_command as a shared browser input of OperatorHoldCommand, decoded by operator_hold_command.json.v1. web/hybrid-teleop is a zero-build page for it: the camera on a canvas (or a WebRTC video), the hold state with route, reason and elapsed time, and Request operator / Acknowledge buttons that publish on operator_hold_command. The log line shows how the last publish settled, including a decode_failed rejection. An optional ?token= is passed to connect().
e773349 to
b24ea74
Compare
24e0d00 to
ce47c47
Compare
[Medium impact] The change reaches the simulated xArm operator workflow. Fix the camera fallback before merging so operators do not lose the live image when the camera transport changes. Findings
SummaryAdds a browser page for The camera fallback needs to be fixed before merging: after WebRTC switches to JPEG, incoming frames are drawn into a hidden canvas while the stopped video remains visible. Browser execution confirmed this loss of the live camera. PRs #4790, #4791, and #4793 retain the same behavior and do not resolve it. The custom page does not hide
Reviews (1) · Last reviewed commit: "feat(web): operator page with camera, ho..." · Reviewed by Greptile |
| } else if (value instanceof Uint8Array) { | ||
| pending = value; | ||
| if (!drawing) drawFrames(); |
There was a problem hiding this comment.
Camera stays hidden after fallback
When the camera switches from WebRTC to JPEG after a relay reconnect, the page draws incoming JPEG frames into a hidden canvas. The WebRTC branch hides canvas and shows video, but the JPEG branch never reverses those changes. The operator therefore keeps seeing the stopped video instead of the live camera, even though new frames are arriving and decoding successfully.
Restore canvas.hidden = false, set video.hidden = true, and clear the obsolete video.srcObject when JPEG frames arrive. This loss of the operator's live camera should be fixed before merging.
| } else if (value instanceof Uint8Array) { | |
| pending = value; | |
| if (!drawing) drawFrames(); | |
| } else if (value instanceof Uint8Array) { | |
| canvas.hidden = false; | |
| video.hidden = true; | |
| video.srcObject = null; | |
| pending = value; | |
| if (!drawing) drawFrames(); |
Knowledge Base Used: Web cockpit and relay transport
Artifacts
Executed Chromium camera transition test
- This executed harness serves unchanged git HTML with an explicit SDK fixture and asserts real track rendering, JPEG drawing, and visibility state, reproducing the hidden-frame defect.
Camera transition results and exact source quotes
- The successful test run records command, working directory, exit code, exact requested source lines, higher-stack comparisons, and browser measurements, confirming JPEG pixels update on a hidden canvas.
▶ Base commit has no operator page
- Chromium opens the harness endpoint backed by the base git-tree check and records its 404 because the operator page does not yet exist, establishing the pre-change scope.
- The browser captures the missing-page response for the base commit, showing that no comparable pre-change camera UI exists.
▶ Head page hides JPEG frames after RTC video
- Chromium exercises the JPEG control, native video track, and subsequent JPEG frames on the actual head page, demonstrating that the camera remains on the obsolete video instead of showing the newly drawn JPEGs.
Head page after JPEG drawing remains hidden
- The browser captures the final camera state with measured fixture diagnostics after two post-RTC JPEG draws, documenting that the updated canvas remains hidden.
Executed higher-stack inspection commands
- This executed shell script checks camera visibility assignments and SDK/bridge changes across all requested higher-stack commits, checking for a later complete fix.
Higher-stack inspection results
- The inspection output records command, working directory, exit code, visibility assignments, and unchanged tracked files, showing that the higher stack does not repair the transition.
Stacks on #4788
Why do we need this?
The operator needs to see the robot and hold it from a browser.
What is this feature?
A web page for
hybrid-teleop-sim: the arm camera, the operator hold status (ON/OFF, route, reason, time since) and two buttons, "Request operator" and "Acknowledge".The blueprint declares three web channels (camera as JPEG, hold status, hold command). The hold status is paced, so a change right after another is not dropped. The page is plain HTML in
web/hybrid-teleop, served by the local relay the blueprint starts. The hold command channel carriesOperatorHoldCommandthrough theoperator_hold_command.json.v1decoder; a malformed command is rejected (decode_failed) and the page's log line shows it.How to manually run this
dimos run hybrid-teleop-sim --serve-dir web/hybrid-teleop, then open http://localhost:7780.Click "Request operator": status goes ON. Click "Acknowledge": status goes OFF.
Which issue(s) does this PR close?
None.
Checklist