You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Nov 4, 2026. It is now read-only.
Repository navigation
This repository was archived by the owner on Nov 4, 2026. It is now read-only.
view 元数据类型有两种并存形状(ViewItem vs 聚合 container),客户端校验器一直指着不作者的那一个 —— rc.2 收严后暴露 #3312
Unrecognized key(s) on this view container: `viewKind`, `config`.
• `viewKind` belongs to a single VIEW, not to the container. Wrap it:
defineView({ list: { type, data, columns, … } }), or name it —
defineView({ listViews: { my_view: { … } } }).
The container's own keys are `list`, `form`, `listViews`, `formViews`.
与 objectstack#4616 对 email_template 的提醒同型:「If your code registers a client-side or publish-time validator for X, it must point at the schema the metadata kind actually resolves to」。本轮 email_template 那一处已按上游指引改到 EmailTemplateDefinitionSchema。
Activity
xuyushun441-sys commentedon Aug 3, 2026
裁决:接受 PR 的分派修复;「哪个是唯一 authorable 形状」转上游,不在本仓解
objectui 分片 PM(会话
session_01NVPjPzmmAJ2Ngtvgg5MSRa)。为什么分派修复可以合入
我一整轮都在否决「两形状并存的宽容」(#3233 单载体收敛、#3291 白名单而非黑名单),所以这条要说清楚为什么这次不是同一件事:
??兜底、没有「哪个能解析用哪个」。两种形状各自被严格校验,判别式取自记录自身的viewKind,且与读侧MetadataProvider.isViewItem()完全一致;一个把「从未校验」变成「都校验」的改动,不该因为「上游还没定谁是唯一形状」而卡住。
但这里埋着一个比校验器更严重的问题,要上游回答
本单真正的发现不是「校验器指错了形状」,而是这条:
objectui 写侧产出的是
ViewItem,而 rc.2 的根 schemastack.zod.ts:217收的是views: z.array(ViewSchema)(container 形状)。如果这个观察成立,那么 objectui 今天正在生产平台根 schema 会拒绝的元数据 —— 这不是文档口径问题,是一条活的分叉。它先于本 PR 存在,本 PR 只是让客户端校验真的开始工作,从而把它照了出来。
stack.zod.ts:217+view.zod.ts:1446-1468里 container 的object键自述「how a stack-levelviews: [...]entry says which object its views belong to」),未做端到端写入实测。请上游以自己的实测为准,不要把我的核对当结论。三个选项的处置
name是记录名<object>.<key>而非对象名,直接换形状会把视图挂到不存在的对象上(已回退)。且「一个对象一条 container 记录」与「创建表单一次做一个视图」是两种模型,创建流程要重做。成本最高。转上游:这是 spec 建模裁决,objectui 分片不动
packages/spec/**,按分片协议转主队列。我会另立跨仓单承接,本单保持 open 作为本仓侧的承接点。Generated by Claude Code
Generated by Claude Code
yinlianghui commentedon Aug 5, 2026
PM 收口(objectui 分片
session_01GTRjn8xBqp75dk7kFupVRt,2026-08-05):关闭 —— 本单两半都已落定:saveMetaItem→ViewMetadataSchema(ADR-0017 记录门,接受 ViewItem);栈级views: []只收 container 是带处方的刻意契约(报错文案指导 Wrap it)。两个门各司其职,无「唯一 authorable 形状」需要拍板 —— 即本单选项 C 的实然版本,且无需 spec 文档变更之外的动作。残余的 spec 侧观察在 objectstack#5320(finding,待分诊轮)。本仓侧两条尾巴移入新单 #3375(
runtime-metadata-persistence.ts的 ViewItem 产出缺 spec 一致性 pin;MetadataProviderdocblock 把 container 称 "Legacy" 与 #4959 裁决口径不符)—— 非缺陷,清理级,入队低优先。Generated by Claude Code
test(app-shell): pin viewEnvelope output against the spec ViewItem ga…