概述
在 Cursor 本地 IDE(macOS)安装 DevCodex 后,Agent 还能读文件,但任何写入都会被用户级 hook progressive-skill-route 直接拒绝。
更严重的是:这条 hook 要求先完成 skill_route,却连 CallMcpTool(skill_route) 自己也拦掉。路由走不通,写入也做不了,形成死锁。这不是某个项目的权限问题,换仓库同样写不进去。
README 里把类似现象写成 Windows / 旧版本 Hook 传输问题,并建议升级到 devcodex >= 1.17.3。本次发生在 macOS,卸载插件也不能让当前会话恢复写入,说明不只是 Windows 旧版问题。
环境
- 宿主:Cursor 本地 IDE(不是 Cloud Agent)
- 系统:macOS(
darwin 25.5.0)
- 安装方式:GitHub / npm 发布的 DevCodex
- 本机没有其他第三方 hook / skill 插件
- 复现仓库:
smart-listing、merchant-user(两个项目都被拦)
复现步骤
- 按 README 安装 DevCodex(全局包 + 用户级 Cursor 适配 / Plugin / MCP)。
- 打开 Cursor,在任意业务仓库开 Agent 对话。
- 让 Agent 读取某个源码文件(成功)。
- 让 Agent 对该文件做最小写入,例如末尾加一个空格。
实际结果
写入工具全部失败,错误为:
Error: progressive-skill-route
被拦的不只是改业务代码,还包括:
StrReplace / Write(改任意项目文件)
Shell(包括只读 ls 某些路径时也会被拦)
CallMcpTool → skill_route(catalog / 空参数都不行)
profile_compose_entry_check
- 读取 DevCodex 自己的 skill 文件
- 对
~/.cursor 做 glob
同一会话里 MCP 仍显示为可用:
plugin-devcodex-workspace-devcodex-memory:ready
plugin-devcodex-workspace-devcodex-profile:ready
但 skill_route 调不通,后续写入继续被 PreToolUse 拒绝。
换一个完全无关的仓库再测一次写入,结果一样。所以这是 会话级 / 用户级全局拦截,不是某个 repo 的沙箱或权限配置。
期望结果
- 安装 DevCodex 后,Cursor Agent 仍应能正常读写业务文件。
progressive-skill-route 如果还没完成路由:
- 不应 fail-close
StrReplace / Write / Shell;
- 更不应拦截
CallMcpTool(skill_route)。
- 要求先走
skill_route 的 hook,绝不能反过来把 skill_route 拦住。
- 若路由失败或 MCP 不可用,应 fail open(或明确降级为只提示、不阻断写入),而不是让 Cursor 变成只读。
现状
- 读可以,写不行。
- hook 名是
progressive-skill-route。
- 被它拦住的工具里,恰好包括完成这条 hook 所必需的
skill_route。
- README 将同类问题归因于 Windows 旧版 Hook;macOS 上同样出现,升级/卸插件也不能让当前会话恢复写入。
影响
安装后 Cursor Agent 无法改任何业务代码,等于这个宿主不可用。用户只能靠手动删 ~/.cursor/hooks.json 和 ~/.cursor/devcodex/,再完全退出 Cursor 并开新对话,才能恢复写入。
这不应当是安装后的默认行为。
相关
另有一条 issue 描述卸载后用户级 hook / 插件残留,导致卸掉 DevCodex 后 Cursor 仍然不能写。那是清理问题;本 issue 描述的是 安装后运行时就把写入死锁。
概述
在 Cursor 本地 IDE(macOS)安装 DevCodex 后,Agent 还能读文件,但任何写入都会被用户级 hook
progressive-skill-route直接拒绝。更严重的是:这条 hook 要求先完成
skill_route,却连CallMcpTool(skill_route)自己也拦掉。路由走不通,写入也做不了,形成死锁。这不是某个项目的权限问题,换仓库同样写不进去。README 里把类似现象写成 Windows / 旧版本 Hook 传输问题,并建议升级到
devcodex >= 1.17.3。本次发生在 macOS,卸载插件也不能让当前会话恢复写入,说明不只是 Windows 旧版问题。环境
darwin 25.5.0)smart-listing、merchant-user(两个项目都被拦)复现步骤
实际结果
写入工具全部失败,错误为:
被拦的不只是改业务代码,还包括:
StrReplace/Write(改任意项目文件)Shell(包括只读ls某些路径时也会被拦)CallMcpTool→skill_route(catalog/ 空参数都不行)profile_compose_entry_check~/.cursor做 glob同一会话里 MCP 仍显示为可用:
plugin-devcodex-workspace-devcodex-memory:readyplugin-devcodex-workspace-devcodex-profile:ready但
skill_route调不通,后续写入继续被 PreToolUse 拒绝。换一个完全无关的仓库再测一次写入,结果一样。所以这是 会话级 / 用户级全局拦截,不是某个 repo 的沙箱或权限配置。
期望结果
progressive-skill-route如果还没完成路由:StrReplace/Write/Shell;CallMcpTool(skill_route)。skill_route的 hook,绝不能反过来把skill_route拦住。现状
progressive-skill-route。skill_route。影响
安装后 Cursor Agent 无法改任何业务代码,等于这个宿主不可用。用户只能靠手动删
~/.cursor/hooks.json和~/.cursor/devcodex/,再完全退出 Cursor 并开新对话,才能恢复写入。这不应当是安装后的默认行为。
相关
另有一条 issue 描述卸载后用户级 hook / 插件残留,导致卸掉 DevCodex 后 Cursor 仍然不能写。那是清理问题;本 issue 描述的是 安装后运行时就把写入死锁。