Skip to content

fix(search): include permitted skills in clawhub explore#258

Open
dongmucat wants to merge 1 commit intomainfrom
fix/clawhub-explore-visible-skills
Open

fix(search): include permitted skills in clawhub explore#258
dongmucat wants to merge 1 commit intomainfrom
fix/clawhub-explore-visible-skills

Conversation

@dongmucat
Copy link
Copy Markdown
Collaborator

概述

修复 #242,使 clawhub explore 能返回公开技能以及当前用户有权限查看的技能,而不是错误地只收敛到 global 视角。

变更内容

后端实现

  • 在搜索应用服务中引入平台角色判断,将 SUPER_ADMIN 折算为搜索可见性里的平台宽读标记
  • 扩展搜索可见性模型,将平台宽读信息传递到 PostgreSQL 搜索实现
  • 更新搜索 SQL 过滤逻辑,使 PUBLIC、成员可见技能、管理员可见私有技能和 archived namespace 的可见性按当前用户权限统一生效
  • 保持原有约束不变:hidden 和非 ACTIVE 技能不会出现在 discover/explore 列表里
  • 本次不涉及 DB migration
  • 本次不涉及 Controller 契约变更,因此无需 make generate-api

前端实现

  • 本次无前端代码变更
  • Web 首页/搜索页复用同一后端搜索接口,因此会直接受益于后端可见性修复

测试覆盖

  • 后端单测:补充 SkillSearchAppServiceTest,覆盖成员空间可见性和 SUPER_ADMIN 平台宽读场景
  • 后端单测:补充 PostgresFullTextQueryServiceTest,覆盖平台宽读对应的 SQL 可见性过滤
  • E2E 测试:本次无前端页面交互改动,不需要 Playwright E2E

质量门禁

  • make typecheck-web 通过(未涉及前端,本次未执行)
  • make lint-web 通过(未涉及前端,本次未执行)
  • make test-frontend 通过(未涉及前端,本次未执行)
  • make test-backend-app 通过
  • Playwright E2E(web/e2e)关键路径通过(无 UI 交互改动,不适用)
  • make generate-api 已执行且 schema.d.ts 已提交(无 Controller 变更,不适用)

安全考虑

  • 本次变更涉及权限边界修正,避免兼容层列表错误收窄或错误放大
  • 平台宽读仅授予 SUPER_ADMIN,未把 SKILL_ADMIN 放大为全局私有技能可读
  • 搜索结果仍受 ACTIVEhidden=false 和既有 visibility 规则约束
  • 本次不涉及敏感信息、密钥或外部凭据处理

相关 Issue

Closes #242

测试说明

本地验证步骤

  1. make dev-all 启动本地环境
  2. 用普通用户和 SUPER_ADMIN 分别创建 API token,并准备 global 与团队空间技能数据
  3. 执行 clawhub login --token <token> 后运行 clawhub explore,验证普通用户可见 PUBLIC + 自己有权限的 skillsSUPER_ADMIN 可见跨空间可读 skills
  4. 直接调用 curl -H "Authorization: Bearer <token>" http://localhost:8080/api/v1/skills 验证兼容层返回结果

回归测试范围

  • clawhub explore / compat 列表接口 /api/v1/skills
  • Web 端复用的聚合搜索列表
  • 搜索权限边界:PUBLICNAMESPACE_ONLYPRIVATE、archived namespace

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

本次无 UI 变更

@dongmucat
Copy link
Copy Markdown
Collaborator Author

已验证

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] 不同用户不同空间显示问题

1 participant