Skip to content

fix(compat): support namespace-aware clawhub publish#291

Open
dongmucat wants to merge 1 commit intomainfrom
fix/clawhub-namespace-publish
Open

fix(compat): support namespace-aware clawhub publish#291
dongmucat wants to merge 1 commit intomainfrom
fix/clawhub-namespace-publish

Conversation

@dongmucat
Copy link
Copy Markdown
Collaborator

概述

修复 ClawHub 兼容发布默认总是落到 global 的问题,支持通过 canonical slug 将 clawhub publish 路由到目标 namespace,并同步更新中英文文档说明 global 与 my-space 两种发布方式。

变更内容

后端实现

  • 在 compat publish 链路中新增 namespace 解析优先级:payload.namespace -> canonical payload.slug(例如 my-space--my-skill)-> 默认 global
  • 保持 domain 存储模型不变,继续分别存储 namespace 和 skill slug,不放宽 SlugValidator
  • 扩展 multipart publish payload,预留可选 namespace 字段供未来客户端使用

前端实现

  • 本次变更未修改前端代码

测试覆盖

  • 后端单测:扩展 ClawHubCompatControllerTest,覆盖 canonical slug 发布到 namespace、普通 slug 默认 global、显式 payload.namespace 优先三类场景
  • 前端单测:无
  • E2E 测试:无,本次无前端页面交互改动

文档更新

  • 更新 README.mdREADME_zh.md,区分发布到 global 和发布到 my-space namespace 的命令示例
  • 更新 docs/openclaw-integration.mddocs/openclaw-integration-en.md,说明 canonical compat slug 的发布方式

质量门禁

  • make typecheck-web 不适用,本次无前端改动
  • make lint-web 不适用,本次无前端改动
  • make test-frontend 不适用,本次无前端改动
  • make test-backend-app 通过
  • Playwright E2E 不适用,本次无 UI 交互改动
  • make generate-api 已执行;未提交 schema.d.ts,因为生成出的差异与本次任务无关,已回退无关漂移

安全考虑

  • 本次变更不涉及安全敏感内容
  • namespace 路由仍复用既有发布权限校验,普通用户仍需是目标 namespace 成员,SUPER_ADMIN 行为保持不变
  • 未放宽持久化 slug 规则,my-space--my-skill 仅作为 compat 输入坐标解析,不进入 domain 存储模型

相关 Issue

Closes #261
Closes #284

测试说明

本地验证步骤

  1. 启动本地环境:make dev-all
  2. 配置 CLI:export CLAWHUB_REGISTRY=http://localhost:8080
  3. 创建 API token 并执行 clawhub login --token <token>
  4. 发布到 global:clawhub publish ./my-skill --slug my-skill --version 1.0.0
  5. 发布到 namespace:clawhub publish ./my-skill --slug my-space--my-skill --version 1.0.0
  6. 使用 /api/v1/skills/{namespace}/{slug}clawhub inspect 验证最终落库坐标

回归测试范围

  • ClawHub 兼容层发布链路
  • canonical slug 解析行为
  • global 默认发布行为
  • 兼容层 resolve/download 既有行为未回归

截图/录屏(如有 UI 变更)

本次无 UI 变更

@dongmucat dongmucat force-pushed the fix/clawhub-namespace-publish branch from dc51438 to 5c14e49 Compare April 13, 2026 09:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug] clawhub命令设置不了namespace [Bug] clawhub不支持namespace 参数

1 participant