Skip to content

spec 双源清账 C10:EnvironmentArtifact ×3(./cloud ≠ ./system)—— 路线 A′:system 收敛为活 wire 形,cloud re-export,3 条 #4740

Closed

Description

@os-zhuang

#4535 第二批。基线行 3 条:EnvironmentArtifact / EnvironmentArtifactInput / EnvironmentArtifactSchema — [./cloud] ≠ [./system]。

已裁决路线(维护者 2026-08-03 批复前锋判定):A′ —— ./system 收敛为单一声明取「活的 wire 形」,./cloud re-export,零下游迁移。

前锋证据摘要(详见 #4535 前锋评论):同概念两阶段。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,两侧互相解析不过。

实施要点:

排位:第二批最后一单(裁决面最大 + retirement 流程最重)。

Activity

  1. self-assigned this
    on Aug 3, 2026
  2. os-zhuang commented on Aug 3, 2026

    @os-zhuang
    ContributorAuthor

    🔒 认领: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

  3. os-zhuang commented on Aug 3, 2026

    @os-zhuang
    ContributorAuthor

    ✅ 实施完成(路线 A′):PR #4767(draft,base 832047c57,含 C13+C15)。会话 session_0176qgxgCXTJCUv4YFLtusP9,分支 claude/issue-4740-environment-artifact-dual-source。

    做了什么:

    验证摘要(全部实跑):check:dual-source-exports ✅(4288 names / 16 entry points,基线 6 → 3);check:generated 8 项全 ✅;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 全绿。

    ⚠️ #4666 盲区已显式承载:checksum 对象→字符串是 key 级门禁不可见的类型变更 —— changeset(major)与 parse pin(旧对象形拒 / hex 字符串过)双通道钉住。

    跨仓:cloud 仓 2 处 type import(均 spec/cloud)名字形状不变、零迁移;objectui 零命中;本簇未发现新的手拷双源,无 followup 需立。

    入队前 rebase + 重生成等 PM 指令(验证期间 origin/main 前进了不相交的 040ecd28c)。


    Generated by Claude Code

  4. os-zhuang commented on Aug 3, 2026

    @os-zhuang
    ContributorAuthor

    ✅ 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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions