Repository navigation
dsh-cursor-dev 0.12.4
0.12.4
子代理深度
maxChildDepth默认值从1改为2。Cursor 是叶节点——CLI 里没有 DSH 工具,它不可能再往下派,所以2就是实际上限,更大的值和2完全等价。旧的默认值1只是把「子智能体派 Cursor」这件事拒掉了。- 这个上限改为每次调用现读,不再在插件加载时缓存。否则会出现工具放行、镜像却拒绝记录的不一致。
- 面板新增「子代理深度」选择器:
0 · 禁止/1 · 仅顶层代理可用/2 · 顶层与子代理都可用(默认)。面板的选择优先于配置,改完下一次调用生效,不需要重载插件。 - 越界的值(例如手改成
9)不会被截断成2,而是当作「没设」回落到配置——面板不该宣称一个没人选过的上限。
Cursor 署名
- Cursor 会给子智能体做的 commit 追加
Co-authored-by: Cursor,并在它开的 PR 上署名。这些提交进的是别人的仓库。 - 这个开关没有 CLI 参数,也没有环境变量,只存在于 Cursor 自己的
cli-config.json的attribution块,所以插件替你写那个文件:- 只改
attributeCommitsToAgent/attributePRsToAgent两项,其余键原样保留; - 写入走临时文件 + 改名;
- 解析不了的文件绝不覆盖——那是 Cursor 该报的错,不该由插件掩盖。
- 只改
- 文件位置按 Cursor 自己的顺序解析:
CURSOR_CONFIG_DIR→XDG_CONFIG_HOME/cursor→~/.cursor。 - 面板三选:不加署名(默认) / 保留署名 / 跟随 Cursor 自己的配置(插件不写文件)。第三项是给「我自己在 Cursor 里管」的人留的退出口。
- 保存后立即写入,并在每次启动 CLI 前再确认一次——因为 CLI 只在进程启动时读一次配置,已经在跑的会话要等新会话才生效。
- 选择器下面那行「Cursor 当前:…」显示的是配置文件的实际状态,不是你的选择:用了「跟随」或写入失败时,两者会不一样。
- 团队管理员在服务端禁用署名(
attributionControls)时,本地怎么写都不会恢复署名。
面板
- 模型选择器和保存按钮挪到卡片最上面:先给选择,再解释。
- 代理输入框挪到它所解释的那条状态行下方——代理错是模型列表变短的最常见原因。
- 删掉「来源与出口」折叠,并入「模型目录、搜索与来源」。两件事其实是同一个问题:「我眼前这个列表是真的吗」。
升级
dsh plugin remove dsh-cursor-dev
dsh plugin add dsh-cursor-dev后台代码有更新,安装后需要重启 DSH 再刷新页面。
兼容性
- DSH
0.2.0-rc.1、0.2.0-rc.2、0.2.1-rc.1、0.2.1-rc.2或>=0.2.1 <0.3.0的稳定版本(已在0.2.1-rc.2上验证) - Node.js
^22.19.0 || >=24.0.0 - 需要已登录的 Cursor CLI
测试
- 离线套件:256 项,249 通过,0 失败,7 跳过(macOS Keychain 等环境相关用例在 Windows 上跳过)。
- 新增
test/attribution.test.mjs:覆盖配置查找顺序、两 key 写入、未知键保留、已一致时 no-op、损坏文件不动。测试把CURSOR_CONFIG_DIR指向临时目录——因为启动插件真的会写配置,测试不能动本机的 Cursor 配置。