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 车道经队列标签接手。

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions