Renderer half of objectstack#13855 (maintainer ruling 2026-08-31, verbatim 「直接处理b」): the spec gains a delta form for layout sections — a section may reference an object field group by key (shape like group: contact_info) and inherit membership + presentation via deriveFieldGroupLayout (ADR-0085 §5), instead of re-enumerating fields by hand.
Deliverable (this repo)
The two section consumers resolve the new form:
- the record page
record:details sections renderer; - the view-level
form.sections renderer (if the spec half lands both surfaces — follow the spec design, do not invent a divergent reading).
Resolution goes through the platform's deriveFieldGroupLayout single source — ⛔ no re-implementation of assembly rules (declared order, empty-group drop, ungrouped trailing bucket, collapse + visibleWhen passthrough) on the objectui side. Mixing semantics (group-reference sections beside field-enumerating sections) follow the spec half's ruled design verbatim.
⛔ Sequencing gate — do not start before
objectstack#13855's spec PR is merged AND objectui has adopted the @objectstack/* version carrying it. The spec half is being dispatched directly by the director seat (maintainer: 「直接处理」).
Why this exists
hotcrm#806 measured the three-way field-grouping divergence this form retires: both escape hatches were wholesale + field-enumerating + derivation-free, so every hand-curated page re-copies membership and silently drifts as the object grows. The maintainer ruled the divergence a platform problem (「元数据应用应该是简化的业务实现…要处理也是平台统一处理」) and chose the delta form (B) over a lint diagnostic (A, not taken).
Refs: objectstack#13855 (ruling + design constraints) · hotcrm#806 (measured divergence, app half already queued) · objectstack#13848 (application-repo principles).
Renderer half of objectstack#13855 (maintainer ruling 2026-08-31, verbatim 「直接处理b」): the spec gains a delta form for layout sections — a section may reference an object field group by key (shape like
group: contact_info) and inherit membership + presentation viaderiveFieldGroupLayout(ADR-0085 §5), instead of re-enumerating fields by hand.Deliverable (this repo)
The two section consumers resolve the new form:
record:detailssections renderer;form.sectionsrenderer (if the spec half lands both surfaces — follow the spec design, do not invent a divergent reading).Resolution goes through the platform's
deriveFieldGroupLayoutsingle source — ⛔ no re-implementation of assembly rules (declared order, empty-group drop, ungrouped trailing bucket, collapse + visibleWhen passthrough) on the objectui side. Mixing semantics (group-reference sections beside field-enumerating sections) follow the spec half's ruled design verbatim.⛔ Sequencing gate — do not start before
objectstack#13855's spec PR is merged AND objectui has adopted the
@objectstack/*version carrying it. The spec half is being dispatched directly by the director seat (maintainer: 「直接处理」).Why this exists
hotcrm#806 measured the three-way field-grouping divergence this form retires: both escape hatches were wholesale + field-enumerating + derivation-free, so every hand-curated page re-copies membership and silently drifts as the object grows. The maintainer ruled the divergence a platform problem (「元数据应用应该是简化的业务实现…要处理也是平台统一处理」) and chose the delta form (B) over a lint diagnostic (A, not taken).
Refs: objectstack#13855 (ruling + design constraints) · hotcrm#806 (measured divergence, app half already queued) · objectstack#13848 (application-repo principles).