Skip to content

E7(#5040 执行器):翻转 —— publish 硬拒收窄为「不支持子集 + 命名空间门」,声明式端点随 v17 放行执行 #5111

Description

@os-zhuang

Part of #5040(E 系列第 7 单,发布目标 v17,维护者裁决 2026-08-04:执行器直接进 v17,v17 切版等 E 系列全绿)。Blocked-by: #5091(E4)+ #5092(E5)+ #5093(E6) —— 执行面齐备前 publish 不得放行。

范围(以 #5040 设计与 ADR-0121 为准,spec 车道)

  1. 收窄 声明式 apis:(ApiEndpoint)入站面全链路零执行:元数据装载成功、路由从未挂载、matchEndpoint 全仓无实现 #4936 的整面硬拒(packages/spec/src/stack.zod.ts):非空 apis: 不再一律拒绝,改为逐端点过门 ——
    • 支持子集门:仅放行 17.x 实际执行的形状(E2–E5 已落的匹配与委派能力);词表里声明了但执行器不支持的组合仍响亮拒绝(错误文案指向具体键与替代方案,不留 declared≠enforced 缝隙);
    • 命名空间门:path 必须落在本包命名空间的挂载前缀下(/api/v1/apps/<ns>/…),跨命名空间/越界路径拒绝(ADR-0076 一路一主在 publish 时即成立);同栈内重复 METHOD+path 拒绝(运行时的字典序裁决只兜 publish 之外的直写)。
  2. 生成物整体重生成(os-regen 四步;错误文案、spec-changes、upgrade-guide 均会动)。
  3. 升级文档 = 安全承载件(维护者裁决:不加激活开关,靠文档让 AI 维护者知情):upgrade-guide 条目必须显式包含 —— v16 休眠 apis: 配置在 v17 会被校验并激活;指令 AI 维护者审视历史配置,尤其显式 authRequired: false 条目(词表缺省即 true,E1 已物化,漏写不构成风险);不改 content/docs/releases/(Prime Directive,发版说明由 changeset 集中编译)。
  4. Changeset:@objectstack/spec 相应级别,明确「v17 破坏面 = 校验从整面拒绝改为条件放行」。

约束

词表冻结(ApiEndpointSchema 零改动 —— 门是校验逻辑,不是新键);执行器车道程序卡(session_01EYGdmvWP1ieZSLqvAW6uyd 按序派发),其它车道请勿认领。

关联:ADR-0121、#4936(被收窄的裁决)、#5089/#5090/#5091/#5092/#5093、#5040 设计 §6。

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