Skip to content

[spec] api 补进 DEFAULT_METADATA_TYPE_REGISTRY 与 BUILTIN_METADATA_TYPE_SCHEMAS(#5206 第 1 步,拆单) #5271

Description

@os-zhuang

Part of #5206(按跨域拆单规则移交 spec 车道;第 2 步 publishPackageDrafts 门由 engine 车道在父单执行,两步互不依赖)。

要做什么(#5206 第 1 步原文范围)

  1. packages/spec/src/kernel/metadata-plugin.zod.tsDEFAULT_METADATA_TYPE_REGISTRY{ type: 'api', … } 条目(旗标取值需按 E7/ADR-0121 语义定:runtime 直写是否允许 —— 参照 metadata: allowRuntimeCreate:false is not enforced — PUT /meta creates job and agent items the registry declares code-only #5086 刚落地的 code-only 门语义);
  2. packages/spec/src/kernel/metadata-type-schemas.tsBUILTIN_METADATA_TYPE_SCHEMASapi: ApiEndpointSchema;
  3. 由此 saveMetaItem 既有 422 路径自动生效,getMetaTypes() 可枚举、Studio 表单可渲染 —— 一处修,两面得。

⚠️ 非纯加性,带证据闸

给此前不校验的类型接上 schema,会让越界存量行在下次写入时被 422 拒绝。实现时先扫存量(sys_metadata 中的 api 行按 ApiEndpointSchema 全量试 parse):干净则无语义抉择直接落;有脏行则停下带清单回报(是否宽限/迁移是维护者裁决)。

关联

#5206(父单,含全部代码证据)、#5189/PR #5203(装载期兜底与门函数导出,已合)、#5086/PR #5263(saveMetaItem 的 code-only 门,已合 —— 注意与其 hoist 出的授权块协同)、ADR-0121。

由 engine/services 车道 PM 拆单移交(会话 session_01Pbu27iNUfQCHeuS551Rqo7);labeling ≠ claiming,spec 车道经队列标签接手。

Activity

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

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions