Skills Manager v1.33.0
Skills Manager v1.33.0
发布日期:2026-08-12
递交范围:v1.32.0...v1.33.0
发布概览
- 本地写的技能后来发布到了 git,现在可以直接改指过去,不用重装:标签、preset 归属和已有部署全部保留,从此能正常收到更新。
用户可见更新
skills set-source原地把已安装的技能改指向 git 源 —— 把本地技能转成 git 托管此前没有安全的做法:install会另建<name>-2,留下一个重复条目;remove+install会丢掉技能 id,连带标签、preset 归属和各 Agent 的部署一起消失;桌面端的 relink 又只支持本地目录之间。新命令原地更新技能,所有挂在 id 上的东西都保留,之后update也能正常工作。- 改指源时不做猜测 ——
--subpath指向不存在的路径、不是技能目录、或解析到检出目录之外,一律报错,绝不静默回退成「扫描整个仓库找一个技能」。--dry-run无需--force就能查看将要发生的变化;内容与库中副本不同时,只有显式--force才会覆盖。
开发者与治理更新
set_git_source_internal复用update_skill_after_reinstall,按 id 更新数据行。克隆在仓库锁之外进行,拿到锁后重新读取数据行,拒绝执行基于陈旧快照做出的决定;内容一致时完全跳过文件操作,不会因为一次纯元数据改动就重写中心副本。- 严格的 subpath 解析由
path_guard::is_path_safe兜底,覆盖绝对路径、..上跳和指向检出目录之外的符号链接,配 7 个单元测试。 - CI:发布 release 时自动触发 skillsmanager.dev 站点重建。
- 文档:两份 README 补充
skills set-source;演示截图更新为 1.32 的界面。
当前校验状态
- ✅ 跨平台构建通过(macOS Intel / macOS ARM / Windows x64 / Linux x64)
- ✅ TypeScript typecheck 通过
English release notes
Release date: 2026-08-12
Commit range: v1.32.0...v1.33.0
Release Overview
- A skill you wrote locally and later published to git can now be pointed at that repository without being reinstalled, so it starts receiving updates while keeping its tags, presets and deployments.
User-facing
skills set-sourcere-points an installed skill at a git source in place — Converting a local skill to a git-backed one previously had no safe path:installallocates<name>-2and leaves you with a duplicate,remove+installdrops the skill id and with it the tags, preset membership and per-agent deployments, and the desktop app's relink is local-to-local only. The new command updates the skill in place, so everything keyed to its id survives andupdateworks from then on.- The re-point refuses to guess — A
--subpaththat does not exist, is not a skill directory, or resolves outside the checkout is an error, never a silent fallback to scanning the whole repository.--dry-runreports what would change without needing--force, and content that differs from the library copy is only overwritten with--force.
Developer & Governance
set_git_source_internalreusesupdate_skill_after_reinstall, so the row is updated by id. The clone runs outside the repo lock and the row is re-read after locking, refusing to apply a decision made against a stale snapshot; identical content skips file work entirely rather than rewriting the central copy for a metadata-only change.- Strict subpath resolution is guarded by
path_guard::is_path_safe, covering absolute paths,..traversal and symlinks escaping the checkout, with 7 unit tests. - CI: publishing a release now triggers a rebuild of skillsmanager.dev.
- Documentation:
skills set-sourcein both READMEs; demo screenshots refreshed for the 1.32 UI.
Current Verification
- ✅ Cross-platform build passed (macOS Intel / macOS ARM / Windows x64 / Linux x64)
- ✅ TypeScript typecheck passed
完整变更:v1.32.0...v1.33.0