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
Filed unassigned by the domain:ui execution seat while implementing #6924 (PR #7024). Out of that card's fence and deliberately not fixed on its branch: #6924's enumeration instrument is the spelling options?: readonly string[], and these sites do not carry it.
What was measured
Instrument: grep -rnE 'as (unknown as )?\{ ?options: readonly string\[\] ?\}' over packages/, examples/, apps/ at origin/main@501041f97. 9 sites, 7 packages — every one a test file:
This family casts with a non-optionaloptions: and spreads it directly — [...(FieldType as { options: readonly string[] }).options]. A failed cast spreads undefined, which throws. It fails LOUDLY.
So #6924's ruling ("15 is an enumeration, not examples — cover the whole set") is satisfied without these: they are not members of the set that ruling names, and converting them on that branch would have widened a scoped card by a third. Recorded here instead.
Why it is still worth a round
The hazard #5872 catalogues is not only the silent-empty verdict; it is that a Zod internals rework moves one spelling and not the others, and nobody diffing one copy can see that the rest did not move. That applies here in full: 9 more hand-written reaches into Zod internals, in 7 packages, none of which imports the shared reader.
It is also now a cheap round, which it was not before: @object-ui/test-support gained enumOptions(node) in PR #7024 — a reader that takes exactly the node these sites hold. Three of these files (expandableFamily.identity-*) look textually identical across four packages, which is #5872 class (1)'s sharpest shape all over again.
Not fixed here, and what a round would need
No disposition proposed. Two questions a round should answer before writing:
Also uncatalogued and adjacent, not counted above: packages/types/src/__tests__/spec-subschema-parity.test.ts:161 casts to { unwrap(): { def: { options: unknown[] } } } — a third spelling again, and a #5872 class (2)/(4) shape rather than this one.
Related: #6924 (the quiet-permissive half, converged in PR #7024), #5872 (the four-class taxonomy), #4434, #3809.
Filed unassigned by the
domain:uiexecution seat while implementing #6924 (PR #7024). Out of that card's fence and deliberately not fixed on its branch: #6924's enumeration instrument is the spellingoptions?: readonly string[], and these sites do not carry it.What was measured
Instrument:
grep -rnE 'as (unknown as )?\{ ?options: readonly string\[\] ?\}'overpackages/,examples/,apps/atorigin/main@501041f97. 9 sites, 7 packages — every one a test file:packages/app-shell/src/utils/expandableFamily.identity-5874.test.tspackages/app-shell/src/views/richtextSurfaceParity.test.tsxpackages/plugin-detail/src/__tests__/expandableFamily.identity-5874.test.tsxpackages/plugin-detail/src/__tests__/autoLayout.wideSpelling.test.tspackages/plugin-form/src/__tests__/autoLayout.wideSpelling.test.tspackages/plugin-kanban/src/__tests__/expandableFamily.identity-5874.test.tsxpackages/plugin-dashboard/src/__tests__/expandableFamily.identity-5692.test.tspackages/plugin-grid/src/__tests__/spec-symbol-batch7.test.tspackages/types/src/__tests__/spec-subschema-parity.test.ts{ options: string[] })Why it is a DIFFERENT question from #6924, not a missed site
Worth stating precisely, because the resemblance invites folding it in and the failure mode differs:
{ options?: readonly string[] }and read.optionsstraight off a top-level enum node, with the same quiet-permissive failure #5872 catalogues #6924's family casts withoptions?:and then guards withArray.isArray(raw) ? [...raw] : []. A failed cast yieldsundefined, the guard swallows it, and the vocabulary goes quietly empty. That is the hazard that card exists to end.options:and spreads it directly —[...(FieldType as { options: readonly string[] }).options]. A failed cast spreadsundefined, which throws. It fails LOUDLY.So #6924's ruling ("15 is an enumeration, not examples — cover the whole set") is satisfied without these: they are not members of the set that ruling names, and converting them on that branch would have widened a scoped card by a third. Recorded here instead.
Why it is still worth a round
The hazard #5872 catalogues is not only the silent-empty verdict; it is that a Zod internals rework moves one spelling and not the others, and nobody diffing one copy can see that the rest did not move. That applies here in full: 9 more hand-written reaches into Zod internals, in 7 packages, none of which imports the shared reader.
It is also now a cheap round, which it was not before:
@object-ui/test-supportgainedenumOptions(node)in PR #7024 — a reader that takes exactly the node these sites hold. Three of these files (expandableFamily.identity-*) look textually identical across four packages, which is #5872 class (1)'s sharpest shape all over again.Not fixed here, and what a round would need
No disposition proposed. Two questions a round should answer before writing:
[]would need each site to keep its own non-vacuity assertion, exactly astypes/spec-derived-unions.test.tsandexamples/schema-catalog/.../component-fixture-declared-keys.test.tsdo after finding: a fifth, larger Zod-internals reader family — 15 files cast to{ options?: readonly string[] }and read.optionsstraight off a top-level enum node, with the same quiet-permissive failure #5872 catalogues #6924 (both wrapenumOptionsand keep their ownthrow). Converting without that would trade a loud failure for a quiet one — a regression, not a convergence.mainwas re-rooted on 2026-08-30, sogit logcannot date these sites, and counts on this repo's reader families have gone stale repeatedly ([finding] The tombstone judge converged, but the Zod-internals READERS around it are still hand-copied in ~10 test files — four of them verbatim #5872's own body cost a full wasted dispatch for that reason). Measure the tree you have.Also uncatalogued and adjacent, not counted above:
packages/types/src/__tests__/spec-subschema-parity.test.ts:161casts to{ unwrap(): { def: { options: unknown[] } } }— a third spelling again, and a #5872 class (2)/(4) shape rather than this one.Related: #6924 (the quiet-permissive half, converged in PR #7024), #5872 (the four-class taxonomy), #4434, #3809.