Skip to content

spec 双源清账 C4:Session / SessionSchema(./api ≠ ./identity)—— 2 条 #4641

Description

@os-zhuang

#4535 C 组第四簇(C4)。同一个名字在两个入口解析到不同声明,消费者拿到哪个类型只取决于 import 路径(#4411 陷阱)。合并后 packages/spec/dual-source-exports.baseline.json 恰好 24 → 22(删除下列 2 行,只减不增):

Session — [./api (type)] ≠ [./identity (type)]
SessionSchema — [./api (const)] ≠ [./identity (const)]

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

  1. 先判真源:import 语句级扫描三仓(本仓 + cloud + objectui),裸名从哪个入口被真实 import、有没有 runtime 读取(接进父 schema / 校验路径 / 会话签发与校验 / REST 响应)。不要用名字出现次数。
    • 提示:会话是跨层概念 —— ./identity 侧大概率是认证域的会话记录(登录态、过期、设备),./api 侧可能是 REST 会话响应体。若两侧都活,优先收敛 + re-export(MetadataManagerConfig 模式);若确属两个概念,按 C1 的 OpenApiWebhookEvent 先例改名一侧,命名可争议时报 needs_decision
  2. 零消费方一侧 ⇒ 死删(v17 rc 是 major 窗口)。
  3. 收敛 ≠ 无行为变化:存活形状比被删侧窄/宽时,在 changeset 里写清消费方类型如何变。
  4. 导出类型,非可作者化 metadata key,一般不需要 tombstone / ADR-0087。

验收

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

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