|
| 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接入/` |
0 commit comments