frontend-project-context 1.3.0 → 1.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/CHANGELOG.md +39 -2
  2. package/README.md +94 -16
  3. package/UPGRADING.md +47 -2
  4. package/docs/04-PROGRAM-DESIGN.md +40 -4
  5. package/docs/05-ACCEPTANCE-CONTRACT.md +33 -3
  6. package/docs/08-INSTALLATION-AND-DISTRIBUTION.md +36 -6
  7. package/docs/14-FORMAL-RELEASE-READINESS.md +46 -0
  8. package/docs/18-BRANCH-AWARE-STAGED-CONTEXT-DESIGN.md +62 -2
  9. package/docs/19-POST-1.3.1-AI-TAKEOVER-EVIDENCE-AND-UPGRADE-PLAN.md +579 -0
  10. package/docs/20-PHASE-A-AI-TAKEOVER-AND-HEALTH-CLOSURE-DESIGN.md +535 -0
  11. package/docs/21-PHASE-B-EVIDENCE-FEEDBACK-PROTOCOL-DESIGN.md +347 -0
  12. package/docs/22-PHASE-C-TARGET-UPGRADE-PROTOCOL-DESIGN.md +398 -0
  13. package/docs/README.md +21 -5
  14. package/docs/USER-AND-AI-OPERATION-MANUAL.md +797 -0
  15. package/examples/README.md +38 -0
  16. package/examples/package.json +6 -2
  17. package/migration-manifest.json +88 -0
  18. package/package.json +3 -2
  19. package/schemas/action-plan.schema.json +31 -3
  20. package/schemas/capabilities.schema.json +50 -18
  21. package/schemas/evidence-bundle.schema.json +64 -0
  22. package/schemas/evidence-input.schema.json +82 -0
  23. package/schemas/migration-manifest.schema.json +29 -0
  24. package/schemas/migration-plan.schema.json +32 -0
  25. package/schemas/project-status.schema.json +75 -0
  26. package/schemas/projection-lock.schema.json +48 -0
  27. package/schemas/review-bundle.schema.json +3 -3
  28. package/schemas/upgrade-assessment.schema.json +48 -0
  29. package/schemas/upgrade-result-bundle.schema.json +35 -0
  30. package/src/project-context/ai-entry.mjs +320 -0
  31. package/src/project-context/capabilities.mjs +44 -17
  32. package/src/project-context/checker.mjs +20 -3
  33. package/src/project-context/cli.mjs +84 -7
  34. package/src/project-context/contract-schema.mjs +30 -16
  35. package/src/project-context/dashboard-model.mjs +4 -4
  36. package/src/project-context/dashboard-renderer.mjs +3 -3
  37. package/src/project-context/discovery.mjs +6 -1
  38. package/src/project-context/evidence-schema.mjs +209 -0
  39. package/src/project-context/evidence.mjs +99 -0
  40. package/src/project-context/exchange-schema.mjs +21 -11
  41. package/src/project-context/exchange.mjs +26 -4
  42. package/src/project-context/maintenance.mjs +2 -2
  43. package/src/project-context/migration-manifest.mjs +166 -0
  44. package/src/project-context/project-status.mjs +157 -0
  45. package/src/project-context/projection-store.mjs +8 -1
  46. package/src/project-context/task-context-schema.mjs +237 -1
  47. package/src/project-context/task-context.mjs +154 -13
  48. package/src/project-context/upgrade-schema.mjs +215 -0
  49. package/src/project-context/upgrade.mjs +494 -0
@@ -80,3 +80,49 @@ registry/可见性决策、发布者认证、A-39/pack、release commit、`v1.0.
80
80
  6. 从 registry 重新下载的 tarball 与候选逐字节一致,随后直接从 registry 安装并再次通过 help、capabilities、init 与 clean check 冒烟。
81
81
 
82
82
  本次授权只完成既定 `1.2.0` 发布,不授权 Provider、Agent Runtime、`apply-plan`、自动批准、业务代码执行、Git 管理、网络能力、依赖安装、scheduler、daemon 或公共源码仓库创建。发布授权已经消耗。
83
+
84
+ ## 10. `1.3.0` Branch-aware Staged Context 正式发布
85
+
86
+ 用户于 2026-09-10 以 `authorize-1.3.0-release-candidate-and-public-npm-release` 明确授权发布。冻结候选来自提交 `5591d70eb0ccca1daa9cdb3a5eaa9cbcbd50d560`,远端 `v1.3.0` 精确指向该提交;发布后状态记录留在后续提交,避免改变标签对应的包源码。
87
+
88
+ 发布验证记录:
89
+
90
+ 1. prepack 重新执行全部 79/79 项验收并通过;
91
+ 2. tarball 包含 62 个文件,压缩大小 184468 bytes、解包大小 653373 bytes,不包含测试、Git、自托管 `.project-context/`、`PROJECT_STATE.json` 或 `RTK.md`;
92
+ 3. 候选 SHA-1 为 `b33d3c3616b556096e85168b8da79cc7abfccd21`,integrity 为 `sha512-AnWyXpRj16YcPH69LOdjr5miNohGlgRRheDk3FTUjq3kgptLnJPKBUkK+vHGpD1OGDEmiJdSwJbOy594vZeN+A==`;
93
+ 4. 候选解包后的 help、init 与 clean check 通过;
94
+ 5. `fushanyx1` 于 `2026-09-10T04:41:48.107Z` 向官方 registry public 发布 `frontend-project-context@1.3.0`,`latest` 已指向该版本;
95
+ 6. 从 registry 重新下载的 tarball 与候选逐字节一致,随后直接从 registry 安装并再次通过 help、capabilities、init 与 clean check 冒烟。
96
+
97
+ 本次授权只完成既定 `1.3.0` 发布,不授权 Provider、Agent Runtime、任务执行、自动批准、产品内 Git/网络能力、真实业务项目试用、团队验收、公共源码仓库创建或后续发布。发布授权已经消耗。
98
+
99
+ 发布后源仓库状态同步触发 A-39 时进一步确认:不可覆盖的 `1.3.0` tarball 中 README 安装命令与 `examples/package.json` 仍固定为 `1.2.0`。包的版本、入口、新命令、四份新 schema 和 registry 安装冒烟均正确;仓库消费端 pin 已修正为 `1.3.0`。
100
+
101
+ 随后的正式调用链审查又确认,`1.3.0` 对 receipt `inputBundleDigest` 的校验只存在于可选 validator 参数,`stage-context` 与 `integration-review` 未将它与实际 Stage Context Bundle 重建结果绑定;结构合法但内容错误的 digest 可在无 finding 时解锁下一 stage。用户决定把该协议正确性修复与 consumer pins 修复合并到 `1.3.1`;冻结设计和 A-74 至 A-76 见 [18-BRANCH-AWARE-STAGED-CONTEXT-DESIGN.md](./18-BRANCH-AWARE-STAGED-CONTEXT-DESIGN.md) 第 18 节。
102
+
103
+ ## 11. `1.3.1` Receipt Binding 与 Consumer Pins 修复正式发布
104
+
105
+ 用户于 2026-09-10 以“发布1.3.1版本”明确授权候选打包、Git 标签与公共 npm 发布。冻结候选来自提交 `59561df74b827e14a233b8ac63a7155ba4a34b6b`,远端 `v1.3.1` 精确指向该提交;发布后状态记录留在后续提交,避免改变标签对应的包源码。
106
+
107
+ 发布验证记录:
108
+
109
+ 1. prepack 重新执行全部 82/82 项验收并通过;
110
+ 2. tarball 包含 62 个文件,压缩大小 193586 bytes、解包大小 691194 bytes,不包含测试、Git、自托管 `.project-context/`、`PROJECT_STATE.json` 或 `RTK.md`;
111
+ 3. 候选 SHA-1 为 `2e5e2ff79e21cb2ba784a47f4d48def650128b22`,integrity 为 `sha512-h5lGzOoaZbv3Cq4uqmWnX3NfWbMKwBtslQEfrSUFYcXD+Nf0TAhMSwi1WRoIgXGsnqOT9Ps2IpVqcG/umv3QGg==`;
112
+ 4. 候选本地安装后的版本、help、capabilities、init 与 clean check 通过;
113
+ 5. `fushanyx1` 于 `2026-09-10T08:43:47.783Z` 向官方 registry public 发布 `frontend-project-context@1.3.1`,`latest` 已指向该版本;
114
+ 6. 从 registry 重新下载的 tarball 与候选逐字节一致,随后独立安装并再次通过版本、help 与 capabilities 冒烟。
115
+
116
+ 本次授权只完成既定 `1.3.1` 修复发布,不授权 `ci-reconciliation-artifacts`、Provider、Agent Runtime、任务执行、自动批准、产品内 Git/网络能力、真实业务项目试用、团队验收、公共源码仓库创建或后续发布。发布授权已经消耗。
117
+
118
+ ## 12. `1.6.0` Target Upgrade Protocol 发布候选
119
+
120
+ 用户于 `2026-09-11` 明确授权 `1.6.0` 发布候选整理、Git commit/tag/push、官方公共 npm 发布与 registry 独立复验。候选必须在发布前完成:
121
+
122
+ 1. `npm run check` 120/120;
123
+ 2. tarball 白名单审查,不包含测试、Git、自托管 `.project-context/`、`PROJECT_STATE.json` 或 `RTK.md`;
124
+ 3. 候选 tarball 全新安装后的 version/help/capabilities/status/init/clean-check 冒烟;
125
+ 4. 通过包内 manifest 完成 `1.3.1 → check → plan → preview → apply → recheck` 独立冒烟;
126
+ 5. tag 与候选提交绑定,registry tarball 与候选字节一致,且 registry 安装后重复关键冒烟。
127
+
128
+ 该授权不包含真实目标项目升级、Phase D 其余适配器、Provider/Agent Runtime、自动批准或新产品能力。最终候选摘要与 registry 证据只能在实际生成和核验后填写。
@@ -2,7 +2,7 @@
2
2
 
3
3
  > 权威说明:本文定义 AI Exchange Boundary 之上的可选附带能力,用于帮助现有 Coding Agent 以更小、更准确、可分阶段恢复的上下文完成目标功能;如与 [00-PRODUCT-CONSTITUTION.md](./00-PRODUCT-CONSTITUTION.md) 冲突,以产品宪法为准。
4
4
  >
5
- > 状态:`implemented-locally; A-64-through-A-73-passed; release-not-authorized`
5
+ > 状态:`1.3.0 historical baseline; 1.3.1 repair published-public-npm-and-registry-byte-match-verified; 82/82 tests passed`
6
6
  >
7
7
  > 基线:`frontend-project-context@1.2.0` 已公开发布并独立验证;Project Contract 身份、七项内核、人工权限和永久边界保持不变。
8
8
 
@@ -345,4 +345,64 @@ Integration Review Bundle 不执行 merge。人或外部工具完成合并后:
345
345
 
346
346
  用户于 2026-09-10 以 `authorize-1.3.0-branch-aware-staged-context-implementation` 明确授权冻结范围的本地实现。产品代码、四份机器 schema、两个只读 CLI 入口、capabilities、使用文档与 A-64 至 A-73 已完成,连同全部旧回归为 79/79 通过。
347
347
 
348
- 实现授权已消耗,本阶段在状态同步后停止。未执行真实业务项目访问、Provider、依赖安装、产品内 Git 读取/写入、任务执行、团队试用、npm pack、registry、commit、push 或发布。79 项测试通过不等于发布授权;唯一下一步是等待用户另行授权 `1.3.0` 发布候选工件与公共 npm 发布。
348
+ 用户随后以 `authorize-1.3.0-release-candidate-and-public-npm-release` 明确授权发布。候选 prepack 79/79 通过,包含 62 个文件、解包大小 653373 bytes;本地候选与官方 registry tarball 逐字节一致,SHA-1 均为 `b33d3c3616b556096e85168b8da79cc7abfccd21`,integrity 为 `sha512-AnWyXpRj16YcPH69LOdjr5miNohGlgRRheDk3FTUjq3kgptLnJPKBUkK+vHGpD1OGDEmiJdSwJbOy594vZeN+A==`。`fushanyx1` 于 `2026-09-10T04:41:48.107Z` 完成 public 发布,`latest` 指向 `1.3.0`;registry 独立安装后的 help、capabilities、init 与 clean check 通过。`v1.3.0` 指向冻结候选提交 `5591d70eb0ccca1daa9cdb3a5eaa9cbcbd50d560`。
349
+
350
+ 发布后复核确认,不可覆盖的 `1.3.0` tarball 中 README 安装命令与 `examples/package.json` 仍固定 `1.2.0`。包版本、运行时、新命令与 schema 均为 `1.3.0`,仓库消费端 pin 已修正;修复公共工件需要单独授权 `1.3.1`。
351
+
352
+ 实现与发布授权均已消耗。未执行真实业务项目访问、Provider、产品内 Git 读取/写入、任务执行或团队试用;任何后续实现、试用或发布都需要新的明确授权。
353
+
354
+ ## 18. `1.3.1` Receipt Binding 与 Consumer Pins 合并修复设计(已冻结)
355
+
356
+ ### 18.1 缺陷证据与分类
357
+
358
+ `1.3.0` 发布后的实现审查确认两项需在同一个补丁版本中修复:
359
+
360
+ 1. **Receipt 绑定缺陷**:`validateStageReceipt` 只在调用方显式传入 `expectedInputBundleDigest` 时核对 `inputBundleDigest`,但 `stage-context` 与 `integration-review` 的正式路径没有提供该期望值。只输入合法 SHA-256 格式但内容错误的 digest,仍可让依赖 stage 进入 `ready`。这违反第 7、8、10 节和 A-69/A-72 已冻结的“绑定输入 Bundle”与“过期 baseline 失败封闭”语义,分类为 **optional-adapter protocol correctness defect**。
361
+ 2. **Consumer pins 缺陷**:不可覆盖的公开 `1.3.0` tarball 中,README 安装命令和 `examples/package.json` 仍固定 `1.2.0`。运行时、命令和 schema 不受影响,分类为 **release-quality defect**。
362
+
363
+ 用户已于 `2026-09-10` 采纳审查结论,并决定把两项修复合并到一个 `1.3.1` 版本。该决定冻结本节设计与验收,不自动授权产品代码、Git 写入或公开发布。
364
+
365
+ ### 18.2 冻结协议修复
366
+
367
+ `stage-context` 与 `integration-review` 新增可重复的 `--receipt-bundle FILE...` 输入。宿主在跨窗口交接时必须成对保留每个 Stage Receipt 及其对应的输入 Stage Context Bundle;两类文件按内部 `stage.id`/`stageId` 关联,不依赖命令行顺序。
368
+
369
+ 正式路径必须:
370
+
371
+ 1. 严格验证外部 Stage Context Bundle 的 schema 1 形状、未知字段、稳定 ID、项目内路径、budget 和自身 `bundleDigest`;
372
+ 2. 要求每个 receipt 恰好有一个同 project/task/stage 的 receipt bundle,拒绝缺失、重复、多余或错配工件;
373
+ 3. 核对 bundle 的 `planDigest`、project/task/stage identity 和三个 project snapshot;
374
+ 4. 按 plan 依赖顺序,使用 bundle 内已显式记录的 `changedPaths` 和已验证的前序 receipts 重建预期 Bundle,要求规范内容与 digest 一致;
375
+ 5. 要求 receipt `inputBundleDigest` 等于已验证 bundle 的 `bundleDigest`,且 completed receipt 不得绑定 `blocked` bundle;
376
+ 6. 任一缺失、篡改、identity 错配、snapshot 过期、digest 错误或依赖链不完整都输出稳定 finding 并使结果 `blocked`,不再解锁后续 stage 或产生 `reviewable` 集成审查;
377
+ 7. 保持只读:不保存 plan/receipt/bundle,不读 Git 或源码正文,不执行任务、测试、merge 或 approval。
378
+
379
+ 建议 finding code 固定为:
380
+
381
+ - `stage-receipt-input-bundle-missing`;
382
+ - `stage-receipt-input-bundle-duplicate`;
383
+ - `stage-receipt-input-bundle-mismatch`;
384
+ - `stage-receipt-input-bundle-stale`;
385
+ - `stage-receipt-input-bundle-invalid`。
386
+
387
+ ### 18.3 兼容与版本
388
+
389
+ - 目标版本为 `1.3.1`,两项缺陷同版本修复,不再发布仅修正文档 pin 的中间版本;
390
+ - Task Context Plan、Stage Receipt、Stage Context Bundle 和 Integration Review Bundle 仍为 schema 1,store 与 exchange protocol 不迁移;
391
+ - `--receipt-bundle` 是附加 CLI 输入;对不带 receipt 的首 stage 调用没有影响;
392
+ - 对带 `--receipt` 却不带对应 bundle 的旧调用,从错误的 `ready/reviewable` 收紧为 `blocked`;这是恢复 1.3.0 已公开声明的失败封闭语义,不是新的持久能力;
393
+ - README 安装命令、中英文示例、`examples/package.json` 和发布验收统一固定 `1.3.1`;
394
+ - 不覆盖、unpublish 或修改已发布的 `1.3.0`。
395
+
396
+ ### 18.4 冻结验收 A-74 至 A-76
397
+
398
+ - **A-74 正式 Receipt/Bundle 绑定**:错误、缺失或错配 `inputBundleDigest` 在 `stage-context` 与 `integration-review` 正式路径中均 blocked;不再只测试单独 validator。
399
+ - **A-75 篡改、baseline 与多级依赖**:修改 bundle 内容/digest/identity/stage/snapshot、绑定 blocked bundle、缺少中间 bundle 或绕过传递依赖都失败封闭;完整成对链可跨窗口稳定重建。
400
+ - **A-76 补丁兼容与发布工件**:新输入仍只读、不创建 task store;四份 schema/store 版本不变;README、example、package 与 release test 统一为 `1.3.1`;A-01 至 A-73 全部回归不得删除、跳过或弱化。
401
+
402
+ 实现 Gate 为 A-01 至 A-76、B0-01/B0-02、CLI 与发布工件全绿,预期总数 `82`。任何试图仅比较 receipt 内两个由调用方同时提供的 digest、不校验 Bundle 工件或不重建依赖链的实现,均不满足本设计。
403
+
404
+ ### 18.5 停止条件
405
+
406
+ 用户已于 `2026-09-10` 以 `authorize-1.3.1-receipt-binding-and-consumer-pins-repair-implementation` 明确授权本节冻结范围的本地实现。`--receipt-bundle`、严格 Bundle 校验、自身 digest、依赖链重建、失败封闭、consumer pin 与 A-74 至 A-76 已完成,连同全部旧回归为 82/82 通过;四份 schema/store 版本未变,边界未扩大。
407
+
408
+ 实现授权已经消耗。用户随后以“发布1.3.1版本”明确授权发布;候选提交 `59561df74b827e14a233b8ac63a7155ba4a34b6b` 通过 prepack 82/82,`v1.3.1` 精确指向该提交。`fushanyx1` 于 `2026-09-10T08:43:47.783Z` 完成官方公共 npm 发布,`latest` 指向 `1.3.1`;registry tarball 与候选逐字节一致,SHA-1 为 `2e5e2ff79e21cb2ba784a47f4d48def650128b22`,integrity 为 `sha512-h5lGzOoaZbv3Cq4uqmWnX3NfWbMKwBtslQEfrSUFYcXD+Nf0TAhMSwi1WRoIgXGsnqOT9Ps2IpVqcG/umv3QGg==`,独立安装后的 CLI 冒烟通过。发布授权已经消耗,任何后续方向仍需新的明确选择。