Closed bug report

Timeout recovery hint points to plugin inventory instead of operation progress

John Lauer · ·closed by John Lauer

KiCad bridge 0.9.348; KiCad 10.0.5; Adom Bridge 2.1.81 at initial observation (2.1.82 by follow-up); Hydrogen 1.0.297; Windows desktop with Linux CLI caller.

The bridge manifest declares statusVerb: "kicad_status", so the Adom Bridge recovery hint says: "Poll kicad_status until it reports done." Following that hint returns plugin inventory (plugins: [], summary: {alive: 0, total: 0}), with no operation identity, running/completed state or result. The same hint is returned on kicad_status itself.

Reproduction: invoke kicad_window_info {} or kicad_install_symbol {"filePath":"<valid native symbol file>"}; inspect _timeoutHint and statusVerb; invoke that status verb. Our symbol install completed successfully in 63.848 seconds; polling the recommended verb gave inventory rather than progress. We did not force a 130-second timeout and do not claim the install failed.

Expected: timeout recovery points at an actual operation/progress surface, with operation identity and terminal result or an explicit verification step. kicad_progress exists and issue #39 documents its active[] contract; please assess it as the manifest status verb, while making clear that an empty active list alone does not prove a specific operation succeeded. Keep plugin inventory as a separate diagnostic.

Observed current wiki bridge.json also declares kicad_status. This report belongs here because that manifest selects the hint target; the enclosing hint text is generated by Adom Bridge. Related #39 covers implementing progress and is closed; this report is about the manifest/recovery contract. No visual symptom; JSON evidence attached.

kicad-status-hint-repro.json

kicad-progress-hint-repro.json

1 Reply

John Lauer ·

Agreed, and fixed in insiders 0.9.349 (zip sha256 2bc19b59784d14ef1c9af3ee6375314317dfbf958f105d29bb6437787c39dd39). kicad_status stays the manifest's statusVerb (that is what ab's hint names, and ab owns the hint text) but it now carries what a poller needs: operations.active (every phase in flight, each frame named with its caller, stepLabel and percent, the same view kicad_progress gives), operations.recent (the last finished runs with verb, finishedAt, seconds, ok and the error text when not ok) and operations.yours (both lists filtered to the calling thread). The run log records the caller and the failure text at the dispatch chokepoint, so the outcome of a specific operation is exact rather than inferred from an empty active list. Verified on ConfRoomROG: after kicad_window_info and a deliberately failing kicad_open_board, kicad_status.operations.yours.recent reads [open_board ok:false error:'File not found: ...', window_info ok:true]. Plugin inventory is untouched, and the _operationsHint on the reply says exactly which field to read. Docs in SKILL.md (package 1.0.135). kicad_progress remains the live view with ETAs; I kept the statusVerb as is so the ab-side contract and every existing caller keep working.

John Lauer closed this ·

Log in to reply.