test: add Linux GUI end-to-end coverage#7
Conversation
Qualification timeout diagnosisThe no-event timeout is upstream of CUA and is not Linux-specific. A temporary DEBUG run reproduced the same sequence on macOS and Linux:
Evidence: debug smoke run. The first request timed out at This explains the previously empty event traces and absent HAI retry warnings: the model call has not returned to This PR now preserves runtime logs on timeout and across attempts, using graceful shutdown first. The temporary DEBUG override was removed after diagnosis because it records full model payloads/screenshots and creates oversized artifacts. The production fix belongs in HAI/runtime: make one layer own retries (disable OpenAI SDK retries for the wrapped vLLM client) and enforce a total retry deadline compatible with the agent/task budget. Full-suite 3/3 qualification should resume after that runtime fix is released and pinned. |
Summary
Adds first-class Linux GUI end-to-end coverage for HoloDesktop CLI, stacked on #6.
allremains the default)Why
#6 publishes and installs the managed Linux x86_64 runtime, but the existing live suite only proves desktop control on macOS and Windows. This PR closes that confidence gap by exercising the shipped runtime inside a real rendered Linux GUI session and checking externally observable final state.
Stack
feat/linux-runtime-0.1.98955498cec62c34912d757909071fa9a1884e05e8ef65190e1f941cd9ff6aa9dfc7de3b5a34238b5hai-agent-runtime0.1.9 Linux x86_64Local validation
uv run ruff format --check .uv run ruff check .uv run mypy src/uv run pytest -q— 428 passed, 14 skippedgit diff --checkHosted validation
Final-head required checks are green:
The hosted work also found and fixed real Linux workflow defects before this head: missing Xauthority initialization, the missing
gnome-screenshotbackend required by PyAutoGUI, an Openbox readiness race, cross-drive Windows artifact upload, and KCalc's misleading QtSTATE_SHOWINGvalue. The corrected KCalc evaluator has hosted evidence reading2 + 2 = 4from the AT-SPI text interface and extracting result4.Linux full-suite qualification runs on the final head:
holo-desktop-holo-3-1-35b-visual-multi-fast; tasks fail before CUA starts.4in 26 seconds, while other turns stalled at the model boundary.Artifacts are preserved on every pass/failure and aggregate reports fail honestly when a task is red. The Linux-only dispatch created exactly four Ubuntu shards, with two admitted concurrently and no macOS/Windows jobs.
Promotion status
Keep this PR draft. Linux task mappings remain release-candidate coverage until all eight full-suite tasks pass in three independent Ubuntu workflow runs. That 3/3 bar is not met today because of the model-service no-event timeouts above. Do not weaken evaluators or add workflow retries to hide that signal. Fast qualification is additionally blocked on the missing runtime config in 0.1.9.