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
Filing-gate category: ① — named landing points: the un-cast reads that objectui#8347's premise P1 enumerated, ordered by the objectui#7927 ruling's step 1. A derived child of in-flight objectui#8347, filed with the parent's domain:spec and priority:p2.
Reader: the domain:spec @ objectui seat (objectui#10217) dispatches it, and an os-dev executes it.
Parent: objectui#8347. That card stays pm:blocked until this card and its siblings land.
Why this card exists
The objectui#7927 ruling (5565351677, director seat, decision batch #68; the maintainer's 「同意」) orders the removal:
Step 1, verbatim: 「Census first, delete never before: every read that rides the passthrough is enumerated and either declared on its schema or retired」.
Unit: objectui#8327's sequencing ruling 5587717012 (Q2 = A) sets one card per reader package.
objectui#8347's P1 measured the un-cast population that the cast-aware objectui#8327 census could not see (report 5926022178):
Totals: 303 errors across 17 packages once BaseSchema's [key: string]: any is deleted alone.
Control: 0 errors at the same base with the signature present.
This package:@object-ui/components carries 12 errors in shipped source and 94 in tests.
The population (origin/main5262f7dd3; files and keys, no line addresses)
Shipped source: 12 un-cast reads, 8 renderers, 9 keys. None of these keys was adjudicated by objectui#8648. That card covered four keys read off UIActionSchema, and none of them is here.
renderer (node type)
keys read off schema, undeclared on its type
renderers/data-display/list.tsx (list)
title ×2
renderers/feedback/loading.tsx (loading)
text ×2
renderers/form/input-otp.tsx (input-otp)
maxLength (TS2551: the type declares a near spelling)
Most are object literals typed BaseSchema that author a key the concrete node type declares, so the fix is a retype to the concrete schema.
The keys that recur most: properties ×14, content ×13, actions ×8, location ×8, required ×7, options ×6, actionType ×5, maxVisible ×4, and props ×4.
Deliberately misspelled or bogus probe keys (the "an UNKNOWN key still compiles" ceiling pins) are NOT this card's. They flip to @ts-expect-error in objectui#8347's removal commit.
Re-derive it: apply objectui#8347's P1 mutation in a worktree (delete the six-line docblock and signature on BaseSchema only), rebuild @object-ui/types, and run this package's type-check programs un-chained (tsc --noEmit, then tsc -p tsconfig.test.json). Capture the exit codes before any pipe.
What each key owes (the per-key rule; measure each key, ⛔ none is decided here)
The objectui#8648–#8655 family's rule, with 协议为基准:
The installed @objectstack/spec row for that node type declares the key. Declare it on the TypeScript type by reference to the spec.
The zod mirror is objectui#6152's face. If the declaration opens a zod-mirror-parityUnmirroredDeclared row, the PR books it there; it does not widen the mirror on its own.
The spec does not declare it, and a real producer authors it (catalog, examples, docs, a server-shipped document). That is a contract fork: report it with the four-axis frame. ⛔ Never declare against the spec.
The spec does not declare it, and nothing authors it. Retire the read, and the producer-side remedy follows AGENTS.md #0.1.
It is a host-supplied value, not authored metadata. Move it to a typed React prop or the host channel, as objectui#9342 did for onCardMove. ⛔ Never declare it on the authoring face.
An existing ruling says never-declare (objectui#5091, objectui#5097). Keep a deliberate, documented cast.
maxLength on input-otp is the near-miss class (TS2551): measure whether the declared spelling or the read spelling is the spec's before choosing which one moves.
Acceptance (executable)
With the signature present: the package's type-check and tests are green, and main stays green. Every edit here compiles WITH the signature, so this card lands independently.
With objectui#8347's P1 mutation applied locally: this package's programs report 0 errors, except the ceiling-pin probe keys, which the PR body lists by file as objectui#8347's flips.
Siblings and family: objectui#8648 (closed, UIActionSchema's four keys), objectui#11070 (open, strict-face refusals; it shares no key with this card), and objectui#8347 (the parent).
Filing-gate category: ① — named landing points: the un-cast reads that objectui#8347's premise P1 enumerated, ordered by the objectui#7927 ruling's step 1. A derived child of in-flight objectui#8347, filed with the parent's
domain:specandpriority:p2.Reader: the
domain:spec @ objectuiseat (objectui#10217) dispatches it, and an os-dev executes it.Parent: objectui#8347. That card stays
pm:blockeduntil this card and its siblings land.Why this card exists
The objectui#7927 ruling (
5565351677, director seat, decision batch #68; the maintainer's 「同意」) orders the removal:5587717012(Q2 = A) sets one card per reader package.objectui#8347's P1 measured the un-cast population that the cast-aware objectui#8327 census could not see (report
5926022178):BaseSchema's[key: string]: anyis deleted alone.@object-ui/componentscarries 12 errors in shipped source and 94 in tests.The population (
origin/main5262f7dd3; files and keys, no line addresses)Shipped source: 12 un-cast reads, 8 renderers, 9 keys. None of these keys was adjudicated by objectui#8648. That card covered four keys read off
UIActionSchema, and none of them is here.schema, undeclared on its typerenderers/data-display/list.tsx(list)title×2renderers/feedback/loading.tsx(loading)text×2renderers/form/input-otp.tsx(input-otp)maxLength(TS2551: the type declares a near spelling)renderers/navigation/sidebar.tsx(sidebar)active(the read is typed atBaseSchemaitself)renderers/overlay/drawer.tsx(drawer)shouldScaleBackground,footer,showCloserenderers/overlay/dropdown-menu.tsx,popover.tsx,sheet.tsxmodal(one each)Tests: 94 errors in 20 files.
BaseSchemathat author a key the concrete node type declares, so the fix is a retype to the concrete schema.properties×14,content×13,actions×8,location×8,required×7,options×6,actionType×5,maxVisible×4, andprops×4.@ts-expect-errorin objectui#8347's removal commit.Re-derive it: apply objectui#8347's P1 mutation in a worktree (delete the six-line docblock and signature on
BaseSchemaonly), rebuild@object-ui/types, and run this package's type-check programs un-chained (tsc --noEmit, thentsc -p tsconfig.test.json). Capture the exit codes before any pipe.What each key owes (the per-key rule; measure each key, ⛔ none is decided here)
The objectui#8648–#8655 family's rule, with
协议为基准:@objectstack/specrow for that node type declares the key. Declare it on the TypeScript type by reference to the spec.zod-mirror-parityUnmirroredDeclaredrow, the PR books it there; it does not widen the mirror on its own.onCardMove. ⛔ Never declare it on the authoring face.maxLengthoninput-otpis the near-miss class (TS2551): measure whether the declared spelling or the read spelling is the spec's before choosing which one moves.Acceptance (executable)
mainstays green. Every edit here compiles WITH the signature, so this card lands independently.Out of scope ⛔
dataSourcereaching components through SchemaRenderer's prop spread (objectui#11070), and the zod strict face (objectui#8345, objectui#11070).Dedupe
Grepped locally over every objectui issue updated since 2026-09-01: 2,209 issues, open and closed, with bodies, read 2026-10-01T06:35Z.
showClose|shouldScaleBackground: 1 hit, objectui#8318 (closed; about@defaultJSDoc on 16 de-defaulted keys, a different defect).`modal`withpopover|sheet|dropdown: 3 hits, objectui#9299, finding(plugin-gantt,plugin-kanban,plugin-calendar): three of the four overlaynavigation.modevalues collapse into the drawer —modal/split/popoverall render the same Sheet, whileObjectGrid/ObjectTreehonour them through the sharedNavigationOverlay#9113 and finding(plugin-view): with a record surface ofpageand noonNavigate,ObjectView's New, row click and Edit set state that no branch renders; a derivedpage(mobile, or a field-heavy object) reaches this on the registered renderer #11015 (all closed; about overlaynavigation.mode, a different key).input-otp|InputOTPwithmaxLength: 0 hits.UIActionSchema's four keys), objectui#11070 (open, strict-face refusals; it shares no key with this card), and objectui#8347 (the parent).Dedupe words: BaseSchema index signature removal components un-cast read · drawer showClose shouldScaleBackground undeclared · overlay modal undeclared popover sheet dropdown-menu · input-otp maxLength near spelling