Problem
The run_doctor() function in install.sh parses the computer-use-linux doctor JSON output using the old schema:
ready="$(printf '%s' "${out}" | jq -r '.readiness.ready // false')"
and
printf '%s' "${out}" | jq -r '.readiness.checks[]? | select(.status != "ok") | ...'
However, the doctor output's readiness object no longer contains .ready (boolean) or .checks (array) fields. The current schema uses:
.readiness.blockers (array of strings) — empty array means ready
.readiness.can_build_accessibility_tree, .readiness.can_query_windows, etc. (booleans)
.readiness.recommended_next_step (string)
Because .readiness.ready is now null, the jq expression .readiness.ready // false evaluates to false, causing install.sh to always report "doctor reports NOT ready" even when the system is fully provisioned.
Steps to Reproduce
- Run
./install.sh on any system where the doctor would otherwise report ready (all checks pass, no blockers).
- Observe Step 8 outputs
ready: null and FAIL doctor reports NOT ready.
- Run
computer-use-linux doctor | jq '.readiness' directly — note the absence of .ready and .checks fields.
Expected Behavior
When the doctor has zero blockers, install.sh should report OK doctor reports ready.
Proposed Fix
Update the jq queries in run_doctor() to use the current schema:
- Replace
.readiness.ready check with .readiness.blockers | length == 0
- Replace
.readiness.checks[] failure extraction with .readiness.blockers[]
A fix has been prepared locally and tested — install.sh now correctly reports ready on a fully provisioned CachyOS/Hyprland system.
Problem
The
run_doctor()function ininstall.shparses thecomputer-use-linux doctorJSON output using the old schema:ready="$(printf '%s' "${out}" | jq -r '.readiness.ready // false')"and
However, the doctor output's
readinessobject no longer contains.ready(boolean) or.checks(array) fields. The current schema uses:.readiness.blockers(array of strings) — empty array means ready.readiness.can_build_accessibility_tree,.readiness.can_query_windows, etc. (booleans).readiness.recommended_next_step(string)Because
.readiness.readyis nownull, the jq expression.readiness.ready // falseevaluates tofalse, causinginstall.shto always report "doctor reports NOT ready" even when the system is fully provisioned.Steps to Reproduce
./install.shon any system where the doctor would otherwise report ready (all checks pass, no blockers).ready: nullandFAIL doctor reports NOT ready.computer-use-linux doctor | jq '.readiness'directly — note the absence of.readyand.checksfields.Expected Behavior
When the doctor has zero blockers,
install.shshould reportOK doctor reports ready.Proposed Fix
Update the jq queries in
run_doctor()to use the current schema:.readiness.readycheck with.readiness.blockers | length == 0.readiness.checks[]failure extraction with.readiness.blockers[]A fix has been prepared locally and tested —
install.shnow correctly reports ready on a fully provisioned CachyOS/Hyprland system.