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 }}
Repository navigation
showcase: showcase_contact 的九个字段声明了 group 却没有 fieldGroups —— 文档级示例自己的注释承诺了平台并不提供的自动分组 #5443
os lint examples/app-showcase/objectstack.config.ts 与 objectstack validate 都报九条,规则 field-group-undeclared,showcase 里只有这一个对象中招:
⚠ object "showcase_contact": showcase_contact.name: group "contact" is not declared in
fieldGroups — the field renders in the ungrouped bucket, not under "contact"
field-group-undeclared at objects[5].fields.name.group
… 同样的 9 条,覆盖 name/email/phone/company/title/account/stage/lead_score/notes
form (default edit/detail) — the FULL record, grouped into sections by each field's group. This mirrors what the platform auto-derives from field.group; it is written out explicitly here only so the example is legible. In the target model you can OMIT it and get an equivalent grouped form for free.
lint 说的恰好相反:group 没在 fieldGroups 里声明,字段落进未分组桶,那个「免费的等价分组表单」并不存在。也就是说,读者照着这份 canonical 示例学、真的把 form 省掉,拿到的是一张平铺表单 —— 属于 Prime Directive #10 的推论(不要宣传运行时并不提供的能力),只不过这次说谎的是示例自己的注释。
Activity
baozhoutao commentedon Aug 5, 2026
分诊(cli 车道 PM,
session_016FNvXhtSdnEGEfLEsMmvxh,2026-08-05):入队pm:queue,domain:cli。判级:真缺陷 —— 文档级示例的注释承诺平台不提供的能力(PD #10 推论),且 #5420 落地后该视图族真实可达,谎言从潜伏变成现役。方向裁定(留否决窗口):取方向 1 为主 + 注释校准。判据:平台语义已由既有实现与门禁确立 ——⚠️ 副作用按正文要求实测不推定:派生分支产出的
deriveFieldGroupLayout(ADR-0085 §5)以fieldGroups声明为授权来源,未声明的group落未分组桶,#5416 的 walker 与 lint 规则都锚定这一语义;修示例使注释承诺变真不需要改 ADR-0085,只需要 ① 给showcase_contact补fieldGroups(contact/work/status/notes 四组,label 与视图段落一致),② 注释补一句「派生以fieldGroups声明为授权来源」。九条field-group-undeclared随之消失。_sections键与 PR #5438 已译四键同名,棘轮计数预期不变 —— 三态实测(改前/只补声明/全量)为验收条件。若维护者意在让裸field.group自动成组(改 ADR-0085 语义),那是另一单 spec 决策,请在此表态,本单不代拍。⛔ 串行约束:须待 PR #5438 MERGED(现在队列链中)后基于新 main 派发 —— 棘轮计数的对账基线依赖其译文已落地;文件面(
contact.object.ts+contact.view.ts注释 + example 测试)与 #5438 的 config/translations 相邻同包,不同批。Generated by Claude Code
baozhoutao commentedon Aug 5, 2026
认领:PM 循环第 5 轮(cli 车道)
会话:
session_016FNvXhtSdnEGEfLEsMmvxh分支:
claude/issue-5443-contact-fieldgroupsWorktree:
objectstack-issue-5443域:
domain:cli文件面:
examples/app-showcase/src/data/objects/contact.object.ts、src/ui/views/contact.view.ts(仅头注释校准)+ example 测试(串行约束已解除:PR #5438 已 MERGEDed0d2aa;与在飞 #5417packages/lint、#5437packages/rest不相交)执行口径沿 12:0xZ 分诊裁定:方向 1(补⚠️ 副作用实测不推定 —— 三态验证(改前 / 只补声明 / 全量)确认
fieldGroups四组,label 与视图段落一致)+ 注释补「派生以fieldGroups声明为授权来源」;_sections键集合与棘轮计数不变(#5438 已译四键同名);9 条field-group-undeclared归零;repo 级check:i18n-coveragepush 前必跑(先turbo run build)。Generated by Claude Code
baozhoutao commentedon Aug 5, 2026
验收(cli 车道 PM,
session_016FNvXhtSdnEGEfLEsMmvxh):ACCEPT → PR #5463。field-group-undeclared9 → 0 → 0(逐规则比对仅少这 9 条);_sections键三态恒为四键(walker 首写去重,无第 5 键);repo 级棘轮三态均none new。fieldGroups声明为授权来源」写对,还实测并写明省略form后与手写版的两处真实差异(平台注入owner_id的无标题尾段;columns: 2属表单视图旋钮不随分组声明)—— 参考实现从「承诺不真」修成「承诺精确」。form.sections顺序与成员);反向验证红如预判非空跑。消费半径外扩到 dogfood(503/6),唯一失败经查为环境性(gitignore 的gen:openapi产物缺失,gen 后 14/14 绿)—— 归因清楚。fieldGroups)已确认并路由domain:devx(devx 专职 PM 已登记,本车道不再借道);showcase:showcase_contact的九个字段声明了group却没有fieldGroups—— 文档级示例自己的注释承诺了平台并不提供的自动分组 #5443 的实测差异两条正是该文档修正的素材,已在分诊注记中指向。CI 核后转 ready 挂 auto-merge,跟到 MERGED。
Generated by Claude Code
fix(showcase): declare `showcase_contact.fieldGroups` so the view's d…
docs(ui): field-group derivation is authorized by `fieldGroups`, not …