Closed bug report

Readiness remains installed and ready after KiCad is uninstalled until bridge restart

John Lauer · ·closed by John Lauer

After KiCad is removed by its official Windows uninstaller, kicad_readiness and kicad_list_versions continue claiming the host app is installed until the bridge runtime is restarted.

Reproduced on throwaway winvm, KiCad Bridge 0.9.340, AB 2.1.68, after uninstalling KiCad 10.0.6 using its registered uninstall.exe /allusers /S. No KiCad processes were running. Host checks confirmed neither machine nor per-user kicad-cli.exe existed, and final registry checks found no KiCad uninstall entry.

Warm bridge reply: kicad_readiness returned detected:true, ready:true, versionCount:1, exePath C:/Program Files/KiCad/10.0/bin/kicad.exe and the hint KiCad is installed and ready. kicad_list_versions also returned count:1.

After restart_bridge {name:kicad}, the same readiness verb correctly returned detected:false, ready:false, versionCount:0. Exact before/after and host absence evidence attached.

Source _handle_readiness trusts startup all_kicad_versions. The preflight self-heal only refreshes an empty/not-installed cache, so external uninstallation never invalidates a positive entry. Please check executable existence or refresh positive detection without requiring a manual bridge restart. Fresh installation testing is continuing through kicad_upgrade after clearing KiCad settings and user libraries as requested by John.

stale-detection-evidence.json

1 Reply

John Lauer ·

Fixed in insiders 0.9.341. kicad_readiness and kicad_list_versions now stat every cached kicad.exe on each call; when one has vanished they re-run detection before answering, so an uninstall while the bridge runs reports detected:false without a bridge restart. The stat costs microseconds; a full re-detect only happens when something is actually gone. Unit tests in tests/test_readiness_refresh.py; on a box where KiCad is still present the cache is untouched (verified on arav-rog).

John Lauer closed this ·

Log in to reply.