mirror of
https://github.com/openclaw/openclaw.git
synced 2026-04-04 16:36:42 +02:00
* feat(gateway): add skills.search and skills.detail RPC methods Expose ClawHub search and detail capabilities through the Gateway protocol, enabling desktop/web clients to browse and inspect skills from the registry. New RPCs: - skills.search: search ClawHub skills by query with optional limit - skills.detail: fetch full detail for a single skill by slug Both methods delegate to existing agent-layer functions (searchSkillsFromClawHub, fetchSkillDetailFromClawHub) which wrap the ClawHub HTTP client. No new external dependencies. Signed-off-by: samzong <samzong.lu@gmail.com> * feat(skills): add ClawHub skill search and detail in Control UI Add skills.search and skills.detail Gateway RPC methods with typed protocol schemas, AJV validators, and handler implementations. Wire the new RPCs into the Control UI Skills panel with a debounced search input, results list, detail dialog, and one-click install from ClawHub. Gateway: - SkillsSearchParams/ResultSchema and SkillsDetailParams/ResultSchema - Handler calls searchClawHubSkills and fetchClawHubSkillDetail directly - Remove zero-logic fetchSkillDetailFromClawHub wrapper - 9 handler tests including boundary validation Control UI: - searchClawHub, loadClawHubDetail, installFromClawHub controllers - 300ms debounced search input to avoid 429 rate limits - Dedicated install busy state (clawhubInstallSlug) with success/error feedback - Install buttons disabled during install with progress text - Detail dialog with owner, version, changelog, platform metadata Part of #43301 Signed-off-by: samzong <samzong.lu@gmail.com> * fix(skills): guard search and detail responses against stale writes Signed-off-by: samzong <samzong.lu@gmail.com> * fix(skills): reset loading flags on query clear and detail close Signed-off-by: samzong <samzong.lu@gmail.com> * fix(gateway): register skills.search/detail in read scope and method list Add skills.search and skills.detail to the operator READ scope group and the server methods list. Without this, unclassified methods default to operator.admin, blocking read-only operator sessions. Also guard the detail loading reset in the finally block by the active slug to prevent a transient flash when rapidly switching skills. Signed-off-by: samzong <samzong.lu@gmail.com> * fix(skills): guard search loading reset by active query Signed-off-by: samzong <samzong.lu@gmail.com> * test: cover ClawHub skills UI flow * fix: clear stale ClawHub search results --------- Signed-off-by: samzong <samzong.lu@gmail.com> Co-authored-by: Frank Yang <frank.ekn@gmail.com>