Repository navigation
Run Harbor computer-1 on a desktop its image already runs - #9
Merged
celve merged 3 commits intoOct 22, 2026
Conversation
- examples/experimental/harbor_cua/desktop_computer.py: DesktopQwen3VLComputer1 uses the sandbox's own display (no Xvfb, XFCE, VNC or Chromium), waits settle_sec after each screen-changing action, can shrink screenshots in the sandbox and cap the screenshots a request carries, and refuses zoom and the browser actions. - harbor_agent_function.py: HARBOR_AGENT_IMPORT_PATH and HARBOR_AGENT_KWARGS pick and configure the agent class; HARBOR_VERIFIER_IMPORT_PATH and HARBOR_VERIFIER_KWARGS run a Harbor verifier class in place of a task's tests. launch_common forwards all four.
An image without ImageMagick overrides DesktopSession._capture_script, and an agent picks its session through session_class.
…inal answer included A JSON-parse retry sends a text-only prompt, so the history now keeps the current screen; the turn-cap fallback's history is trimmed to leave room for the screen it attaches.
celve
marked this pull request as ready for review
October 22, 2026 11:20
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
This was referenced Nov 1, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Lets Harbor's
computer-1(asQwen3VLComputer1) run on a desktop its sandbox image already runs, such as CUA-Lite's GNOME template, and lets a launch pick the agent and verifier classes. This is what a run needs to traincomputer-1on CUA-Lite's Lite.OSWorld tasks through the session server.What changes
examples/experimental/harbor_cua/desktop_computer.py:DesktopQwen3VLComputer1uses the image's display on:1as it is.settle_secafter each screen-changing action and can shrink screenshots in the sandbox (screenshot_width/height).keep_screenshots), counting what each prompt actually holds, so a JSON-parse retry keeps the current screen and the turn-cap final answer stays within the cap.zoom(crop-relative clicks are mis-scaled for Qwen3-VL's grid) and the browser actions, which also leave its prompt._capture_scriptandsession_class.harbor_agent_function.py:HARBOR_AGENT_IMPORT_PATHandHARBOR_AGENT_KWARGSpick and configure the agent class; a kwarg the binding sets is refused.HARBOR_VERIFIER_IMPORT_PATHandHARBOR_VERIFIER_KWARGSrun a Harbor verifier class in place of the task'stests/.launch_common.harbor_env_varsforwards all four.Verification
At
63279ff273, with the merge base4d17c365dfunchanged on the target:ac63e51a8f, no sglang):test_desktop_computer.py+test_qwen_computer.py: 28 passed.tests/fast/examples/experimental/harbor/: 104 passed, 1 failed. The failure istest_agentic_wiring_is_the_shipped_wiring, which imports sglang and fails without this change too.3a93821plus Keep message images on pretokenized chat requests sglang#5, CUA-Lite2af6926and the templatelin2139-liteosworld:Review
sol, two rounds; the second passed with no open P1, P2 or P3.
Still owed to the human
The full 20-round run needs an 8-GPU node, which is Linyu's call. This PR does not certify that run.