Skip to content

[#4535·A3] contracts 手写 interface 与域内 zod 推导类型收敛(3 簇 9 条) #4538

Description

@os-zhuang

#4535 A3 项。系统性成因相同:packages/spec/src/contracts/ 手写了参数/返回类型 interface,而对应域里已有同名 zod schema 推导类型 —— 同名不同形状,基线 9 条:

  • ./contracts./system:MetadataExportOptionsMetadataImportOptionsJobExecutionJobScheduleNotificationChannel
  • ./contracts./kernel:HealthStatusPluginStartupResultStartupOptionsValidationResult
  • ./contracts./data:AnalyticsQueryDriverCapabilities

两侧都有消费方,不能一删了之。 逐名判定真源(哪一侧的形状是运行时实际流动的),然后收敛:contracts 引用 zod 推导类型并 re-export,或域侧 schema 对齐 contracts 语义后 contracts 改引 —— 每个名字单独判,不搞批量假设。MetadataExportOptions/MetadataImportOptions#4411 的旁证:IMetadataService.exportMetadata/importMetadata 用的是 contracts 自有形状(types/namespaces/format),与 system 版(output/format/…)语义就不同 —— 这类可能是改名而非收敛(两个概念:服务参数 vs 持久化选项)。

建议分 3 个 PR(按入口对),每个 PR 删对应基线行作为验收。适合与 #4535·B/C 项并行排期,但注意所有 PR 都动 dual-source-exports.baseline.json,串行入队

关联:#4535(主单)、#4506(基线)

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions