Skip to content

Commit 804bbd6

Browse files
committed
fix: bind installed runtime and isolate cross-host hooks
1 parent 3f834fa commit 804bbd6

44 files changed

Lines changed: 674 additions & 193 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

CHANGELOG.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,17 @@
11
# 变更日志 (CHANGELOG)
22

33
> **说明**: 版本概览摘要;历史版本见对应详细变更文件。
4-
> **最新版本详细变更文档**: [`changelogs/releases/v1.17.1.md`](./changelogs/releases/v1.17.1.md)
4+
> **最新版本详细变更文档**: [`changelogs/releases/v1.17.2.md`](./changelogs/releases/v1.17.2.md)
55
> **最后更新**: 2026-08-12
6-
> **当前版本**: v1.17.1 修复显式 `--home` 的六宿主目标解析与 Grok 官方注册表作用域逃逸;Cursor 第六宿主仍为本地 Beta,版本发布权威以对应 Git tag、npm registry 与 GitHub Release 为准。
6+
> **当前版本**: v1.17.2 修复生产 S15 从源码重算安装代次导致的错误绑定,并隔离 Grok 默认导入 Cursor Hooks 的跨宿主干扰;Cursor 第六宿主仍为本地 Beta,版本发布权威以对应 Git tag、npm registry 与 GitHub Release 为准。
77
88
---
99

1010
## 版本概览
1111

1212
| 版本 | 日期 | 变更摘要 | 详细 |
1313
|------|------|---------|------|
14+
| [v1.17.2](./changelogs/releases/v1.17.2.md) | 2026-08-12 | 🔧 **生产回执绑定与跨宿主 Hook 隔离**:Codex/Grok 发布验收改以已安装回执为权威;DevCodex 管理的 Grok 子进程不再默认导入 Cursor Hooks,Cursor 官方配置与用户直接运行 Grok 的偏好保持不变 | [查看](./changelogs/releases/v1.17.2.md) |
1415
| [v1.17.1](./changelogs/releases/v1.17.1.md) | 2026-08-12 | 🔧 **六宿主 `--home` 隔离修复**:显式 HOME 优先于宿主、共享 Skill 与 VS Code MCP 的 ambient 路径覆盖,Grok 官方 CLI 继承 resolved target;真实/隔离负向探针保证 Cursor 接入不改动其他宿主 | [查看](./changelogs/releases/v1.17.1.md) |
1516
| [v1.17.0](./changelogs/releases/v1.17.0.md) | 2026-08-12 |**Cursor 第六宿主 Beta 接入与候选证据加固**:六宿主统一安装、Hook/Plugin/MCP/SkillRoute、本地四形态诚实诊断、Windows CLI 身份解析及当前源码 S15 强绑定 | [查看](./changelogs/releases/v1.17.0.md) |
1617
| [v1.16.7](./changelogs/releases/v1.16.7.md) | 2026-08-11 | 🔧 **Grok 渐进式 Skill 路由与正文证据修复**:未提交路由在首次工具调用前 fail closed,ContextRead 保持可完成;Full 启动器固定 Grok 限定 MCP 名、首 catalog 与条件 commit 契约,并以真实三阶段 S15 晋级 Grok capability PASS | [查看](./changelogs/releases/v1.16.7.md) |

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -161,6 +161,8 @@ devcodex grok
161161

162162
Cursor 当前是第六宿主 Beta。全局安装会写入用户级 `~/.cursor/hooks.json` 和 DevCodex Cursor Plugin;本地 IDE、交互 CLI 与 Headless CLI 共享 Hook、Plugin、MCP 和渐进式 SkillRoute。Cursor Cloud Agent 不加载用户级 Hook,因此只标记为 Partial / `UNVERIFIED`,不会继承本地 readiness 结论。能力依据见 [Cursor Hooks](https://cursor.com/docs/hooks)[Cursor Plugins](https://cursor.com/docs/plugins)[Cursor Headless CLI](https://cursor.com/docs/cli/headless)
163163

164+
Cursor 与 Grok 同机安装时,`devcodex grok` 只在它启动的 Grok 子进程中关闭 Grok 对 Cursor Hooks 的兼容导入,避免 Grok 二次解析 `~/.cursor/hooks.json`;Cursor 官方 Hook 配置不会被改写,用户直接运行普通 `grok` 时的兼容偏好也不会被永久修改。
165+
164166
## 项目 Profile
165167

166168
普通单项目只需执行 `devcodex init`,无需再运行 Profile 命令。多项目 workspace 中,如果某个子项目需要独立于 workspace 基线的 Profile,可在 workspace 根目录按项目名初始化:

RULES.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
# DevCodex v1.17.1 — 使用入口
1+
# DevCodex v1.17.2 — 使用入口
22

3-
> AI workflow injector for Copilot / Claude Code / Codex / Gemini / Grok / Cursor Beta · publisher: Rocky · version: 1.17.1
3+
> AI workflow injector for Copilot / Claude Code / Codex / Gemini / Grok / Cursor Beta · publisher: Rocky · version: 1.17.2
44
55
## 正式主支持客户端
66

changelogs/releases/v1.17.2.md

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
# v1.17.2
2+
3+
> 发布日期:2026-08-12
4+
> 类型:Patch / production evidence binding
5+
6+
## 摘要
7+
8+
本版本修复发布后 R7 才暴露的两类跨边界问题。其一,Windows 源码树会以 CRLF 内容重算 runtime generation,而 npm 发布包由 Linux runner 以 LF 内容打包;两者运行契约语义相同,但 generation ID 不同。旧探针把源码推演路径当作已安装事实,导致真实 Grok Hook 已加载时仍误报缺失,并让 launcher 再次指向不存在的源码代次。其二,Grok 1.0.0 默认启用 Cursor Hook 兼容扫描,会主动读取官方 Cursor 扁平 `~/.cursor/hooks.json`,但其兼容解析器期待另一种 matcher group 结构,产生解析告警并可能干扰 Grok 回合。v1.17.2 以已安装宿主回执为唯一生产绑定权威,并只在 DevCodex 管理的 Grok 子进程中关闭该外部兼容扫描。
9+
10+
## 修复内容
11+
12+
- 新增 installed-production binding:从宿主 `global-host-receipt.json` 读取实际 `runtimeRoot``skillsRuntimeRoot`,不再从当前源码内容推演安装代次。
13+
- 生产绑定必须同时满足 committed receipt、当前 package version、runtime contract digest、host adapter digest 与 runtime generation version;任一不一致即保持失败关闭。
14+
- runtime 必须位于宿主受管 `devcodex` 根下,shared Skill runtime 必须位于共享受管根下;伪造或越界回执被显式拒绝。
15+
- Codex 与 Grok production S15 共用同一安装回执绑定层,证据中的 generation digest 不再为空。
16+
- Grok launcher 可接收上游已验证的 installed target,并核对宿主身份、HOME owner root 与 runtime 物理边界;默认用户调用仍按原路径自行解析,保持兼容。
17+
- Grok production S15 将同一个 target 依次用于 Hook 发现、Plugin Hook 校验、launcher kernel 与 Skill runtime,消除内部二次推演。
18+
- 新增单一 `grok-cli-env` 边界:DevCodex launcher、Grok Plugin 安装/卸载、全局适配器同步、运行时 verifier 与 Grok S15 子进程统一设置 `GROK_CURSOR_HOOKS_ENABLED=false`
19+
- 隔离仅作用于 DevCodex 启动的 Grok 子进程,不持久修改 `~/.grok/config.toml`,也不改变用户直接运行 `grok` 时的兼容偏好。
20+
- Cursor 的官方扁平 Hook schema 保持不变;DevCodex 不为适配 Grok 而重写 `.cursor/hooks.json`,避免 Cursor 第六宿主反向污染。
21+
- Grok launcher adapter digest 纳入 `grok-cli-env.js`,该隔离边界发生内容漂移时旧证据自动失效。
22+
23+
## 防回归验证
24+
25+
- 构造“源码重算代次不存在、发布回执代次存在”的 fixture,要求 production binding 必须选择发布回执代次。
26+
- 构造 runtime 越出宿主受管根的伪造回执,要求返回 typed assertion 且不继续启动宿主。
27+
- 构造 Grok launcher 的 receipt-bound target,要求读取指定 generation 的 `AGENTS.md`;越界 target 必须拒绝。
28+
- 给输入环境显式设置 `GROK_CURSOR_HOOKS_ENABLED=true`,要求派生 Grok 子进程仍为 `false`,同时原环境对象保持不变。
29+
- 修改隔离 helper fixture 必须改变 Grok launcher adapter digest,防止 package runtime 闭包新增后摘要仍假绿。
30+
- 真实 Grok S15 必须由 `inspect --json` 证明 Cursor Hook compatibility 为 `enabled=false`、来源为 `env`,且发现的 Hook 来源中不存在 `.cursor` 路径。
31+
- `test:host-adapters``test:host-installation` 同时覆盖 Cursor Beta 映射、六宿主安装、零 workspace host artifacts 与 launcher 默认兼容。
32+
33+
## 六宿主非回归边界
34+
35+
- 本补丁不改变 Copilot、Claude、Codex、Gemini、Cursor 的 Hook 事件、用户配置 schema、MCP 服务或 workspace clean mode;Grok 仅在 DevCodex 管理子进程中关闭对 Cursor Hook 的外部兼容导入,DevCodex 自身 Grok Hook/Skill/MCP 保持启用。
36+
- Cursor 本地 IDE、交互 CLI、Headless CLI 继续为 Beta;Cursor Cloud Agent 与本机未具备官方 Cursor CLI 身份时继续为 Partial / `UNVERIFIED`
37+
- `v1.17.1` 的显式 HOME 隔离合同继续成立:Cursor 接入不得写入其他宿主或 ambient override 目标。
38+
39+
## 发布拓扑
40+
41+
- npm 包名:`devcodex`
42+
- registry:`https://registry.npmjs.org/`
43+
- 发布分支:`main`
44+
- 目标 Tag:`v1.17.2`
45+
- 上一版本:`v1.17.1`
46+
- 需求证据:`.devcodex/devcodex/requirements/Cursor第六宿主Beta接入/`

changelogs/unreleased.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
# 未发布变更(Unreleased)
22

33
> **用途**: 记录尚未正式发版的实现级变更。
4-
> **当前**: v1.17.1 六宿主 HOME 隔离补丁候选已迁入 `changelogs/releases/v1.17.1.md`;Cursor 第六宿主 Beta 历史见 `v1.17.0.md`,正式已发布事实以 Git tag、npm registry 与 GitHub Release 为准。
4+
> **当前**: v1.17.2 生产 S15 安装回执绑定与 Cursor→Grok 跨宿主 Hook 隔离候选已迁入 `changelogs/releases/v1.17.2.md`六宿主 HOME 隔离见 `v1.17.1.md`Cursor 第六宿主 Beta 历史见 `v1.17.0.md`,正式已发布事实以 Git tag、npm registry 与 GitHub Release 为准。
55
66
## 当前未发布实现候选
77

8+
- **v1.17.2 生产回执绑定与跨宿主 Hook 隔离修复**:发布后 R7 在 Windows 源码树发现生产 Grok 探针用 CRLF 源码重算 `RuntimeGenerationManifestV1`,与 npm Linux 发布包的 LF 安装代次不同;Codex/Grok production S15 现统一从 committed `global-host-receipt.json` 绑定 runtime 与 shared Skill 根,校验版本、摘要与物理边界,Grok launcher 不再内部重复推演。继续实装复验又发现 Grok 1.0.0 默认扫描官方 Cursor 扁平 `~/.cursor/hooks.json`,其兼容解析器会报 matcher group 结构错误并干扰回合;所有 DevCodex 管理的 Grok 子进程现统一以环境变量关闭 Cursor Hook 外部兼容,且 `inspect --json` 必须证明来源为 `env`、发现列表中不存在 `.cursor`。Cursor 官方 Hook schema、用户 Grok 持久配置及直接运行 `grok` 的偏好均不改变;其他五宿主、Cursor Cloud 与模型 replay 的能力边界也不升级。
89
- **v1.17.1 六宿主 HOME 隔离修复**`global-adapters apply --home <dir>` 将显式 HOME 作为 CLI 隔离权威,在目标解析前屏蔽 Copilot/Claude/Codex/Gemini/Grok/Cursor、共享 Skill 根与 VS Code MCP 的 ambient 路径覆盖;空值/纯空白 `--home` 失败关闭,未传 `--home` 时保留原环境变量语义。事务后调用 Grok 官方 CLI 时,再把 committed `GlobalHostTargetV1.root` 绑定为派生环境的 `GROK_HOME`,且不修改 ambient process env;target root 缺失时返回 typed failure。单测覆盖六宿主 root、12 个路径覆盖键、原环境不变、legacy 路线和 malformed target;真实探针证明隔离 HOME 6/6 committed、12 个 ambient 目标零创建、真实五个既有宿主加 Grok 的 34 个受管条目快照不变。同步修复 package-lock 根版本漂移并扩展版本校验器。Cursor Local 继续为 Beta,Cloud 与模型驱动 replay 继续为 `UNVERIFIED`
910
- **v1.17.0 Cursor 第六宿主 Beta 接入**:`GlobalHostTargetV1` 扩展为六宿主,npm 全局安装在用户 HOME 写入 `~/.cursor/hooks.json`、动态 DevCodex Plugin、resolver Skill 与本地 stdio MCP;覆盖 workspaceOpen、sessionStart/sessionEnd、beforeSubmitPrompt、Pre/PostTool、failure、afterAgentResponse、preCompact 与 bounded Stop follow-up。本地 IDE、交互 CLI、Headless CLI 分列为 Beta,Cursor Cloud Agent 因不加载用户级 Hook 固定为 Partial / `UNVERIFIED`。`status/doctor`、HostEnforcementMatrix、能力目录、README、RULES、投影内核、安装/回滚/负向测试与 package 文件清单同步升级;业务 workspace 继续零 `.cursor` 产物。Windows native probe 会按 PATH/PATHEXT 优先解析官方 `cursor-agent.cmd` / `.bat`,再回退到 `agent` 并校验产品身份,既避免 Node 跳过 `.cmd` 后误命中 Grok `agent.exe`,也继续用 `HOST_NATIVE_IDENTITY_MISMATCH` 暴露真实别名冲突。Cursor Marketplace 发布不在本版本范围内。
1011
- **Cursor/S15 候选真实性加固**:Cursor Plugin MCP 的 workspace 参数改为 `${workspaceFolder}`;官方 Cursor CLI `2026.08.04-aaa8809` 已在隔离 HOME 中真实启动 memory/profile 两个 stdio server,并分别枚举 10/6 个工具。Codex/Grok 非 production S15 改为把当前源码安装到一次性宿主 HOME,强制核对 source、generation、mode receipt 与 route envelope 四个 runtime digest,避免“证据写当前 digest、实际执行旧全局 runtime”的跨版本假阳性;catalog stale 同步输出有界 index drift 诊断。Cursor 模型驱动 Hook/Skill replay 因隔离 CLI 未登录仍保持 `UNVERIFIED`,不升级 Beta/Cloud 声明。

content/duplication-inventory.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"schemaVersion": "ControlContentDuplicationInventoryV1",
3-
"sourceBundleDigest": "9a636692adf0ec7f68c2c6be9a5d3f38003da7164b0dd5c25d795c87e4313616",
3+
"sourceBundleDigest": "f4f0fa193a4354ee69a36d8f5ddefef1db504f3d3424243372d9e177baae6442",
44
"thresholds": {
55
"minParagraphChars": 100,
66
"sectionThreshold": 0.94,

content/instructions/00-safety.instructions.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
applyTo: "**"
33
description: 安全底线与输出语言规则,定义 S01~S07、违规处理与不可豁免边界
44
priority: P2
5-
version: 1.17.1
5+
version: 1.17.2
66
---
77
# 安全底线规范(S01~S07)
88

content/instructions/01-common.instructions.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
applyTo: "**"
33
description: 通用规范总则,覆盖优先级、意图路由、Profile/active-root、宿主适配与治理总线
44
priority: P5
5-
version: 1.17.1
5+
version: 1.17.2
66
---
77
# 通用规范
88

content/instructions/01a-profile-loading.instructions.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
applyTo: "**"
33
description: 意图驱动的 Profile 加载、active-root 路径、目标项目识别与项目现实扩展规范
44
priority: P5
5-
version: 1.17.1
5+
version: 1.17.2
66
---
77
# Profile 加载与项目现实扩展
88

content/instructions/01b-record-router.instructions.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
applyTo: "**"
33
description: 任务切换边界、RecordRouter 分流、Improvement Intake 与提交发布边界的通用规范
44
priority: P5
5-
version: 1.17.1
5+
version: 1.17.2
66
---
77
# 任务边界与 RecordRouter
88

0 commit comments

Comments
 (0)