Skip to content

Commit bc86a46

Browse files
committed
fix: enforce SkillRoute before final Stop
1 parent 7c6b10d commit bc86a46

34 files changed

Lines changed: 265 additions & 153 deletions

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.5.md`](./changelogs/releases/v1.17.5.md)
4+
> **最新版本详细变更文档**: [`changelogs/releases/v1.17.6.md`](./changelogs/releases/v1.17.6.md)
55
> **最后更新**: 2026-08-14
6-
> **当前版本**: v1.17.5 修复发布包 npm scripts 与运行依赖闭包,确保全局安装包可执行 `npm run validate` 和再次 `npm pack`;六宿主能力边界保持不变,版本发布权威以对应 Git tag、npm registry 与 GitHub Release 为准。
6+
> **当前版本**: v1.17.6 修复非显式 SkillRoute 在无工具最终 Stop 可绕过 0/1 决策的问题;统一路由、CLI/MCP schema 与六宿主能力边界保持不变,版本发布权威以对应 Git tag、npm registry 与 GitHub Release 为准。
77
88
---
99

1010
## 版本概览
1111

1212
| 版本 | 日期 | 变更摘要 | 详细 |
1313
|------|------|---------|------|
14+
| [v1.17.6](./changelogs/releases/v1.17.6.md) | 2026-08-14 | 🔧 **SkillRoute 最终 Stop 完备性修复**:非显式未提交路由在最终回复前返回 exact catalog action,阻止自然语言 workspace Skill 被无工具回复静默跳过;统一路由与宿主能力边界保持不变 | [查看](./changelogs/releases/v1.17.6.md) |
1415
| [v1.17.5](./changelogs/releases/v1.17.5.md) | 2026-08-14 | 🔧 **发布包 npm scripts 闭包修复**:最终 tarball 仅公开 8 个安装态入口,从最终 manifest 验证脚本与运行依赖闭包,并以事务保证源码 manifest 原字节恢复 | [查看](./changelogs/releases/v1.17.5.md) |
1516
| [v1.17.4](./changelogs/releases/v1.17.4.md) | 2026-08-14 | 🧹 **工作区临时产物与六宿主卸载治理**:统一 `<workspace>/.tmp/devcodex/`、manifest/TTL/lease/backup 边界与 `tmp status/prune`;新增默认预览的跨六宿主安全卸载,强化所有权、reparse/TOCTOU、并发回滚与用户内容保留 | [查看](./changelogs/releases/v1.17.4.md) |
1617
| [v1.17.3](./changelogs/releases/v1.17.3.md) | 2026-08-12 | 🔧 **Cursor Hook 与 SkillRoute 恢复闭环**:修复 Windows BOM/slash-drive、Claude 兼容导入重复执行、`MCP:` 名称与精确恢复消息;升级只保留单一活动 generation,并加固入口身份、用户 Hook 所有权和精确 Plugin 路径诊断 | [查看](./changelogs/releases/v1.17.3.md) |

RULES.md

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

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

changelogs/releases/v1.17.6.md

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
# v1.17.6
2+
3+
> 发布日期:2026-08-14
4+
> 类型:Patch / SkillRoute final-Stop completeness
5+
6+
## 摘要
7+
8+
本版本修复工作区 Skill 在无工具回复场景可能被静默跳过的问题。此前,非显式请求若尚未完成统一 SkillRoute 的 0/1 决策,`PreToolUse` 会在首次工具调用前阻断,但最终 `Stop` 会把同一个 `PLAN_NOT_COMMITTED` 状态投影为完成;因此像 `test``测试` 这类可直接文本回复的自然语言请求可能在 catalog → commit → load_stage 之前结束。
9+
10+
v1.17.6 让真实最终 `Stop` 与既有 `PreToolUse` 共同执行路由完备性门禁,并复用现有 `NextActionEnvelopeV1` 返回精确的首个 catalog 调用。语义选择仍由统一 SkillRoute 完成,Hook 不恢复关键词 auto-match,也不新增最终文本分类器。
11+
12+
## 修复内容
13+
14+
- `PLAN_NOT_COMMITTED + trigger=Stop` 对非显式请求 fail closed,最终回复不能绕过 0/1 Skill 决策。
15+
- Stop 恢复继续返回现有 exact `catalog` next call,不新增 MCP primitive、schema 或状态机。
16+
- legacy 空 trigger 保持兼容;`PreCompact` 继续由既有 stale/rebootstrap 合同拥有,不随本修复扩大。
17+
- 普通聊天通过 catalog 后 `commit(null)` 完成无 Skill 决策;显式 Skill 与命中 Skill 均沿用原有 commit/load_stage/must-reply 流程。
18+
- 沿用三次 no-progress 饱和、notice fingerprint、ContextRead allowlist、route retirement 与 catalog stale 的失败关闭边界。
19+
- 更新治理与 hooks-runtime 测试前置,使后序 Stop 门禁只在真实 SkillRoute 已完成后验证自身职责,避免旧 fixture 对新生命周期顺序产生假红。
20+
- Codex/Grok portable evidence 与宿主 capability identity 重新绑定到候选 runtime digest,并通过安装态 production replay 复验。
21+
22+
## 防回归验证范围
23+
24+
- SkillRoute lifecycle/state/contracts/closure 与 exact next action。
25+
- 非显式 Stop、PreToolUse、legacy trigger、PreCompact、显式 Skill、`commit(null)`、must-reply、retirement、catalog stale、ContextRead allowlist 和 no-progress 饱和矩阵。
26+
- Governance intake 与 hooks-runtime 完整回归,确认 SkillRoute 是未完成回合的首个 Stop owner。
27+
- 六宿主 adapter/global config、Codex/Grok candidate 与 production S15、capability freshness。
28+
- 完整 validation DAG、Profile、coverage、安全审计、package-release、双 registry dry-run、真实 pack/隔离安装/installed validate/self-pack。
29+
30+
## 兼容性与边界
31+
32+
- 本版本是向后兼容 patch;CLI、MCP schema、工作区布局、package scripts 边界和六宿主配置格式不变。
33+
- Hook 不读取最终文本来猜 Skill,也不自动选择 workspace Skill;模型仍需在 catalog 中完成唯一的 0/1 决策。
34+
- Claude、Copilot、Gemini 与 Cursor Local 不因共享 runtime 自动获得新的 native probe 结论;Cursor Cloud 继续保持 Partial / `UNVERIFIED`
35+
- 已打开任务不会热重载新的受管 runtime generation;升级后的行为从新任务生效。
36+
37+
## 升级
38+
39+
```bash
40+
npm install -g devcodex@1.17.6
41+
devcodex global-adapters apply
42+
```
43+
44+
## 发布拓扑
45+
46+
- npm 包名:`devcodex`
47+
- registry:`https://registry.npmjs.org/`
48+
- 发布分支:`main`
49+
- 目标 Tag:`v1.17.6`
50+
- 上一版本:`v1.17.5`
51+
- 关联治理:`VL-098 / PF-296 / GR-088`
52+
- 关联修复:`.devcodex/devcodex/bugs/SkillRoute非显式Stop漏检修复/`

changelogs/unreleased.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
66
## 当前未发布实现候选
77

8+
- **v1.17.6 工作区 Skill 非显式 Stop 完备性修复已归档(VL-098 / PF-296 / GR-088)**:非显式 `PLAN_NOT_COMMITTED` 除既有 PreToolUse 外,在最终 Stop 也 fail closed,并复用 `NextActionEnvelopeV1` 返回精确首个 catalog 调用;普通聊天通过统一 catalog 后 `commit(null)` 完成 0/1 决策,Hook 不恢复关键词 auto-match 或新增 final-text classifier。重复 Stop 继续使用现有 3 次饱和与 notice fingerprint,PreCompact、ContextRead allowlist、retirement 与 must-reply 合同不变。完整说明见 `changelogs/releases/v1.17.6.md`;正式发布事实仍以 Git tag、npm registry 与 GitHub Release 为准。
89
- **v1.17.5 发布包 npm scripts 闭包修复已归档(PF-294 / GR-086)**`PublishedPackageScriptsContractV1` 让源码保留完整维护脚本,同时把最终 tarball manifest 投影为 8 个 lifecycle / validate / global-adapters 入口;prepack/postpack 通过摘要收据事务原字节恢复源码 manifest。发布门禁从最终 manifest 建立 direct/nested/require/path.join/spawn 闭包,并执行真实 `pack → 隔离 HOME 安装 → installed validate → installed self-pack`;缺入口、缺依赖、source-only 泄漏、lifecycle 单边、恢复冲突或状态残留均失败关闭。完整说明见 `changelogs/releases/v1.17.5.md`,正式发布事实仍以 Git tag、npm registry 与 GitHub Release 为准。
910
- **v1.17.4 工作区临时产物与六宿主安全卸载已归档(PI-241 / PF-290 / PI-242 / PF-291)**:统一 `<workspace>/.tmp/devcodex/`、受管 manifest/TTL/lease/backup 与 `tmp status/prune`;新增默认预览的 `devcodex uninstall` / `global-adapters remove`,以跨宿主单事务、路径与所有权 fail-closed、并发安全回滚和用户内容保留完成清理。完整候选见 `changelogs/releases/v1.17.4.md`;正式发布事实仍以 Git tag、npm registry 与 GitHub Release 为准。
1011
- **v1.17.3 Cursor Windows Hook、SkillRoute 恢复与发布安全闭环(PF-286~PF-289)**:Hook adapter 在 JSON stdin 边界只剥离一个前导 U+FEFF,保留双 BOM、畸形 JSON 与超限帧的失败关闭;Cursor Windows 的 `/X:/...` / `\X:\...` 工作区路径在文件系统调用前规范化,同时保留 UNC、POSIX 和相对路径语义。Cursor 导入的 DevCodex Claude Hook 通过强 Cursor 指纹返回事件合法的最小 no-op,由专用 Cursor Hook 单独执行生命周期,避免同一请求重复推进。专用入口同时把 Cursor 官方 `MCP:<tool_name>` 规范为路由可识别名称,并在 `preToolUse` 拒绝时把生命周期生成的精确 `Next call (exact)` 投影到 `agent_message`;不依赖 `beforeSubmitPrompt` 的 allow 响应传递官方 schema 不支持的动态上下文。Resolver Skill 和安装态 verifier 会阻止模型臆造 binding 或遗漏恢复契约。用户级升级合并器识别 `devcodex/runtime-<generation>/.../lifecycle-cursor-compatible.cjs`,Cursor/Claude 活动事件只保留一个当前 generation,同时保留用户第三方 Hook 与 rolling-upgrade retained runtime;受管 ownership 使用路径与精确文件名边界,compatible helper/preload/wrapper 进入 Claude/Cursor 专用身份,Cursor verifier 精确验证 current wrapper、Plugin path 与 Resolver anchors。共享 runtime digest 与其他四宿主入口保持发布基线;真实 Cursor IDE 因订阅额度耗尽仍未做模型回放,Local 保持 Beta,Cloud/模型 replay 保持 `UNVERIFIED`。正式已发布事实仍以 Git tag、npm registry 与 GitHub Release 为准。

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": "b924a4b82cad49e4ac68dff3656214a6255f7af309a62ff5f78ff36dd82734eb",
3+
"sourceBundleDigest": "12749f1862d29224383e10e48a5c7abc3a09a37c2fa0ccb7d0a82a6ecda34df4",
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.5
5+
version: 1.17.6
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.5
5+
version: 1.17.6
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.5
5+
version: 1.17.6
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.5
5+
version: 1.17.6
66
---
77
# 任务边界与 RecordRouter
88

content/instructions/01c-intent-expansion.instructions.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
applyTo: "**"
33
description: 意图识别、Intent Expansion Card、上下文重建与可见回复证据的通用规范
44
priority: P5
5-
version: 1.17.5
5+
version: 1.17.6
66
---
77
# 意图扩展与上下文重建
88

0 commit comments

Comments
 (0)