Skills Manager v1.37.0
发布日期:2026-09-06
递交范围:v1.36.2...v1.37.0
发布概览
- 批量操作返工:新增批量同步到 Agent、全局与龙虾工作区的批量移除,并修掉两处「按钮说的和实际做的不一致」的缺陷。
用户可见更新
- 选中若干 Skill 后切换筛选,不再留下看不见的选择。此前选中 10 个、换个标签再点删除,会把已经被筛掉、屏幕上根本看不到的那 9 个一起删掉。现在切换筛选会把选择裁剪到当前可见的部分,切换项目或 Agent 则直接清空。
- 启用 / 停用按钮改为显示真正会被改变的数量。此前选中 30 个(其中 23 个本来就是启用的),按钮写「启用 30 个」,做完却提示「已启用 7 个」。
- 新增:在技能库里把一批 Skill 一次同步到一个或多个 Agent,不用再逐个打开详情面板。弹层会显示每个 Agent 已经有选中项里的几个,只补齐缺失的。
- 新增:全局工作区和龙虾工作区支持多选(此前完全没有)。那里的「移除」拆成两个按钮,因为它本来就是两件事:托管 Skill 取消同步后中央仓库的文件仍在,而只存在于该 Agent 目录的本地 Skill 删了就找不回来。两个确认框都会逐条列出受影响的 Skill。
- 批量改标签、批量启停现在有进度反馈,也不会被误触发两次。
- 工具栏把「更新」「删除」收进「…」菜单,留在明面上的就是常用的那几个;删除不再和日常操作一样醒目。
- 多选入口从「网格 / 列表」切换控件里移出来了——它在那里看着像第三种视图——现在带文字标签。
- Esc 可以退出多选;确认框、标签弹层、同步弹层此前完全不响应 Esc,现在也能关闭。
- 在项目里改标签时,会说明标签存放在中央技能库,改动会影响所有使用这些 Skill 的项目。
- 工具栏控件高度对齐:搜索框、分段控件和按钮此前并排着 36、38、40、42px 四种高度,现在统一为 40px。「添加 Skill」按钮也换成了应用统一的主按钮配色。
开发者与治理更新
MultiSelectToolbar改为接收带三种 tone 的 action 列表,不再是二十个业务专用 props;正是这一步让溢出菜单和工作区的两种移除语义不必再加第四个变体。useMultiSelect改为在渲染期调整选择(符合 React 官方建议与 eslintreact-hooks规则),并从当前 items 派生出有效选择,避免已删除的 key 残留、被后来复用同一路径的条目重新命中。- 工具栏尺寸收进
.app-toolbar-segmented/.app-toolbar-button组件类;批量工具栏和CardActionMenu里的 sky / violet / amber / red-600 字面量全部换成仓库自己的 token。 - 一组自早前重构后就再没被引用过的工作区 i18n key,这次被批量移除流程重新用上。
当前校验状态
- ✅ 跨平台构建通过(macOS Intel / macOS ARM / Windows x64 / Linux x64 / Linux ARM64)
- ✅ TypeScript typecheck 通过
English release notes
Release date: 2026-09-06
Commit range: v1.36.2...v1.37.0
Release Overview
- Batch operations reworked: bulk sync to agents, bulk removal in the global and lobster workspaces, and two selection defects that made the buttons act on more than they said.
User-facing
- Selecting skills and then changing a filter no longer leaves an invisible selection behind. Selecting ten skills, switching to another tag and pressing delete used to act on the nine that had scrolled out of the filter. The selection is now trimmed to what is on screen when the filter changes, and cleared when you switch project or agent.
- The enable/disable button now counts what it will actually change. With 23 of 30 selected skills already enabled, it said "Enable 30" and then reported "7 enabled".
- New: sync a batch of skills to one or more agents from the library, instead of opening each skill's detail panel. The dialog shows how many of the selection each agent already has, and only adds the missing ones.
- New: select mode in the global and lobster workspaces, which had none. "Remove" is kept as two separate buttons there, because it means two different things: unsyncing a managed skill leaves the central copy intact, while deleting a local-only skill cannot be undone. Both confirmations list the affected skills by name.
- Bulk tag edits and enable/disable now show progress and cannot be triggered twice by accident.
- The toolbar keeps update and delete in the "…" menu, so the buttons on screen are the ones you reach for; delete no longer carries the same visual weight as an everyday action.
- The select-mode entry moved out of the grid/list switcher, where it read as a third view, and now has a label.
- Escape leaves select mode, and also closes the confirmation, tag and sync dialogs, which previously ignored it.
- Editing tags from a project now says that tags live in the central library and reach every project using those skills.
- Toolbar controls line up: search field, segmented controls and buttons were 36, 38, 40 and 42px tall next to each other, and are now all 40px. The Add Skill button also picks up the app's standard primary-button colouring.
Developer & Governance
MultiSelectToolbartakes an action list with three tones instead of twenty business-specific props, which is what makes the overflow menu and the workspace's two removal semantics expressible without a fourth variant.useMultiSelectadjusts the selection during render rather than in an effect, per React's guidance and eslint'sreact-hooksrules, and derives the live selection from the current items so a deleted key cannot re-select a later item that reuses its path.- Toolbar sizing moved into
.app-toolbar-segmented/.app-toolbar-buttoncomponent classes; the sky, violet, amber and red-600 literals in the bulk toolbar andCardActionMenuwere replaced with the repo's own tokens. - A set of workspace i18n keys that had been unreferenced since an earlier refactor is in use again for the bulk removal flow.
Current Verification
- ✅ Cross-platform build passed (macOS Intel / macOS ARM / Windows x64 / Linux x64 / Linux ARM64)
- ✅ TypeScript typecheck passed
完整变更:v1.36.2...v1.37.0