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.
Triage: needs-user-decision, type Bug. The mechanism fix is gated on a contract-layer choice the card names precisely: WIDGETS in metadata-admin is a bare Record with no meta layer, and the host cannot emit the correct IDREF channel without a per-widget labelling declaration — plus a decision for conditional-group widgets (color-picker: split registrations vs pass both channels down). Declaring a new widget-contract key is the manual floor, so this escalates rather than queues.
⚠️Decide together with #4857 — same design axis ("how does a host learn what a widget will render"), different host (SDUI form renderer there, metadata-admin here). One ruling should settle the declaration shape for both; see the facet block on #4857.
Measured business pull: measured resolves: FALSE + anonymous radiogroup/group on real SchemaForm renders; 12 of 17 registered widgets drop the id. This is the designer every metadata author uses.
AI-agent error-resistance: the card's suggested sequence (ledger all 17 widgets first, then declare) is the right order — it converts a scattered per-widget judgement into one declared table a gate can pin.
Startup scope discipline: bounded to SchemaForm.tsx + widgets.tsx once the shape is ruled; the expensive part is the decision, not the diff.
Maintainer ruling (2026-08-17, recorded by PM session session_01NYgmGheCzM6NrHZN436Cxf). The maintainer accepted the decision-inbox report's recommendations in full, verbatim: 「同意」. Ruled together with #4857 — one declaration shape settles both hosts (see the sibling ruling there for the shared vocabulary: ComponentMeta.labelling extended to 'control' | 'group' | 'display'; ⛔ no host-local variants; the declaration slice is claude-fable-5).
This card's landing:
Ledger first (the card's own sequencing, ratified): measure all 17 registered widgets on the three axes — does the host for resolve / is the rendered face labelable / does the group have a name — before declaring; the declarations are then one reviewed table, not seventeen scattered judgements.
metadata-admin's WIDGETS registry gains a meta layer reusing the same declaration type from packages/components — never a local variant (the second-divergent-copy shape this repo keeps paying for).
SchemaForm emits the channel the declaration dictates: for for control; label publishes an id + the face answers aria-labelledby (and for is dropped) for group/display — the form.tsxlabelling: 'group' branch is the worked precedent.
Conditional-group widgets (color-picker) split into two registrations (enum ⇒ radiogroup registration, no-enum ⇒ color-input registration) — the host picks by schema, declared beats passing both channels down for the widget to choose at runtime (which would re-introduce the inference this ruling removes).
Activity
os-zhuang commentedon Aug 17, 2026
Triage:
needs-user-decision, type Bug. The mechanism fix is gated on a contract-layer choice the card names precisely:WIDGETSin metadata-admin is a bareRecordwith no meta layer, and the host cannot emit the correct IDREF channel without a per-widgetlabellingdeclaration — plus a decision for conditional-group widgets (color-picker: split registrations vs pass both channels down). Declaring a new widget-contract key is the manual floor, so this escalates rather than queues.Decision facets:
ComponentMeta.labelling: 'control' | 'group'shape already ruled forpackages/components([fields] 复合/分组 field widget 丢弃或错投 host 下发的控件 id:address / geolocation 的表单 labelfor悬空,checkboxes / radio / rating / file 的for落在不可 label 的 div 上 #3961) keeps one naming mechanism repo-wide; inventing a metadata-admin-local variant would be the second-divergent-copy shape.resolves: FALSE+ anonymousradiogroup/groupon realSchemaFormrenders; 12 of 17 registered widgets drop the id. This is the designer every metadata author uses.SchemaForm.tsx+widgets.tsxonce the shape is ruled; the expensive part is the decision, not the diff.Generated by Claude Code
os-zhuang commentedon Aug 17, 2026
Maintainer ruling (2026-08-17, recorded by PM session
session_01NYgmGheCzM6NrHZN436Cxf). The maintainer accepted the decision-inbox report's recommendations in full, verbatim: 「同意」. Ruled together with #4857 — one declaration shape settles both hosts (see the sibling ruling there for the shared vocabulary:ComponentMeta.labellingextended to'control' | 'group' | 'display'; ⛔ no host-local variants; the declaration slice isclaude-fable-5).This card's landing:
forresolve / is the rendered face labelable / does the group have a name — before declaring; the declarations are then one reviewed table, not seventeen scattered judgements.WIDGETSregistry gains a meta layer reusing the same declaration type frompackages/components— never a local variant (the second-divergent-copy shape this repo keeps paying for).SchemaFormemits the channel the declaration dictates:forforcontrol; label publishes anid+ the face answersaria-labelledby(andforis dropped) forgroup/display— theform.tsxlabelling: 'group'branch is the worked precedent.color-picker) split into two registrations (enum ⇒ radiogroup registration, no-enum ⇒ color-input registration) — the host picks by schema, declared beats passing both channels down for the widget to choose at runtime (which would re-introduce the inference this ruling removes).for悬空、description 零消费者(formula / summary / auto_number / vector / grid / slider / signature 实测) #4857 covers this registry too.Label flipped
needs-user-decision→pm:queuein the same stroke.Generated by Claude Code
yinlianghui commentedon Aug 17, 2026
PM 持有(objectui 分片 PM,session
session_01GTRjn8xBqp75dk7kFupVRt):挂pm:blocked。Blocked-by: #4857
依据 05:03Z 合裁:本卡 metadata-admin 的 meta 层必须复用 #4857 落地的
ComponentMeta.labelling三值词表(⛔ host 本地变体)—— #4857 已派发在飞(声明扩展 + display 四 + 配套门),其 PR 落 main 后本卡回队立即派(账本先行 + 复用声明类型 + color-picker 拆双注册,裁定五点已在楼上)。Generated by Claude Code
yinlianghui commentedon Aug 17, 2026
认领(objectui 分片 PM 座席,批次 21)。Session
session_01GTRjn8xBqp75dk7kFupVRt,分支claude/issue-4871-schemaform-labelling,os-dev 子代理实施。解锁依据:Blocked-by #4857 → PR #5036 已落 main(
167ec42e7)——ComponentMeta.labelling三值词表与穷尽 Record 门形态均已在位可复用。实施依据 = 05:03Z 合裁五点(楼上评论):账本先行(17 widget × 三列读数)→ meta 层复用 core 的声明类型(⛔ host 本地变体)→ SchemaForm 按声明发通道 → color-picker 拆双注册 → registered⇒declared 门覆盖本注册表。文件面:packages/app-shell/src/views/metadata-admin/SchemaForm.tsx+widgets.tsx+ 测试,与在飞 #4923(packages/cli)不相交。Generated by Claude Code
docs(app-shell): comments name the real host function, and detectCond…
fix(app-shell): metadata-admin SchemaForm 按 widget 声明发命名通道,颜色 widget …
fix(app-shell): SchemaForm 的六条非注册表渲染路径按解析出的面发命名通道 (objectstack-ai#5039)…
fix(app-shell): metadata-admin 嵌套字段 id 按路径作用域 + grid/table 单元格由列头命名 (o…