Skip to content

Commit 1832437

Browse files
committed
fix: make skill route upgrades recoverable
1 parent fe85ff9 commit 1832437

66 files changed

Lines changed: 2235 additions & 273 deletions

File tree

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: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,15 @@
22

33
> **说明**: 版本概览摘要。最新版本的详细变更见下方表格首行的 `changelogs/releases/vX.Y.Z.md` 链接;历史版本见对应详细变更文件
44
> **最后更新**: 2026-08-04
5-
> **当前未发布**: v1.16.2 已归档;F1~F14 的 Profile 目标、ContextRead/SkillRoute、不可执行旧路由退役、索引证据与发布门禁修复仍是本地候选,详见 [`changelogs/unreleased.md`](./changelogs/unreleased.md)
5+
> **当前未发布**: v1.16.3 已归档;后续未发布实现继续记录到 [`changelogs/unreleased.md`](./changelogs/unreleased.md)
66
77
---
88

99
## 版本概览
1010

1111
| 版本 | 日期 | 变更摘要 | 详细 |
1212
|------|------|---------|------|
13+
| [v1.16.3](./changelogs/releases/v1.16.3.md) | 2026-08-04 | 🔧 **SkillRoute 无恢复循环与滚动升级修复**:不可执行旧路由自动退役并在下一轮重建;运行中会话与更新后新会话安全分流,ContextRead 仅迁移受支持的上一版本契约;Profile、memory、索引和治理台账同步加固 | [查看](./changelogs/releases/v1.16.3.md) |
1314
| [v1.16.2](./changelogs/releases/v1.16.2.md) | 2026-08-03 | 🔧 **ContextRead 回执耐久化与用户任务教程**:独立来源观察账本抵御 Hook/MCP 交错覆盖,修复空会话标识重放冲突;README 增加常见任务提示词与只读 CLI 帮助 | [查看](./changelogs/releases/v1.16.2.md) |
1415
| [v1.16.1](./changelogs/releases/v1.16.1.md) | 2026-08-03 | 🔧 **长会话提示有界化与项目绑定稳定性修复**:治理候选仅投影当前消息,历史状态有界压缩且新会话隔离;同会话项目绑定不再超时,唯一项目短名与 CLI 解析保持一致 | [查看](./changelogs/releases/v1.16.1.md) |
1516
| [v1.16.0](./changelogs/releases/v1.16.0.md) | 2026-08-03 |**首次初始化、用户语言与多项目运行态统一**`init` 自动生成非覆盖式 workspace Profile,`init --profile` 一步初始化唯一目标项目;用户回复与产物正文跟随消息语言,派生状态集中隔离并提供 runtime status/prune | [查看](./changelogs/releases/v1.16.0.md) |
@@ -136,8 +137,8 @@
136137

137138
## 相关文档
138139

139-
- [`changelogs/releases/v1.16.2.md`](./changelogs/releases/v1.16.2.md) — 最新版本详细变更文档
140-
- [`changelogs/releases/v1.16.0.md`](./changelogs/releases/v1.16.0.md) — 上一版本详细变更文档
140+
- [`changelogs/releases/v1.16.3.md`](./changelogs/releases/v1.16.3.md) — 最新版本详细变更文档
141+
- [`changelogs/releases/v1.16.2.md`](./changelogs/releases/v1.16.2.md) — 上一版本详细变更文档
141142
- [`changelogs/releases/v1.15.7.md`](./changelogs/releases/v1.15.7.md) — 历史版本详细变更文档
142143
- [`changelogs/releases/v1.15.0.md`](./changelogs/releases/v1.15.0.md) — 上一版本详细变更文档
143144
- [`changelogs/releases/v1.14.0.md`](./changelogs/releases/v1.14.0.md) — 历史版本详细变更文档

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -310,7 +310,7 @@ npm update -g devcodex
310310
devcodex --version
311311
```
312312

313-
更新完成后,重新打开宿主的新会话。
313+
更新完成后,重新打开宿主的新会话。更新不会强制中断已经打开的会话,也不会让它在任务中途切换版本;让当前会话自然结束,新会话会使用更新后的 DevCodex。
314314

315315
## 卸载
316316

@@ -331,7 +331,7 @@ devcodex runtime prune --dry-run
331331

332332
## 生效方式
333333

334-
安装或更新 DevCodex 后,npm 会在安装生命周期中刷新用户级宿主适配。已打开的宿主会话通常不会回读刚更新的配置,因此需要重新打开一个新会话
334+
安装或更新 DevCodex 后,npm 会在安装生命周期中刷新用户级宿主适配。已打开的宿主会话会继续使用它启动时已经加载的版本,不会被更新过程强制终止;更新后的配置由新会话读取,因此完成安装或更新后请重新打开一个新会话
335335

336336
DevCodex 内置 Skill 随安装包一起提供。普通使用者不需要手动配置内置 Skill;新会话开始后,DevCodex 会按请求意图自动选择需要的 Skill。
337337

RULES.md

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

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

changelogs/releases/v1.16.3.md

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
# v1.16.3
2+
3+
> 发布日期:2026-08-04
4+
> 类型:Patch
5+
6+
## 摘要
7+
8+
本版本修复更新 DevCodex 或宿主运行态不一致后,SkillRoute 可能反复提示 `RUNTIME_CONTRACT_STALE`、持续增加 reconciliation 次数,却没有任何可执行恢复动作的问题。同时收口新电脑、多项目 workspace、Profile 目标、memory 写入绑定和治理台账完整性,避免同类故障从其他入口再次出现。
9+
10+
## 主要变更
11+
12+
- 不可执行的旧 SkillRoute 会保留审计事实后结束旧过程义务,不再生成“必须处理但无动作可执行”的信封;下一条真实用户消息自动建立新的路由身份。
13+
- `noProgressCount` 有界饱和,重复 Stop 不再无限输出同一大段恢复提示;`ROOT_PLAN_BLOCKED``TURN_ENVELOPE_READBACK_FAILED``PLAN_NOT_COMMITTED` 等状态都有可执行动作或明确终态。
14+
- 用户级宿主运行态按版本与内容隔离部署。更新不会强制终止已经打开的会话;当前会话可继续使用启动时的版本,新会话使用更新后的版本。
15+
- ContextRead 增加明确的进程与运行时身份握手:只兼容已登记的上一版本差异;未知差异、伪造身份和更旧版本会要求新会话刷新,不放宽参数或绑定校验。
16+
- 新增真实滚动升级回归:保持旧版 Profile MCP 进程运行,部署候选版本,再由新版 Hook 消费旧版回执,验证受支持迁移、项目目标保持和未知差异拒绝。
17+
- `devcodex init --profile <target>` 只解析 workspace 中真实且唯一的项目;不存在、重名或仅存在历史运行态时零写入失败。
18+
- memory daily 写入绑定 allocation 返回的 `sessionId + sessionBinding`;无目标、错绑和旧版无 marker 会话不会写错任务。
19+
- 治理台账增加严格 UTF-8、NUL、重复记录 ID 与完整尾部摘要校验,避免损坏文件被当成可信索引继续传播。
20+
- README 补充更新期间已打开会话与新会话的生效边界,用户仍只需一个 npm 更新命令。
21+
22+
## 兼容性
23+
24+
- 安装、更新、初始化和卸载命令不变。
25+
- 不新增后台服务或网络监听。
26+
- 不要求用户执行 repair、doctor 或内部运行时命令。
27+
28+
## 验证
29+
30+
- ContextRead、SkillRoute、Hook、MCP、CLI、Profile、memory/report 索引与治理台账正负向回归。
31+
- 确定性 fixture 与 npm registry `devcodex@1.16.2` 的真实滚动升级验证。
32+
- Codex 候选 S15 与无特殊授权的 production-eligible S15。
33+
- full、package-release、pack/install、五宿主 adapter 与发布前审计。
34+
35+
## 发布说明
36+
37+
- npm 包名:`devcodex`
38+
- registry:`https://registry.npmjs.org/`
39+
- 发布分支:`main`
40+
- 发布路径:main CI 全绿后创建 tag `v1.16.3`,发布 npm 包与 GitHub Release

changelogs/unreleased.md

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

33
> **用途**: 记录尚未正式发版的实现级变更。
4-
> **当前**: v1.16.2 已归档到 `changelogs/releases/v1.16.2.md`;本文件仅保留历史锚点索引与镜像供 validate 探针消费。发版后新实现再写入下方「当前未发布」。
4+
> **当前**: v1.16.3 已归档到 `changelogs/releases/v1.16.3.md`;本文件仅保留历史锚点索引与镜像供 validate 探针消费。发版后新实现再写入下方「当前未发布」。
55
66
## 当前未发布实现候选
77

8-
- **Profile 目标、ContextRead/SkillRoute 与发布真相闭环修复(F1~F14)**:定向 `init --profile` 只解析真实项目且 `--dry-run` 全程零写入;生命周期改为 session-first 主动协调,ContextRead observation、阶段义务与 status/execute 共用身份和前置条件;当已提交路由因 runtime/capability/turn identity 变化而不再可执行时,Stop 保留 `processComplete=false` 与 pending 审计事实并将旧过程义务显式退役,不再返回 `action-required` 却没有可执行动作;可信旧路由的业务回复仍单独强制,下一条真实用户消息自动建立新 turn;五宿主能识别协调器当前生成且带 Hook carrier 的续页提示,避免把内部回送误当成新任务,同时不吞掉用户手工粘贴的相同文本;memory 索引区分 freshness/trust/coverage/repair,且 daily 会话通过 `sessionId + sessionBinding` 绑定后续正文写入,错绑和无目标均零写入失败,旧版无绑定会话保持只读并自动续接到新 allocation;report index 诚实降级为维护预览;Codex PASS 改用包内可复算真实宿主证据,相关组合负例接入 changed/full/package-release;`hooks-runtime` 的 298 次隔离子进程回放保留原测试强度并使用 240 秒专属预算,避免 120 秒边界将真实 PASS 误判为超时;F14 审计阻断将 website 已有 `brace-expansion` override 从 5.0.8 提升到官方修复版 5.0.9,不新增审计例外。当前为本地未发布候选,不代表 npm、GitHub、tag 或远端 CI 已更新
8+
- **v1.16.3 已归档**Profile 目标解析、memory 会话写入绑定、SkillRoute 不可执行旧路由退役、ContextRead 上一版本兼容、宿主运行态滚动升级、索引证据和治理台账完整性修复已进入 `changelogs/releases/v1.16.3.md`
99
- **v1.16.2 已归档**:ContextRead 来源回执耐久化、空会话标识重放修复、README 常见任务教程与 CLI 只读帮助已进入 `changelogs/releases/v1.16.2.md`
1010
- **v1.16.1 已归档**:长会话提示有界化、会话治理状态隔离、项目绑定稳定性与唯一短名解析修复已进入 `changelogs/releases/v1.16.1.md`
1111
- **v1.16.0 已归档**:首次初始化、项目 Profile、用户语言与 workspace runtime-state 一致性已进入 `changelogs/releases/v1.16.0.md`

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": "76bbbc92909bacd1b8cb4b9fd2de9eaca8b8a8a6ecce150563995cd3c2a85212",
3+
"sourceBundleDigest": "065674a2dcb5e9fcc54a0e121d676beed074fd450db1d2c7fcc2728216273ac3",
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.16.2
5+
version: 1.16.3
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.16.2
5+
version: 1.16.3
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.16.2
5+
version: 1.16.3
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.16.2
5+
version: 1.16.3
66
---
77
# 任务边界与 RecordRouter
88

0 commit comments

Comments
 (0)