Repository navigation
完善skill管理界面 - #2570
完善skill管理界面#2570
Conversation
BigPizzaV3
left a comment
There was a problem hiding this comment.
已审核当前 head d3ce7004。双平台 CI 和原有测试通过,但本轮确认了以下问题,需要修改后再合并。
-
[P1] 本地自建 Skill 的“卸载”会删除唯一副本,且不产生备份。
crates/codex-plus-core/src/skills.rs:377将未纳管的本地目录标成已安装,ManagementExtra.tsx:233-235因此开放卸载。现有uninstall()先删除$CODEX_HOME/skills/<id>,而这类 Skill 没有 SSOT 源目录,后续备份分支不会执行。公共 API 回归已复现:创建本地SKILL.md→local_inventory()显示已安装 →uninstall()后原文件消失且备份列表为空。请先把本地实体目录纳管或备份,再允许卸载。 -
[P1] cc-switch 导入同名 Skill 会无备份覆盖或删除已有用户内容。
skills.rs:399-407直接移除已有源目录再复制;随后424行停用时,如果$CODEX_HOME/skills/<id>原本是用户自建实体目录,也会直接删除它。已用“本地内容与 cc-switch 内容不同、ID 相同”的公共 API 回归复现,导入后用户原内容在本地、SSOT 和备份中均找不到。请检测冲突并保留原内容,采用暂存、备份和失败回滚,不要先删旧目录。 -
[P2] 同名条目的 ID 不稳定,会把已安装状态及更新目标移给另一个 Skill。
skills.rs:819-827按遍历先后给第一个同名目录短 ID。仓库最初只有z/alpha/SKILL.md,安装后 ID 为alpha;新增a/alpha/SKILL.md后,alpha改指向a/alpha,merge_entries()将新条目标成已安装、可更新,原条目却变成未安装。该回归已实测失败。请使用稳定的仓库路径身份,安装记录也要保留对应路径,避免更新替换成另一项。 -
[P2] 仓库不可访问时反而无法停用。
ManagementExtra.tsx:115的启停调用同一个upsert_skill_repo;commands.rs:5460-5466无论是否仅修改 enabled 都先联网验证,网络失败、仓库删除或权限失效就拒绝保存。请让已保存仓库的停用操作可以本地完成,新增或修改仓库地址再做网络验证。
本轮 TypeScript 检查、仓库地址解析 3 项、原有 Skills 单测 32 项通过;上述三个数据/身份回归分别实测失败。修复后请补入对应回归,并补跑新 head 的 Windows/macOS CI。
BigPizzaV3
left a comment
There was a problem hiding this comment.
复审当前 head e7a89345af816ab9629b8d162d2b6ff052d1d532,此前两项 P1 和两项 P2 均已处理:本地唯一副本卸载前备份,cc-switch 同名导入先暂存并保留冲突内容,远端条目按稳定仓库路径关联安装状态和更新目标,既有仓库的单纯启停可离线保存。目录、链接和状态保存的失败回滚,以及备份恢复的冲突保护均有补充回归。
本轮独立实跑 Skills 核心单测 43 项、生命周期测试 5 项、前端仓库解析 3 项,全部通过。已核实 CI run 38931568421 的 headSha 与当前 SHA 一致,Windows artifacts 和 macOS DMG 均成功;对最新 main 5e2762d9 无冲突。
原 Request changes 的阻塞项已解决,本轮批准。
做了一个完整的skill管理界面,基础功能基本都有吧
本地已安装的 Skill 原先未正确出现在“已安装”中,仍显示安装入口;仓库添加、编辑和目录刷新也缺少完整反馈。仓库扫描期间会禁用切换操作,大目录一次挂载全部条目,打开 Skill 详情还会退出仓库管理。
本 PR 完善同一套 Skills 管理流程:
SKILL.md,修正同名条目冲突,并持久化仓库目录缓存。验证:
cargo check -p codex-plus-manager --tests --locked通过;差异检查通过。node scripts/test-skills-repository-browser.mjs <release-executable>复验。sherpa-onnx静态库与 MSVC 标准库符号不兼容阻挡(LNK2019/LNK1120),未将该次测试记为通过。本 PR 不修改相关音频依赖的链接配置。cargo check通过。