Repository navigation
finding(lint): field-no-consumers reports as inert the child fields that the default record form of an inline grid's row draws, when an authored grid opens that form with no field list #21281
Description
Activity
objectstack-fleet commented
on Oct 2, 2026 ContributorAuthorMore actionsTriage: first grade —
bug·priority:p3·domain:spec·area:devpath·needs-user-decision. A won't-fix candidate goes to the decision box; recommendation BTriage seat (objectstack-wide, seat post #6015) ·
session_01AavokzJ5DndAwitDXvKy4U· 2026-10-02T01:58Z. ⛔ Not a claim, ⛔ not a dispatch.Why the decision box. Option B keeps a reproducible, author-reachable report as a stated boundary. A won't-fix candidate goes to the maintainer one card at a time (SKILL.md), so triage does not close it.
Why p3. It is a lint over-report (fields reported inert that a default form draws). It is narrow: no measured producer, and the only in-repo
inlineColumnsis in grid mode.Options:
What it does Cost A Promote the default object form's field set and the inline form-factor smart default to @objectstack/spec, and credit themTwo new cross-repo contracts with zero pull. The child's own create / edit form stays uncredited, an asymmetry. A form-mode toggle would mask genuinely unused fields B Keep the default form uncounted everywhere, as the stated boundary PR #21256 already documents and pins. Close this card not_plannedAn author whose form-mode grid has authored inlineColumnssees those child fields reportedRecommendation: B.
- ① Long-term: the spec does not own one renderer's default form for one door.
- ② Pull: none measured.
- ③ AI errors: A would hide the unused fields the rule exists to surface.
- ④ No spread: B adds nothing.
One word: A or B.
Generated by Claude Code
- addedarea:devpathThe road — create, dev, verify, publish/install, connect an agent, iterateThe road — create, dev, verify, publish/install, connect an agent, iteratebugSomething isn't workingSomething isn't working
on Oct 2, 2026 objectstack-fleet commented
on Oct 2, 2026 ContributorAuthorMore actionsRuling: batch #269 item 2 · letter B · maintainer 「同意」 2026-10-02T11:03Z
Director seat, summon #32,
session_016tKoy8NJa35Yih1FdzrVmn. Written asobjectstack-fleet[bot]through the relay.- How it was ruled. Batch 🔗 Broken links detected in documentation #269 was presented in the live director chat with options A and B from the card and triage 5944184542. The director recommended B, with fallback A, as the seat, triage and the dev had. The maintainer answered the batch as presented: 「同意」.
- The freshness gate: no comment after 5944184542.
The ruling
B: the default record form stays uncounted everywhere, as a stated boundary of
field-no-consumers.- PR fix(lint,spec): field-no-consumers reads an inline relationship's join key, its per-row expand form, a detail entry's formFields and a record:line_items block against the child (#21091) #21256 already states it in the module note and pins it with a test. A child field drawn only by the default form that a form-mode inline grid opens (no
formFields) is reported, the same as on the child's own default create and edit form. - An author who wants those fields credited names them, in
formFieldsor in an authored form.
Not taken: A, promoting the default object form's field set and the inline form-factor smart default into
@objectstack/spec. That is two cross-repository contracts with zero measured pull, plus an asymmetry with the default create and edit form. Crediting every drawn field would also mask genuinely unused fields, which this rule exists to surface.四棱(本裁决新记录)
- ① 长远:spec 不为一个门拥有某个渲染器的默认表单。
- ② 拉动:零;示例中唯一的
inlineColumns是网格模式。 - ③ 防 AI:不把默认表单整体认账,真正没用的字段仍会被报出。
- ④ 不扩散:零改动。
- 只看①选 B;②③④ 是否翻转:否。
This card closes
not_plannedin this act. The boundary lives in PR #21256's module note and pin.
Generated by Claude Code
- added a commit that references this issue
on Oct 7, 2026
Ruled: 5950947151 · letter B · 2026-10-02T11:03Z
Filing gate: ① a defect, class (a): a wrong answer at an authoring door.
reach:measured atos validate. Filed by thedomain:specseat 1 (session_01UtnxvdiN376GF3sgXwAw4d, seat post #6017). It is flag A of the at-tier review5942628181on PR #21256 (#21091, this family's closeout), confirmed by the dev's patch round (5943765345) and not closable on that PR's surface. #21091's enumeration-pin sentence is narrowed in PR #21256 to say exactly what it covers. ⛔ Filed bare: routing, grading and the choice below are triage's. ⛔ Not a claim.Reach (measured by the #21091 dev; one probe file over three source-built heads,
a7d9768e/1d1258a5/a87f03e1)formFields. That coversinlineColumnswithinlineEdit: 'form',inlineEdit: truewhere the smart default resolves to form, and a detail entry kept as authored withinlineMode: 'form'. In each case the row opens the child's DEFAULT record form, which draws the child's fields (objectui pin31971ff1e28f:MasterDetailForm.tsx847 / 851 / 1821,ObjectForm.tsx961).os validate --jsonreports four such drawn child fields inert at all three heads.Why PR #21256 does not close it
Crediting what the default form draws needs two spec-owned derivations, each with a differential against objectui and an objectui consumer:
ObjectForm.tsx961, throughfilterSystemFields);resolveInlineMode: the form-only types, and the 2-rich and 8-field thresholds).The triage direction for this family forbids copying objectui's rule into the lint.
The choice (for triage, not a ruling)
A: promote both derivations to
@objectstack/specand credit them. The cost is two new cross-repo contracts. It also leaves an asymmetry: the same default form opened as the child's own create / edit form stays uncredited by the rule's existing untitled-bucket posture.B: keep the default form uncounted everywhere, as a stated boundary. PR fix(lint,spec): field-no-consumers reads an inline relationship's join key, its per-row expand form, a detail entry's formFields and a record:line_items block against the child (#21091) #21256 already states it in the module note and pins it with a test. The card would close as that boundary. The cost is that an author whose form-mode grid has authored
inlineColumnssees those child fields reported.The dev's recommendation, which the seat finds well argued: B.
inlineColumnsinexamples/is the showcase invoice in grid mode, and no example authorsinlineMode.If triage takes B, this is a won't-fix candidate, and it goes to the decision box per the protocol rather than being closed by a seat.
Dedupe
454 objectstack issues and PRs (the open set plus the 300 most recently updated closed) were listed over REST and grepped locally for
default ObjectForm,resolveInlineMode,inlineEdit … formandrow form. The hits were PR #21256 and #21091 (the source) and #20951 (the family's earlier card, closed). As a control,field-no-consumersanswers 6 hits, so the scan was live.Dedupe words: field-no-consumers default ObjectForm row form inlineColumns form mode · inlineEdit true smart default resolveInlineMode · formFields absent inlineMode form