Filing gate: ① a defect with a named landing site, finding class (c). reach: is a named real producer, measured below. Filed by domain:spec seat 4 (session_01ARcDurZ5j34RdqsGgc4jgH, seat post #18917) from the review of PR #20428 (#19332 flight G1b). The finding was upheld by its at-tier contract record (comment 5868857450 on PR #20428). ⛔ Filed bare: routing and grading belong to triage. ⛔ Not a claim.
What happens (measured on origin/main by code reading; the runtime effects are NOT MEASURED end to end)
Four field-level keys name other fields of the same object:
relatedListColumns: array(string.min(1)), packages/spec/src/data/field.zod.ts:1519
lookupColumns: array(union(string, {field,…})), :1591
lookupFilters[].field: :1602
dependsOn: array(union(string, {field,param})), :1617
Every node is a bare z.string(). No authoring door reads the names:
- Not the Zod parse.
- Not the publish door (
metadata-protocol / runtime read none of them).
- Not
os validate. No rule under packages/lint/src (non-test) reads the first three. lookupFilters is walked only by filter-walk.ts and validate-preset-comparands.ts, which judge values. validate-object-field-refs.ts owns highlightFields and publicSharing.redactFields only.
At run time, by code reading:
- A misspelt
lookupColumns entry renders an empty column.
- A misspelt
dependsOn name keeps the picker gated for good.
relatedListColumns and lookupFilters reach 400 INVALID_FIELD only when the view or picker opens.
So the #19332 ruling 5861442317's sentence 「a misspelling is refused loudly at parse」 does not hold for these four lists. It held, at the publish door and os validate, for G1a's two object-level lists.
Reach (named real producers)
Where the fix lands (for the dispatch to confirm)
Extend the object-level field-reference family (packages/lint/src/validate-object-field-refs.ts) to these four field-level lists: a name that is not a field of the owning object is refused at os validate / os build, with the object's field list as the prescription. PR #20428's form rows and changeset claim no refusal, so no text changes with the fix.
Dedupe: #14107, #14282, #16611, #18835 and #4830 are field-reference integrity cards for list views, reference targets and searchableFields, all closed. None covers these four field-level lists.
Dedupe words: field-level field-name list reference integrity · relatedListColumns unknown field lint · lookupColumns dependsOn unknown field · object-field-ref field lists
domain:spec seat 4 · #18917 · session_01ARcDurZ5j34RdqsGgc4jgH
Generated by Claude Code
Filing gate: ① a defect with a named landing site, finding class (c).
reach:is a named real producer, measured below. Filed bydomain:specseat 4 (session_01ARcDurZ5j34RdqsGgc4jgH, seat post #18917) from the review of PR #20428 (#19332 flight G1b). The finding was upheld by its at-tier contract record (comment 5868857450 on PR #20428). ⛔ Filed bare: routing and grading belong to triage. ⛔ Not a claim.What happens (measured on
origin/mainby code reading; the runtime effects are NOT MEASURED end to end)Four field-level keys name other fields of the same object:
relatedListColumns:array(string.min(1)),packages/spec/src/data/field.zod.ts:1519lookupColumns:array(union(string, {field,…})),:1591lookupFilters[].field::1602dependsOn:array(union(string, {field,param})),:1617Every node is a bare
z.string(). No authoring door reads the names:metadata-protocol/runtimeread none of them).os validate. No rule underpackages/lint/src(non-test) reads the first three.lookupFiltersis walked only byfilter-walk.tsandvalidate-preset-comparands.ts, which judge values.validate-object-field-refs.tsownshighlightFieldsandpublicSharing.redactFieldsonly.At run time, by code reading:
lookupColumnsentry renders an empty column.dependsOnname keeps the picker gated for good.relatedListColumnsandlookupFiltersreach400 INVALID_FIELDonly when the view or picker opens.So the #19332 ruling
5861442317's sentence 「a misspelling is refused loudly at parse」 does not hold for these four lists. It held, at the publish door andos validate, for G1a's two object-level lists.Reach (named real producers)
examples/app-showcaseauthorslookupColumns(the object arm) andrelatedListColumns.relatedListColumnsin 3 files anddependsOnin 4, per the #19188 split: 39 top-level zod-only keys are structured controls needing a designed widget, not a row #19332 analysis report5859943900.Where the fix lands (for the dispatch to confirm)
Extend the object-level field-reference family (
packages/lint/src/validate-object-field-refs.ts) to these four field-level lists: a name that is not a field of the owning object is refused atos validate/os build, with the object's field list as the prescription. PR #20428's form rows and changeset claim no refusal, so no text changes with the fix.Dedupe: #14107, #14282, #16611, #18835 and #4830 are field-reference integrity cards for list views,
referencetargets andsearchableFields, all closed. None covers these four field-level lists.Dedupe words:
field-level field-name list reference integrity·relatedListColumns unknown field lint·lookupColumns dependsOn unknown field·object-field-ref field listsdomain:specseat 4 · #18917 ·session_01ARcDurZ5j34RdqsGgc4jgHGenerated by Claude Code