本贴是 domain:spec 座位的唯一权威登记。 座位贴协议(维护者 2026-08-06 批准,自 #4604 单正文座位表迁移而来):索引 = label:pm:seat,总入口 #4604 (指针页)。
单写手规则 :只有在任座位 PM 编辑本贴正文;接管/移交 = 改正文 + 一条审计评论(评论只作交接存档,不承载状态)。空缺争用时:动手前重拉正文、审计评论时间戳先到先得、写后回读。活性判定(惰性,无心跳,仅接管冲突时评估):Routine 座位查调度器(last_fired/next_run),会话座位查最近产出评论时间戳,>24h 无产出即可回收(改正文 + 审计评论)。
范围
packages/spec + 生成物
当前 PM(会话或 Routine ID)
会话 session_011M7UwH25Unfi73UHim7ajY(2026-08-06 12:1xZ 接管,账号 qq9340100)—— 2026-08-07 08:2xZ 起暂停,班次收官、悬置清零 ;会话在岗可被唤醒,重启条件 = 维护者示意(或按上方活性判定接管)。
说明
⏸️ 暂停(收官态,零在飞、零悬置、零定时器、零在挂订阅)。
班次终账:三轮 21 个 PR MERGED,实现级零返工。 末单 #6160 (#4395 ,connector effect,authorable +1 键经维护者批复)于 e8f8f6c94 落地,途中被 ADR-0122 防回流门实战拦截一次(并行车道新别名未配对,机械补齐 Iso pin 后过队 —— 门落地当天完成第一次真拦截)。
第 1 轮 5/5 :HookEvent 的枚举注释仍在说批量写把行级谓词「carried in input」—— 与 #5273 同一句假话,在同文件 40 行之外 #5899 /[#5588 裁 C · 第二棒] build-openapi.ts 摘除 built-in 路由段生成 —— spec 静态产物只保留 components.schemas / info / securitySchemes #5744 /shared/http.zod.ts 的两个不同 enum 发布成同一个 JSON Schema 名 HttpMethod,后写覆盖前写 —— 参考页只描述了 5 值那份,7 值的线上契约(HEAD/OPTIONS)不见了 #5832 /[#5852 契约半边] HierarchyScopeContext 未声明 organizationId / tenantId 哪个权威 —— producer 只填一个、consumer 只读另一个,两边都「符合契约」 #5858 (裁 B+C)/spec: 按 ADR-0049 摘除 IStorageService.list(prefix) 契约成员(零消费方,双适配器语义分叉 —— #5266 方案 2,维护者已批) #5540 (裁 A)。
第 2 轮 9/9 :spec 生成物按 category 分片:拆掉三个单体 ratchet 文件的合并队列串行税(维护者 2026-08-06 已拍板) #5837 生成物分片(e3ef52b ) + spec 契约文档漂移:ISharingService 模块头仍称 canEdit() 回答 update/delete,ADR-0111 D3 已把 delete 拆给 canDelete() #5817 /FieldWidgetPropsSchema 的 JSDoc 仍在教 objectui#3222 裁掉的双份显示:required「visually」+ error「display in its UI」 #5920 /ApiEndpointSchema.path 的 .describe() 举的例子会被 ADR-0121 D1 当场拒绝 —— 而这段文案正是 Studio 端点表单显示给作者的提示 #5310 /[spec] ProvisionEnvironmentResponse 增加可选 hostnameAssignment { requestedHostname, assignedHostname } —— cloud#1070 响亮改名裁定的契约半边 #5185 /[spec] IDataDriver 的 query 参数要求 QueryAST.object 与第一实参重复 —— 下游被迫 as any(20 处实测),提议 Omit/optional 化 #5181 /Skills are declared the only third-party extension primitive, but nothing in the open distribution consumes them #3905 /shared/mapping.zod.ts 的 javascript 变换 describe 推荐 dialect="js",而 ExpressionDialect 只有 cel/cron/template —— 照着写会被拒 #5552 /integration/connector.zod.ts 的 20 个裸名别名仍是 z.infer,与 #4963 确立的 X / XParsed house convention 相反(作者写的是 ConnectorInput) #5551 。分片 locality 补圈实测:feat(spec): ProvisionEnvironmentResponse 增加可选 hostnameAssignment —— 自动改名的响亮回执 (#5185) #6068 1/14、refactor(spec)!: IDataDriver 的 query 参数改为 DriverQuery,对象名只写一遍 (#5181) #6076 1/16、feat(mcp): skill 的 instructions 半边投影为 MCP prompts 原语;tool-binding 半边标注 cloud-runtime-only (#3905) #6077 0、refactor(spec)!: 按 ADR-0049 退役 FieldMapping.transform 与整个 FieldMappingTransform 联合 —— 五成员零执行者 (#5552) #6078 5 文件、feat(spec): ADR-0122 第一期 —— 解析态统一命名 XParsed(纯增量)+ 防回流门 #6072 13 分片 +635/0。平台事故:Actions 调度层 20:01–22:50Z 完全停摆,换头重触发剧本已沉淀。
第 3 轮 4/4 :MetadataEventType 是 13 类型的封闭枚举,但可注册的 metadata 类型远多于此——枚举外类型的 realtime 事件合同缺位,需裁决覆盖面 #4627 (refactor(client)!: subscribeMetadata 的 type 收窄为 MetadataEventSubject,订阅无合同类型改为编译报错 (#4627) #6156 )/需要决策:strictness 台账的 Class 词汇缺一个判定 —— "被消费者全面把守的形状片段"(#4001 批 19 / BaseNavItemSchema) #5249 (feat(spec): strictness 台账新增第九判定词 covered(#5249 裁 A) #6154 )/decide: system-data 默认 affordance 是否应包含 CSV import(RBAC 关联表批量绑定) #4671 (feat(spec)!: system-data 默认 affordance 去掉 CSV import,改为按对象显式 opt-in (#4671) #6152 )/ConnectorActionDescriptor declares nothing about whether an action reads or writes, so the platform cannot count what a connector_action did #4395 (feat(integration): 连接器动作可声明上游效果,connector_action 因此可计数 (#4395) #6160 )。
rc.4 门集四单全落、门清已报 ;rc 切版提交(bd19133 )已上 main。
v17 协议盘子扩编(维护者 2026-08-07 拍板「已决定的协议变更全进 v17」) :v18 停放拉入 10 单 —— ADR-0122 第二期:major 窗口翻转裸名为解析态语义 + XInput 去留 #6083 /ADR-0120 协议 18 项:D2 conversion(声明索引 unique: true → 'global')+ 裸 true 硬拒 + synonym pin 退役 —— 挂 18 列车,现在勿动工 #5082 /ADR-0049 enforce-or-remove: ui/widget.zod.ts 全文件 + ui/i18n.zod.ts 五个形状实测无门(#4001 批 16 改判) #5055 /composeStacks 的 i18n 仍是 last-wins —— #5005 裁决否掉的那个形状,只剩这一个键还在用 #5051 /showcase 的 project-detail 页在 page:tabs 上授权 items[].key,renderer 读的是 items[].value —— 两个 tab 的稳定 URL token 从未生效 #5776 /automation: resumeAuthority defaults to 'any', so every future pausing node ships fail-open — ADR-0044 says this is "tracked separately" and nothing tracks it #5561 /action param 的 options[] 该不该讲字段级的逐选项词汇(color / visibleWhen)? —— 三处形状,三种拼法 #5016 /rest: filterAppForUser treats app hidden flag as builder-only access gate — built-in account app returns 404 for all normal users #4829 /ApiEndpointSchema 无法对未知键收紧 —— 同一个 schema 既解析作者声明又解析存量行(行上带 packageId / state) #5309 (+ApiEndpointSchema 在 #5312 把 api 注册成元数据类型之后仍是开放 z.object —— apis: 条目的未声明键两条路都静默落地,严格性账本还把 api/ 整目录记作「wire,按设计宽容」 #5384 pm:blocked 依赖链);另 [design] 字段运行时值形状升为 spec 一等契约(fieldRuntimeType + FileRef/RecordRef)、动作 handler 类型化、file-as-reference #5867 三问全批(含 file-as-reference 迁移进 v17,$expand 为排期内前置)、Schedule 触发器不携带任何 org 上下文——定时 runAs:'system' 清扫在多组织部署里仍会产出 organization_id=NULL 的行(#5494 的用户缺席半边) #6155 裁方案 1+lint 护栏(转 services)。重启后开工序:[design] 字段运行时值形状升为 spec 一等契约(fieldRuntimeType + FileRef/RecordRef)、动作 handler 类型化、file-as-reference #5867 ADR 卡先行 → ADR-0122 第二期:major 窗口翻转裸名为解析态语义 + XInput 去留 #6083 尽早 soak → enforce-or-remove 专题批(view 的 spec 校验闸门形同虚设:saveMetaItem({ item: { nope: 1 } }) 返回 success 并把 {"nope":1} 存成一个 active view #5599 重卡 mode:cloud)→ ApiEndpointSchema 无法对未知键收紧 —— 同一个 schema 既解析作者声明又解析存量行(行上带 packageId / state) #5309 /ApiEndpointSchema 在 #5312 把 api 注册成元数据类型之后仍是开放 z.object —— apis: 条目的未声明键两条路都静默落地,严格性账本还把 api/ 整目录记作「wire,按设计宽容」 #5384 收紧对殿后(带维护者可行使的排期降级开关)。
SKILL 沉淀三条已 MERGED :docs(pm-dispatch): 单容器化任务在选择期单独派卡片(维护者拍板) #6120 (单容器派卡)/docs(spec-property-retirement): 收尾清单补两条 —— 「不代跑」源审计整组跑、dogfood 纳入退役默认消费半径 #6131 (退役收尾两条)/docs(pm-dispatch): 落地窗口给关键 PR 挂事件订阅(维护者拍板) #6163 (落地窗口订阅)。
转席核可 :[转席确认·spec 座位] PR #6165(#5696)transaction 契约收紧:EngineTransactionOptions / EngineTransactionInfo + TSDoc 事实性改写 —— 请核可或接管 #6184 (PR feat(spec,objectql): transaction 契约收紧第一批 —— opts.require fail-closed 与 owned 信号 (#5696) #6165 transaction 契约收紧)已核可归档,owned 载体选择(回调第二参)明确赞同。
联动闭环 :integration/connector.zod.ts 的 20 个裸名别名仍是 z.infer,与 #4963 确立的 X / XParsed house convention 相反(作者写的是 ConnectorInput) #5551 关(二期 ADR-0122 第二期:major 窗口翻转裸名为解析态语义 + XInput 去留 #6083 已拉入 v17)、automation/ 里还有两处 X / XParsed 未兑现:execution.zod.ts 的七对别名两边都是 z.infer,ScreenFieldConfig 缺 Parsed #5507 交分诊、cloud 双知会(docs: rewrite README.md to accurately reflect objectstack-ai/framework v4.0.1 #1053 /AIServicePlugin should auto-detect and initialize LLM provider based on environment variables #1070 )、C 包 program card:协议工具链/门禁车道(domain:spec-tooling)—— 整包移交待接收 #5163 知会;findings:[finding][spec] FilterCondition 的索引签名让未知 $ 算子永远不是类型错误 —— 「$like 本可在类型层拦住」是实测不成立的 #6074 /[finding][drivers] 五个驱动的 find/count/… 仍声明 query: QueryAST,而调用方已可省略 object —— 双变让它编译,但声明开始说谎 #6075 /stack.zod.ts 的 skills JSDoc 仍写「trigger phrases for intent matching」—— triggerPhrases 已在 #3896 退役,文案教一个会被 retiredKey 拒收的键 #6081 /expression.zod.ts 的方言表仍把 js 列为活方言(还写着用于 "mapping"),且漏了 template —— 12 行之下的枚举正好相反 #6085 /OSV 新公告波:js-yaml(GHSA-5p4m-2wfm-xmqj,High 7.5)+ mermaid 11.16.0 五条 —— Validate Dependencies 对触发它的 PR 全数转红 #6088 (已修)/finding: strictness 台账分类表的 no gate 两个范例都已改判,但表里仍写成该类的现役人口(全树 no gate = 0) #6161 /[finding] ADR-0122 D6 措辞精度:同构 pin 的编译期证明实际落在 check:test-typecheck 一步,不在裸 tsc #6183 ;v17 GA 交付物:AI 一键升级客户元数据项目(升级 skill,骑在 D2 conversions 之上) #6111 (AI 一键升级,p1)等 v17 登记集冻结。
describe/JSDoc 家族门候选 7 例 :ApiEndpointSchema.path 的 .describe() 举的例子会被 ADR-0121 D1 当场拒绝 —— 而这段文案正是 Studio 端点表单显示给作者的提示 #5310 /shared/mapping.zod.ts 的 javascript 变换 describe 推荐 dialect="js",而 ExpressionDialect 只有 cel/cron/template —— 照着写会被拒 #5552 /FieldWidgetPropsSchema 的 JSDoc 仍在教 objectui#3222 裁掉的双份显示:required「visually」+ error「display in its UI」 #5920 /ApiEndpointSchema / ApiMappingSchema 还有三处 .describe() 在向作者推销 publish 门整键拒绝的能力(type: 'script'|'proxy'、target 的 "Script Name, or Proxy URL"、ApiMapping.transform) #6065 /stack.zod.ts 的 skills JSDoc 仍写「trigger phrases for intent matching」—— triggerPhrases 已在 #3896 退役,文案教一个会被 retiredKey 拒收的键 #6081 /expression.zod.ts 的方言表仍把 js 列为活方言(还写着用于 "mapping"),且漏了 template —— 12 行之下的枚举正好相反 #6085 /参考文档生成器把数值字面量 z.literal(2) 渲染成带引号的 '2',数值型联合被记成字符串型 #5729 —— 建议家族门 + 清扫单打包。
队列现状 :target:v17 协议面约 22 单(含拉入的 10),常规余量另计;全部待维护者示意重启后按上述序派发。
迁移注记:本贴自 #4604 座位表迁移(2026-08-06,经办 PM 会话 session_01GcjbQLUQKysMU9uXB34iyv);迁移时刻起本贴即该座位唯一权威,#4604 原行不再维护。
本贴是
domain:spec座位的唯一权威登记。 座位贴协议(维护者 2026-08-06 批准,自 #4604 单正文座位表迁移而来):索引 =label:pm:seat,总入口 #4604(指针页)。单写手规则:只有在任座位 PM 编辑本贴正文;接管/移交 = 改正文 + 一条审计评论(评论只作交接存档,不承载状态)。空缺争用时:动手前重拉正文、审计评论时间戳先到先得、写后回读。活性判定(惰性,无心跳,仅接管冲突时评估):Routine 座位查调度器(last_fired/next_run),会话座位查最近产出评论时间戳,>24h 无产出即可回收(改正文 + 审计评论)。
范围
packages/spec+ 生成物当前 PM(会话或 Routine ID)
会话
session_011M7UwH25Unfi73UHim7ajY(2026-08-06 12:1xZ 接管,账号qq9340100)—— 2026-08-07 08:2xZ 起暂停,班次收官、悬置清零;会话在岗可被唤醒,重启条件 = 维护者示意(或按上方活性判定接管)。说明
⏸️ 暂停(收官态,零在飞、零悬置、零定时器、零在挂订阅)。
班次终账:三轮 21 个 PR MERGED,实现级零返工。 末单 #6160(#4395,connector effect,authorable +1 键经维护者批复)于
e8f8f6c94落地,途中被 ADR-0122 防回流门实战拦截一次(并行车道新别名未配对,机械补齐 Iso pin 后过队 —— 门落地当天完成第一次真拦截)。HookEvent的枚举注释仍在说批量写把行级谓词「carried ininput」—— 与 #5273 同一句假话,在同文件 40 行之外 #5899/[#5588 裁 C · 第二棒] build-openapi.ts 摘除 built-in 路由段生成 —— spec 静态产物只保留 components.schemas / info / securitySchemes #5744/shared/http.zod.ts 的两个不同 enum 发布成同一个 JSON Schema 名HttpMethod,后写覆盖前写 —— 参考页只描述了 5 值那份,7 值的线上契约(HEAD/OPTIONS)不见了 #5832/[#5852 契约半边]HierarchyScopeContext未声明organizationId/tenantId哪个权威 —— producer 只填一个、consumer 只读另一个,两边都「符合契约」 #5858(裁 B+C)/spec: 按 ADR-0049 摘除IStorageService.list(prefix)契约成员(零消费方,双适配器语义分叉 —— #5266 方案 2,维护者已批) #5540(裁 A)。FieldWidgetPropsSchema的 JSDoc 仍在教 objectui#3222 裁掉的双份显示:required「visually」+error「display in its UI」 #5920/ApiEndpointSchema.path的.describe()举的例子会被 ADR-0121 D1 当场拒绝 —— 而这段文案正是 Studio 端点表单显示给作者的提示 #5310/[spec] ProvisionEnvironmentResponse 增加可选hostnameAssignment { requestedHostname, assignedHostname }—— cloud#1070 响亮改名裁定的契约半边 #5185/[spec] IDataDriver 的 query 参数要求QueryAST.object与第一实参重复 —— 下游被迫as any(20 处实测),提议 Omit/optional 化 #5181/Skills are declared the only third-party extension primitive, but nothing in the open distribution consumes them #3905/shared/mapping.zod.ts 的 javascript 变换 describe 推荐 dialect="js",而 ExpressionDialect 只有 cel/cron/template —— 照着写会被拒 #5552/integration/connector.zod.ts 的 20 个裸名别名仍是 z.infer,与 #4963 确立的 X / XParsed house convention 相反(作者写的是 ConnectorInput) #5551。分片 locality 补圈实测:feat(spec): ProvisionEnvironmentResponse 增加可选 hostnameAssignment —— 自动改名的响亮回执 (#5185) #6068 1/14、refactor(spec)!: IDataDriver 的 query 参数改为 DriverQuery,对象名只写一遍 (#5181) #6076 1/16、feat(mcp): skill 的 instructions 半边投影为 MCP prompts 原语;tool-binding 半边标注 cloud-runtime-only (#3905) #6077 0、refactor(spec)!: 按 ADR-0049 退役 FieldMapping.transform 与整个 FieldMappingTransform 联合 —— 五成员零执行者 (#5552) #6078 5 文件、feat(spec): ADR-0122 第一期 —— 解析态统一命名XParsed(纯增量)+ 防回流门 #6072 13 分片 +635/0。平台事故:Actions 调度层 20:01–22:50Z 完全停摆,换头重触发剧本已沉淀。covered(#5249 裁 A) #6154)/decide:system-data默认 affordance 是否应包含 CSVimport(RBAC 关联表批量绑定) #4671(feat(spec)!:system-data默认 affordance 去掉 CSVimport,改为按对象显式 opt-in (#4671) #6152)/ConnectorActionDescriptor declares nothing about whether an action reads or writes, so the platform cannot count what a connector_action did #4395(feat(integration): 连接器动作可声明上游效果,connector_action 因此可计数 (#4395) #6160)。composeStacks的i18n仍是 last-wins —— #5005 裁决否掉的那个形状,只剩这一个键还在用 #5051/showcase 的 project-detail 页在page:tabs上授权items[].key,renderer 读的是items[].value—— 两个 tab 的稳定 URL token 从未生效 #5776/automation:resumeAuthoritydefaults to'any', so every future pausing node ships fail-open — ADR-0044 says this is "tracked separately" and nothing tracks it #5561/action param 的options[]该不该讲字段级的逐选项词汇(color/visibleWhen)? —— 三处形状,三种拼法 #5016/rest: filterAppForUser treats app hidden flag as builder-only access gate — built-in account app returns 404 for all normal users #4829/ApiEndpointSchema无法对未知键收紧 —— 同一个 schema 既解析作者声明又解析存量行(行上带packageId/state) #5309(+ApiEndpointSchema在 #5312 把api注册成元数据类型之后仍是开放z.object——apis:条目的未声明键两条路都静默落地,严格性账本还把api/整目录记作「wire,按设计宽容」 #5384 pm:blocked 依赖链);另 [design] 字段运行时值形状升为 spec 一等契约(fieldRuntimeType + FileRef/RecordRef)、动作 handler 类型化、file-as-reference #5867 三问全批(含 file-as-reference 迁移进 v17,$expand 为排期内前置)、Schedule 触发器不携带任何 org 上下文——定时 runAs:'system' 清扫在多组织部署里仍会产出 organization_id=NULL 的行(#5494 的用户缺席半边) #6155 裁方案 1+lint 护栏(转 services)。重启后开工序:[design] 字段运行时值形状升为 spec 一等契约(fieldRuntimeType + FileRef/RecordRef)、动作 handler 类型化、file-as-reference #5867 ADR 卡先行 → ADR-0122 第二期:major 窗口翻转裸名为解析态语义 + XInput 去留 #6083 尽早 soak → enforce-or-remove 专题批(view的 spec 校验闸门形同虚设:saveMetaItem({ item: { nope: 1 } })返回 success 并把{"nope":1}存成一个 active view #5599 重卡 mode:cloud)→ApiEndpointSchema无法对未知键收紧 —— 同一个 schema 既解析作者声明又解析存量行(行上带packageId/state) #5309/ApiEndpointSchema在 #5312 把api注册成元数据类型之后仍是开放z.object——apis:条目的未声明键两条路都静默落地,严格性账本还把api/整目录记作「wire,按设计宽容」 #5384 收紧对殿后(带维护者可行使的排期降级开关)。opts.requirefail-closed 与owned信号 (#5696) #6165 transaction 契约收紧)已核可归档,owned载体选择(回调第二参)明确赞同。automation/里还有两处X/XParsed未兑现:execution.zod.ts的七对别名两边都是z.infer,ScreenFieldConfig缺Parsed#5507 交分诊、cloud 双知会(docs: rewrite README.md to accurately reflect objectstack-ai/framework v4.0.1 #1053/AIServicePlugin should auto-detect and initialize LLM provider based on environment variables #1070)、C 包 program card:协议工具链/门禁车道(domain:spec-tooling)—— 整包移交待接收 #5163 知会;findings:[finding][spec]FilterCondition的索引签名让未知$算子永远不是类型错误 —— 「$like本可在类型层拦住」是实测不成立的 #6074/[finding][drivers] 五个驱动的find/count/…仍声明query: QueryAST,而调用方已可省略object—— 双变让它编译,但声明开始说谎 #6075/stack.zod.ts 的 skills JSDoc 仍写「trigger phrases for intent matching」—— triggerPhrases 已在 #3896 退役,文案教一个会被 retiredKey 拒收的键 #6081/expression.zod.ts 的方言表仍把 js 列为活方言(还写着用于 "mapping"),且漏了 template —— 12 行之下的枚举正好相反 #6085/OSV 新公告波:js-yaml(GHSA-5p4m-2wfm-xmqj,High 7.5)+ mermaid 11.16.0 五条 —— Validate Dependencies 对触发它的 PR 全数转红 #6088(已修)/finding: strictness 台账分类表的no gate两个范例都已改判,但表里仍写成该类的现役人口(全树 no gate = 0) #6161/[finding] ADR-0122 D6 措辞精度:同构 pin 的编译期证明实际落在 check:test-typecheck 一步,不在裸 tsc #6183;v17 GA 交付物:AI 一键升级客户元数据项目(升级 skill,骑在 D2 conversions 之上) #6111(AI 一键升级,p1)等 v17 登记集冻结。ApiEndpointSchema.path的.describe()举的例子会被 ADR-0121 D1 当场拒绝 —— 而这段文案正是 Studio 端点表单显示给作者的提示 #5310/shared/mapping.zod.ts 的 javascript 变换 describe 推荐 dialect="js",而 ExpressionDialect 只有 cel/cron/template —— 照着写会被拒 #5552/FieldWidgetPropsSchema的 JSDoc 仍在教 objectui#3222 裁掉的双份显示:required「visually」+error「display in its UI」 #5920/ApiEndpointSchema/ApiMappingSchema还有三处.describe()在向作者推销 publish 门整键拒绝的能力(type: 'script'|'proxy'、target的 "Script Name, or Proxy URL"、ApiMapping.transform) #6065/stack.zod.ts 的 skills JSDoc 仍写「trigger phrases for intent matching」—— triggerPhrases 已在 #3896 退役,文案教一个会被 retiredKey 拒收的键 #6081/expression.zod.ts 的方言表仍把 js 列为活方言(还写着用于 "mapping"),且漏了 template —— 12 行之下的枚举正好相反 #6085/参考文档生成器把数值字面量 z.literal(2) 渲染成带引号的 '2',数值型联合被记成字符串型 #5729 —— 建议家族门 + 清扫单打包。target:v17协议面约 22 单(含拉入的 10),常规余量另计;全部待维护者示意重启后按上述序派发。迁移注记:本贴自 #4604 座位表迁移(2026-08-06,经办 PM 会话
session_01GcjbQLUQKysMU9uXB34iyv);迁移时刻起本贴即该座位唯一权威,#4604 原行不再维护。