#4535 第二批。基线行 3 条:`EnvironmentArtifact` / `EnvironmentArtifactInput` / `EnvironmentArtifactSchema` — `[./cloud]` ≠ `[./system]`。 **已裁决路线(维护者 2026-08-03 批复前锋判定):A′ —— `./system` 收敛为单一声明取「活的 wire 形」,`./cloud` re-export,零下游迁移。** **前锋证据摘要**(详见 [#4535 前锋评论](https://github.com/objectstack-ai/objectstack/issues/4535#issuecomment-5161308046)):同概念两阶段。cloud 侧是唯一现实——全仓唯一 runtime Zod parse 在 `packages/metadata/src/plugin.ts:582-607`(checksum 为 hex **字符串**、metadata=ObjectStackDefinition),cloud 仓 3 处 type import 全部来自 spec/cloud;system 侧三仓零代码消费者、从未实现(CLI compile 写裸 definition),checksum 是**对象**、带从未实现的 `functions` / `manifest` / `payloadRef`,两侧互相解析不过。 **实施要点**: - `system/environment-artifact.zod.ts` 重写为活 wire 形;`cloud` 侧改 re-export(同一声明,消除双源);`packages/metadata/src/plugin.ts` 的 parse 按路线核对(预期零行为变化——收敛目标就是它已在解析的形状)。 - **`functions` / `manifest` / `payloadRef` 三键退役**走 `spec-property-retirement` 全流程:system def 现有 10 个 authorable key 的增删以门禁实跑为准;conversion 需求按 #4734 先例评估(存量行是否可能携带)。 - 手写文档 `north-star.mdx` §6.3 锚点同步(非 releases,可改);variant-docs 门禁会盯。 - ⚠️ #4666 盲区提示:checksum 对象→字符串是**类型变更**,key 级门禁不可见——changeset 与 PR 正文里显式写明,pin 测试补 parse 断言(旧对象形 → 拒;hex 字符串 → 过)。 - major changeset 据实;跨仓验证 cloud @ /workspace/cloud。 - **分区**:`./system` + `./cloud` + `packages/metadata` —— **与 C16 绝不并飞**(同区,B 线内串行,C16 先行);与 C7/C13+C15/C17 可并飞;入队串行协议照旧。 **排位**:第二批最后一单(裁决面最大 + retirement 流程最重)。
Activity
os-zhuang commentedon Aug 3, 2026
🔒 认领:PM 会话
session_0176qgxgCXTJCUv4YFLtusP9,分支claude/issue-4740-environment-artifact-dual-source。前置 C16(PR #4752)已于 02:4xZ 合并,
./system区空出,按 #4535 并行协议 B 线接派(与在飞的 #4738 automation+integration 区、#4579 api 区不相交)。路线按维护者 2026-08-03 裁决执行 A′:收敛到线上 wire 形状(唯一 runtime 消费者packages/metadata/src/plugin.ts_parseAndRegisterArtifact),真源单一化;从未实现的functions/manifest/payloadRef走正式属性退役。派发前快检(02:5xZ):main 上双侧源文件与 wire 消费者均在,基线 3 行(EnvironmentArtifact/EnvironmentArtifactInput/EnvironmentArtifactSchema)仍存,.changeset/pre.json仍mode: pre。Generated by Claude Code
feat(spec)!: EnvironmentArtifact 信封收敛为单一声明 —— C10 双源清账,./system 持活 wi…
os-zhuang commentedon Aug 3, 2026
✅ 实施完成(路线 A′):PR #4767(draft,base
832047c57,含 C13+C15)。会话session_0176qgxgCXTJCUv4YFLtusP9,分支claude/issue-4740-environment-artifact-dual-source。做了什么:
system/environment-artifact.zod.ts重写为活 wire 形(checksum = 64 位 hex 字符串、metadata =ObjectStackDefinitionSchema;Sha256Digest(Schema)随声明搬入./system),cloud/environment-artifact.zod.ts改为纯 re-export —— 两入口同符号,spec 同名双源:两个MetadataWatchEvent形状不同、分挂两个子路径入口,其中 kernel 版零消费方(ADR-0049 enforce-or-remove) #4411 陷阱对本名关闭。functions/manifest/payloadRef走retiredKey()tombstone 退役;按 fix(spec): #3207 收尾 — 补上 enable.trash/mru 退役缺失的 ADR-0087 迁移面,墓碑改指 #3146 #4734 先例逐条评估后判定无需 ADR-0087 conversion(信封是传输形状:不落sys_metadata、不在 conversion walker 的 stack 树上、三键从未有 producer 产出),论证全文在 PR body。./system移除(真退役,未进RENAMED_DEFS);9 个 def 停止发布,authorable-surface.json被删 46 行全部经 authorable-surface 的 tombstone 门禁可被手编基线绕过 —— 删掉基线行就删掉了证据(#4638 / #4643 已两次这样过绿) #4650 门禁路径 3 自证(merge-base 锚定832047c57,7 组「def no longer emitted by this build」,实跑输出见 PR)。packages/metadata/src/plugin.ts一字未动(收敛目标即其已解析形状);north-star.mdx§6.3 同步。验证摘要(全部实跑):
check:dual-source-exports✅(4288 names / 16 entry points,基线 6 → 3);check:generated8 项全 ✅;check:strictness-ledger✅ 台账零变化;check:variant-docs/check:liveness/check:empty-state✅;spec build ✅;spec 测试 292 文件 / 7354 全过;@objectstack/metadata测试 14 文件 / 290 全过;全仓 typecheck 122/122 ✅。pin + sabotage:compiler-API 符号身份 pin(exports-map 枚举 16 入口 + 防空转守卫 + runtime binding 同一性);S1(重加被删名)与 S2(cloud 侧新声明取代 re-export 的禁止路线)均被 pin 拦截(各 2 测试红,输出见 PR),恢复后 14/14 全绿。
跨仓:cloud 仓 2 处 type import(均
spec/cloud)名字形状不变、零迁移;objectui 零命中;本簇未发现新的手拷双源,无 followup 需立。入队前 rebase + 重生成等 PM 指令(验证期间 origin/main 前进了不相交的
040ecd28c)。Generated by Claude Code
os-zhuang commentedon Aug 3, 2026
✅ PM 内容验收通过(session_0176qgxgCXTJCUv4YFLtusP9,04:4xZ),入队暂缓:PR #4767 保持 draft,等前序 #4764(合并队列中)落地后 rebase+重生成再入队——两单在 api-surface / authorable-surface / manifest 三处生成物重叠,串行协议第 2 条适用。
核验记录(本地实测):基线 6 → 3(恰删 EnvironmentArtifact 三行);manifest −9/+1(
system/Sha256Digest)逐键核对;authorable −46/+0 与 #4650 路径 3 七组自证吻合;merge-base =832047c57,分区合规(12 文件全落 system+cloud+生成物+文档,packages/metadata零改动,releases/ 零触碰);cloud 侧改纯 re-export,pin 以「./cloud 必须解析到 ./system 声明」精确断言(S2 专拦自有声明取代 re-export 的回归路线);tombstone 三键 parse/tsc 双通道生效——信封 def 本就不发布(收敛前 cloud 侧亦然),故 authorable 无 [RETIRED] 行是正确形态,与 #4764(发布中 def 的 key 翻转)是两种各自成立的谱系;「无 conversion」论证(传输形状不落 sys_metadata、不在 walker 树、三键零 producer)成立;changeset major 据实并显式承载 #4666 盲区的 checksum/metadata 类型变更警示。rebase 期间「生成物基线手删被静默回退」被 agent 自查补救——这个陷阱已是第二次出现(C13+C15 同款),后续簇的 rebase 指令会显式点名。
Generated by Claude Code
feat(spec)!: EnvironmentArtifact 信封收敛为单一声明 —— C10 双源清账,./system 持活 wi…
feat(spec)!: EnvironmentArtifact 信封收敛为单一声明 —— C10 双源清账,./system 持活 wi…
test(spec): the first system/ file group's test titles state each cit…