Skip to content

spec 双源清账 C3:通知语汇 Notification(Schema)(./api ≠ ./ui)+ NotificationConfig(Schema)(./system ≠ ./ui)—— 4 条,单 PR #4610

Description

@os-zhuang

#4535 C 组第三簇(C3)。两对同名跨入口分叉,同属通知语汇,同一 PR 处理;合并后 packages/spec/dual-source-exports.baseline.json 恰好 28 → 24(删除下列 4 行,只减不增):

Notification — [./api (type)] ≠ [./ui (type)]
NotificationConfig — [./system (type)] ≠ [./ui (type)]
NotificationConfigSchema — [./system (const)] ≠ [./ui (const)]
NotificationSchema — [./api (const)] ≠ [./ui (const)]

处置手册(#4411 先例;#4535 正文有完整版)

  1. 先判真源:import 语句级扫描三仓(本仓 + cloud + objectui),裸名从哪个入口被真实 import、有没有 runtime 读取(接进 schema / 校验路径 / 事件发布),不要用名字出现次数。./api vs ./ui./system vs ./ui 要分别判——两对可能不同路线。
  2. 零消费方一侧 ⇒ 死删(v17 rc 是 major 窗口);两侧都活 ⇒ 收敛 + re-export(MetadataManagerConfig 模式);真是两个概念 ⇒ 改名一侧(参考 C1 的 OpenApiWebhookEvent 先例:UI 的「通知横幅/toast 配置」与 system/api 的「通知投递语汇」完全可能是两个概念——如判改名且命名可争议,报 needs_decision,不要自作主张)。
  3. 收敛 ≠ 无行为变化:存活形状比被删侧窄/宽时,changeset 里写清消费方类型如何变。
  4. 导出类型,非可作者化 metadata key,一般不需要 tombstone / ADR-0087。

验收

关联:#4535(主账本)、#4587 → PR #4603(C2 先例)、#4572 → PR #4581(C1 先例)、ADR-0049

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions