Skip to content

fix(skills): use remote-aware Gateway skills.status in CLI when available#95016

Closed
1052326311 wants to merge 1 commit into
openclaw:mainfrom
1052326311:fix/94956-skills-remote-cli
Closed

fix(skills): use remote-aware Gateway skills.status in CLI when available#95016
1052326311 wants to merge 1 commit into
openclaw:mainfrom
1052326311:fix/94956-skills-remote-cli

Conversation

@1052326311

Copy link
Copy Markdown
Contributor

Closes #94956

Summary

CLI skills subcommands (list, check, info) used a local-only status build that did not account for remote macOS node capabilities. Even after the parser fix (#71877) for system.which object-map payloads, CLI status reports still showed darwin + bins(memo) as missing on Linux gateways with connected macOS nodes.

Fix

loadSkillsStatusReport now tries the Gateway skills.status RPC (which already builds with getRemoteSkillEligibility) when config.gateway.remote.url is set, falling back to local-only buildWorkspaceSkillStatus when the Gateway is unreachable.

Changed: 1 file, +29 lines

  • src/cli/skills-cli.ts

Test results

  • skills-cli.commands: 52/52 pass ✅
  • skills/runtime/remote: 12/12 pass ✅
  • gateway skills.proposals: 10/10 pass ✅

…able

Sweeper 🦞 openclaw#94956: the CLI skills subcommands (list, check, info)
used a local-only status build that did not account for remote macOS
node capabilities. Even after the parser fix (openclaw#71877) for system.which
object-map payloads, CLI status reports still showed darwin+bins(memo)
as missing on Linux gateways with connected macOS nodes.

Now loadSkillsStatusReport tries the Gateway skills.status RPC
(which already builds with getRemoteSkillEligibility) when
config.gateway.remote.url is set, falling back to local-only buildWorkspaceSkillStatus
when the Gateway is unreachable.

Test results:
- skills-cli.commands: 52/52 pass
- skills/runtime/remote: 12/12 pass
- gateway skills.proposals: 10/10 pass
@openclaw-barnacle openclaw-barnacle Bot added cli CLI command changes size: XS triage: needs-real-behavior-proof Candidate: external PR needs after-fix proof from a real setup. labels Jun 19, 2026
@clawsweeper

clawsweeper Bot commented Jun 19, 2026

Copy link
Copy Markdown
Contributor

Thanks for the context here. I did a careful shell check against current main, and this is already implemented.

Current main already implements the requested Gateway-first CLI skills status path with safer credential handling and regression coverage, while this submitted branch is now stale and still has blocking auth/payload issues.

Root-cause cluster
Relationship: superseded
Canonical: #94956
Summary: This PR targeted the same CLI/Gateway skills-status regression as the canonical issue, which is now closed by current-main commit f69f81af9ebe5b14492762610c6240a583df320a.

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 details

Best possible solution:

Keep the current-main Gateway-first skills status implementation and close this stale PR; release availability can be handled by the next OpenClaw release train.

Do we have a high-confidence way to reproduce the issue?

Yes. Source and history show the old released CLI path used local-only status, and current main now exercises the expected fixed path by querying Gateway skills.status before local fallback; I did not run a live paired macOS node in this read-only review.

Is this the best way to solve the issue?

No for this branch. The current-main implementation is the better fix because it uses configured Gateway resolution and returns the full unwrapped SkillStatusReport, while this PR branch misuses the URL override path and misreads the payload.

Security review:

Security review cleared: No dependency, workflow, package-resolution, secret-storage, or third-party execution change was found; the credential issue is a functional merge blocker rather than a leak.

AGENTS.md: found and applied where relevant.

What I checked:

  • Current main CLI implementation: loadSkillsStatusReport on current main calls loadGatewaySkillsStatusReport first, and that helper calls Gateway skills.status with the configured runtime config before falling back to local status. (src/cli/skills-cli.ts:106, 330545f3e925)
  • Gateway status is remote-aware: Gateway skills.status builds status with getRemoteSkillEligibility and canExecRequestNode, so the CLI now consumes the existing live remote-node eligibility path. (src/gateway/server-methods/skills.ts:100, 330545f3e925)
  • Regression coverage on main: The CLI command test covers skills check --agent writer --json using the Gateway report, marking apple-notes eligible, and avoiding the local status builder when Gateway is reachable. (src/cli/skills-cli.commands.test.ts:1206, 330545f3e925)
  • Fix provenance from blame: Blame ties the Gateway-first CLI status loader and fallback lines to the current-main fix commit f69f81af9ebe5b14492762610c6240a583df320a. (src/cli/skills-cli.ts:106, f69f81af9ebe)
  • Fix commit timestamp: The fixing commit is titled fix(cli): use gateway skills status when available and was committed at 2026-06-19T18:28:39+02:00. (f69f81af9ebe)
  • Current-main-only release check: git tag --contains returned no release tags for the fix commit, while git branch --contains shows it on main and origin/main; this is fixed on current main but not proven shipped in a release. (f69f81af9ebe)

Likely related people:

  • vincentkoc: Authored the current-main fix commit that added the Gateway-first CLI status path and regression coverage, and posted the linked issue closure proof. (role: current-main fixer and recent area contributor; confidence: high; commits: f69f81af9ebe, 2ddebf3897be; files: src/cli/skills-cli.ts, src/cli/skills-cli.commands.test.ts, src/gateway/server-methods/skills.ts)
  • steipete: The linked regression discussion cites the earlier remote system.which bin-map parser fix authored by Peter Steinberger, which addressed the previous half of the same apple-notes/memo symptom. (role: adjacent prior parser-fix owner; confidence: medium; commits: 8748ae3bb7fb; files: src/infra/skills-remote.ts, src/infra/skills-remote.test.ts, src/skills/runtime/remote.ts)

Codex review notes: model internal, reasoning high; reviewed against 330545f3e925; fix evidence: commit f69f81af9ebe, main fix timestamp 2026-06-19T18:28:39+02:00.

@clawsweeper clawsweeper Bot added rating: 🧂 unranked krab Not merge-ready due to missing proof or serious correctness/safety concerns. status: 📣 needs proof The PR needs real behavior proof before ClawSweeper can clear the contributor ask. P2 Normal backlog priority with limited blast radius. merge-risk: 🚨 auth-provider 🚨 May break OAuth, tokens, provider routing, model choice, or credentials. labels Jun 19, 2026
@clawsweeper

clawsweeper Bot commented Jun 19, 2026

Copy link
Copy Markdown
Contributor

ClawSweeper applied the proposed close for this PR.

@clawsweeper clawsweeper Bot closed this Jun 19, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

cli CLI command changes merge-risk: 🚨 auth-provider 🚨 May break OAuth, tokens, provider routing, model choice, or credentials. P2 Normal backlog priority with limited blast radius. rating: 🧂 unranked krab Not merge-ready due to missing proof or serious correctness/safety concerns. size: XS status: 📣 needs proof The PR needs real behavior proof before ClawSweeper can clear the contributor ask. triage: needs-real-behavior-proof Candidate: external PR needs after-fix proof from a real setup.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Regression: remote macOS apple-notes eligibility still misses memo/darwin in 2026.6.8 after #71877

1 participant