fix(skills): accept system.which for remote skill eligibility (fixes #94956)#94972
fix(skills): accept system.which for remote skill eligibility (fixes #94956)#94972liuhao1024 wants to merge 2 commits into
Conversation
getRemoteSkillEligibility only checked supportsSystemRun, but refreshRemoteNodeBinsUncoalesced accepts either system.which or system.run. Nodes with only system.which (no system.run) had their bins probed successfully but were excluded from eligibility, causing macOS-only skills like apple-notes to remain ineligible despite a connected macOS node resolving the required binary. Update all three eligibility gates (getRemoteSkillEligibility, primeRemoteSkillsCache, removeRemoteNodeInfo) to accept either command. Fixes openclaw#94956.
|
Thanks for the context here. I did a careful shell check against current Current Root-cause cluster Members:
Proposal only: this assessment does not dispatch repair, suppress jobs, mutate sibling items, close, or merge anything. So I’m closing this as already implemented rather than keeping a duplicate issue open. Review detailsBest possible solution: Keep the current-main Gateway-backed CLI status fix and leave remote skill eligibility tied to executable Do we have a high-confidence way to reproduce the issue? Yes. Source inspection shows Is this the best way to solve the issue? No. This PR changes the runtime eligibility contract, but the maintainable fix was the current-main CLI/Gateway status path that preserves Security review: Security review cleared: No security or supply-chain issue was found; the concern is an obsolete functional eligibility change. AGENTS.md: found and applied where relevant. What I checked:
Likely related people:
Codex review notes: model internal, reasoning high; reviewed against 330545f3e925; fix evidence: commit f69f81af9ebe, main fix timestamp 2026-06-19T18:28:39+02:00. |
|
CI is green — all checks passing including Real behavior proof. Ready for ClawSweeper re-evaluation. |
1 similar comment
|
CI is green — all checks passing including Real behavior proof. Ready for ClawSweeper re-evaluation. |
|
ClawSweeper applied the proposed close for this PR.
|
Summary
Remote macOS nodes that support
system.whichbut notsystem.runare excluded from skill eligibility, even though the bin probe (refreshRemoteNodeBinsUncoalesced) already accepts either command. This causes macOS-only skills likeapple-notesto remain ineligible despite a connected macOS node successfully resolving the required binary.The root cause is an inconsistency between the bin probe path (accepts
system.which || system.run) and the eligibility gate (onlysystem.run). Three locations insrc/skills/runtime/remote.tsfilter onsupportsSystemRunwithout also checkingsupportsSystemWhich.Changes
getRemoteSkillEligibility: accept nodes withsystem.which || system.runprimeRemoteSkillsCache: same filter updateremoveRemoteNodeInfo: same filter updatesystem.which-only mac nodes are eligibleReal behavior proof
system.whichwithoutsystem.run, matching the bin probe behaviorsystem.whichin addition tosystem.run. 12 remote tests and 38 workspace load tests pass.