Skills Manager v1.28.2
发布日期:2026-07-10
递交范围:v1.28.1...v1.28.2
发布概览
- 性能与正确性补丁:启动更快、操作更跟手;按名安装某个技能不会再误装整仓;自动更新设置项与本页其余控件统一。
用户可见更新
- 启动更快、操作更跟手 — 启动不再卡在「扫描每个 agent 的技能目录」上:这项校准现在改到窗口起来后的后台执行。项目工作区扫描对每个技能的文件只遍历一次(原为两次),文件监视器也不再因为应用自身的写入而触发冗余的全量刷新。针对启动慢/操作卡顿的反馈(#248)。
- 安装不存在的技能会报错,而不是把整仓装进来 — 按名安装一个在来源里不存在的技能(上游改名/删除、索引过期或拼写错误),此前会退回到「把整个仓库当作单个技能复制」,把仓库里每个技能都重复装一遍。现在会明确报「技能未找到」错误、且不安装任何内容(#278)。
- 自动更新设置改用分段控件 — 设置页的「检查间隔」和「自动应用」原本是普通下拉框,现在换成与本页其余选项(主题、同步模式、托盘)一致的分段按钮,所有选项一目了然(#241)。
开发者与治理更新
- 启动性能修复(#285)经三轮 codex 评审后合入:stranded-target 回填从
setup()移到窗口起来后的spawn_blocking,并以「候选集签名」门闩;项目/工作区扫描把每个技能的两次全递归遍历合并为一次;文件监视器加 1.2s 单调时钟自写静音窗,并细化为路径级静音 + 内容哈希目录指纹,确保真实外部事件仍被送达。新增 5 个 Rust 测试。 - 安装修复(#280)让
find_skill_dir在请求的skill_id无匹配时报错,容器/根目录兜底仅保留给skill_id == None的枚举流程;只读 codex 评审确认调用方无回归,follow-up 补了(并经第二轮 codex 评审强化)根 frontmatter-name 命中的回归守卫。 - README 的 Star History 图表改为自托管(
scripts/gen-star-history.py+ 内置字体),不再嵌入第三方图片。 - 后端 Rust 测试 387 全过;前端
npm run build通过。
当前校验状态
- ✅ 跨平台构建通过(macOS Intel / macOS ARM / Windows x64 / Linux x64)
- ✅ TypeScript typecheck 通过
English release notes
Release date: 2026-07-10
Commit range: v1.28.1...v1.28.2
Release Overview
- Performance and correctness patch: faster startup and snappier actions, installing a specific skill can no longer pull in an entire repository by mistake, and the auto-update settings match the rest of the page.
User-facing
- Faster startup and snappier actions — Launch no longer blocks on a full scan of every agent's skill directories; that reconciliation now runs in the background after the window is up. Project workspace scanning walks each skill's files once instead of twice, and the file watcher no longer fires a redundant full refresh in response to the app's own writes. Addresses the slow-startup / laggy-actions reports (#248).
- Installing a missing skill errors instead of installing the whole repo — Asking to install a specific skill whose name doesn't exist in the source (an upstream rename or removal, a stale index, or a typo) previously fell back to copying the entire repository as a single "skill", duplicating every skill it contained. It now fails with a clear "skill not found" error and installs nothing (#278).
- Auto-update settings use segmented controls — The "check interval" and "auto-apply" options on the Settings page were plain dropdowns; they now use the same segmented-button controls as the rest of the page (theme, sync mode, tray), so every option is visible at a glance (#241).
Developer & Governance
- Startup-performance fix (#285) landed after three rounds of codex review: the stranded-target backfill moved off
setup()into a post-windowspawn_blockinggated by a candidate-set signature; project/workspace scanning collapsed two full directory walks per skill into one; and a 1.2s monotonic self-write mute window on the file watcher, refined to path-level muting plus a content-hash directory fingerprint so genuine external events are still delivered. +5 Rust tests. - Install fix (#280) makes
find_skill_dirbail when a requestedskill_idmatches nothing, preserving the container/root fallback only for theskill_id == Noneenumeration flow; a read-only codex review confirmed no caller regressions, and a follow-up added — then strengthened after a second codex pass — a regression guard for the legitimate root-frontmatter-name match. - The README Star History chart is now self-hosted (
scripts/gen-star-history.pyplus a bundled font) instead of embedding the third-party image. - Backend Rust test suite at 387 passing; frontend
npm run buildclean.
Current Verification
- ✅ Cross-platform build passed (macOS Intel / macOS ARM / Windows x64 / Linux x64)
- ✅ TypeScript typecheck passed
完整变更:v1.28.1...v1.28.2