Skip to content

Commit 7c6b10d

Browse files
committed
fix: close published package script dependencies
1 parent e453311 commit 7c6b10d

41 files changed

Lines changed: 1111 additions & 162 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.4.md`](./changelogs/releases/v1.17.4.md)
4+
> **最新版本详细变更文档**: [`changelogs/releases/v1.17.5.md`](./changelogs/releases/v1.17.5.md)
55
> **最后更新**: 2026-08-14
6-
> **当前版本**: v1.17.4 统一治理工作区 `.tmp/devcodex/` 临时产物,并新增默认预览、跨六宿主原子执行的安全卸载与受管残留清理;Cursor 第六宿主仍为本地 Beta,版本发布权威以对应 Git tag、npm registry 与 GitHub Release 为准。
6+
> **当前版本**: v1.17.5 修复发布包 npm scripts 与运行依赖闭包,确保全局安装包可执行 `npm run validate` 和再次 `npm pack`;六宿主能力边界保持不变,版本发布权威以对应 Git tag、npm registry 与 GitHub Release 为准。
77
88
---
99

1010
## 版本概览
1111

1212
| 版本 | 日期 | 变更摘要 | 详细 |
1313
|------|------|---------|------|
14+
| [v1.17.5](./changelogs/releases/v1.17.5.md) | 2026-08-14 | 🔧 **发布包 npm scripts 闭包修复**:最终 tarball 仅公开 8 个安装态入口,从最终 manifest 验证脚本与运行依赖闭包,并以事务保证源码 manifest 原字节恢复 | [查看](./changelogs/releases/v1.17.5.md) |
1415
| [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) |
1516
| [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) |
1617
| [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) |

‎README.md‎

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -466,6 +466,12 @@ devcodex tmp prune --dry-run
466466

467467
只有带 `WorkspaceTempManifestV1`、owner/type 可识别、TTL 已到期、没有活动 lease,且备份事务已完成的对象才会成为候选。确认后再执行 `devcodex tmp prune --apply`。一次状态检查的 canonical 文件/目录与 legacy 目录观察共用 10,000 项相关对象上限;四个 artifact 分区根不能被 manifest 整体认领,unknown owner、共享/损坏 lease、未知分区、lock、reparse point、路径逃逸、不完整备份和扫描截断都会保持 blocked。DevCodex 只拥有 `.tmp/devcodex/`:`.tmp/` 容器、`.tmp/<other-producer>/`、工作区根的 `tmp/.tmp-*` 以及 `.tmp.drive*` 外部传输 spool 都不进入 DevCodex ownership、blocked 列表或 `--apply` 删除集合;它们必须由各自生产者盘点并取得独立删除授权。
468468

469+
### 为什么全局安装包里没有源码仓的全部 `test:*` / 发布脚本?
470+
471+
npm 安装包是面向使用者的运行时,不是维护者源码仓镜像。源码中的测试、benchmark、生成器和发布编排脚本只在仓库中使用;最终安装包只公开安装生命周期、`npm run validate` 与 `global-adapters` apply/remove 脚本。保留下来的每个入口都会从最终 tarball 的 `package.json` 重新建立运行依赖闭包,并通过真实 `pack → 隔离安装 → validate → self-pack` 门禁。
472+
473+
如果你要开发或发布 DevCodex,请克隆源码仓并在源码根运行维护脚本;不要把全局安装目录当成开发 checkout。若安装包中的 `npm run validate` 或 `npm pack` 报 `MODULE_NOT_FOUND`,这是发布包完整性故障,应升级到修复版本并提交完整输出,不需要通过开启完全访问权限来绕过。
474+
469475
## 更新
470476

471477
```bash

‎RULES.md‎

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

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

‎changelogs/releases/v1.17.5.md‎

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
# v1.17.5
2+
3+
> 发布日期:2026-08-14
4+
> 类型:Patch / Published package npm scripts closure
5+
6+
## 摘要
7+
8+
本版本修复 `devcodex@1.17.4` 发布包的 npm scripts 闭包缺陷:源码仓中的维护脚本被原样保留在最终 `package.json`,但 tarball 并未包含这些脚本的全部目标,导致安装目录执行 `npm run validate` 或再次执行 `npm pack` 时可能出现 `MODULE_NOT_FOUND`。v1.17.5 将源码开发面与安装包运行面明确分离,并从最终 tarball manifest 验证真实闭包。
9+
10+
## 修复内容
11+
12+
- 新增 `PublishedPackageScriptsContractV1`:源码继续保留测试、生成、benchmark 与发布编排脚本;最终 tarball 只公开安装态真正支持的 8 个入口。
13+
- 安装包公开 `postinstall`、`prepack`、`postpack`、`validate`,以及 `global-adapters` apply/remove 的执行与 dry-run 入口。
14+
- `prepack` 在源码根以带摘要收据的事务投影发布 manifest;`postpack` 无论正常完成还是恢复流程都要求将源码 `package.json` 原字节还原,冲突时失败关闭。
15+
- 发布包内的 `prepack` / `postpack` 改为安装态闭包验证,不再调用仅存在于源码仓的生成器。
16+
- 新增安装态 validator,从最终 `package.json` 重新解析直接脚本目标、嵌套 npm scripts、CommonJS/ESM 本地依赖、`path.join` 与受支持的 spawn 目标。
17+
- `test:pack-clean` 升级为真实 `pack → 隔离 HOME 安装 → installed validate → installed self-pack`,不再仅依据 `package.json.files` 反向证明自身完整。
18+
- V6、validation DAG、发布风险路由、README FAQ 与 package files 同步接入同一闭包合同。
19+
20+
## 安装包脚本边界
21+
22+
最终发布包只保留以下 npm scripts:
23+
24+
- `postinstall`
25+
- `prepack`
26+
- `postpack`
27+
- `validate`
28+
- `global-adapters:apply`
29+
- `global-adapters:apply:dry-run`
30+
- `global-adapters:remove`
31+
- `global-adapters:remove:dry-run`
32+
33+
维护者需要运行源码测试、生成器或发布编排时,应使用 Git checkout,而不是全局 npm 安装目录。
34+
35+
## 防回归验证范围
36+
37+
- 公开脚本精确白名单、source-only 泄漏、直接与嵌套脚本目标缺失、lifecycle 单边配置。
38+
- `require` / `import` / `path.join(ROOT|__dirname, ...)` / spawn 本地目标闭包的正向与负向探针。
39+
- manifest 投影、原字节恢复、崩溃恢复、摘要冲突、重复 cleanup 与状态残留。
40+
- 真实 tarball 隔离安装、安装态 validator、`npm run validate` 与安装目录 self-pack。
41+
- 六宿主 adapter、安装/卸载、SkillRoute、Profile、README、版本、portfolio、完整验证、安全审计与发布干跑。
42+
- Windows 上 `cli-behavior` 独立实测约 102 秒、package DAG 负载下曾达到 120 秒;节点发布预算由 120 秒调整为 180 秒,保留超时失败关闭并降低远端 CI 偶发超时。
43+
44+
## 兼容性与边界
45+
46+
- 本版本是向后兼容 patch;CLI、工作区布局、六宿主配置与 Cursor Beta 能力声明均不改变。
47+
- 安装包不再承诺包含源码仓的全部维护脚本;这是发布边界收紧,不是用户功能删除。
48+
- Cursor Cloud Agent 仍不加载用户级 Hook,保持 Partial / `UNVERIFIED`。
49+
- 本缺陷与宿主“完全访问权限”无关;缺失的是发布包文件闭包,提升文件系统权限不能修复。
50+
51+
## 发布拓扑
52+
53+
- npm 包名:`devcodex`
54+
- registry:`https://registry.npmjs.org/`
55+
- 发布分支:`main`
56+
- 目标 Tag:`v1.17.5`
57+
- 上一版本:`v1.17.4`
58+
- 关联修复:`.devcodex/devcodex/bugs/发布包npm-scripts闭包修复/`

‎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.4 工作区临时产物与六宿主安全卸载候选已迁入 `changelogs/releases/v1.17.4.md`;v1.17.3 Cursor Windows Hook 与 SkillRoute 恢复见 `v1.17.3.md`,正式已发布事实以 Git tag、npm registry 与 GitHub Release 为准。
4+
> **当前**: v1.17.5 发布包 npm scripts 闭包修复已迁入 `changelogs/releases/v1.17.5.md`;v1.17.4 工作区临时产物与六宿主安全卸载见 `v1.17.4.md`,正式已发布事实以 Git tag、npm registry 与 GitHub Release 为准。
55
66
## 当前未发布实现候选
77

8+
- **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 为准。
89
- **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 为准。
910
- **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 为准。
1011
- **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 的能力边界也不升级。

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

0 commit comments

Comments
 (0)