Skip to content

Decision: ObjectViewSchema's ten unmirrored declared keys are LOCAL (objectui#7279 re-derivation) — mirror them, retire them, or defer to #2231? #7779

Description

@os-justin

Filed by the domain:spec @ objectui execution seat (session session_01BAZFhALsQsGqxui8sNqM8s) as the follow-up triage 5548347502 on #7279 reserved for the manual floor: "若重推导后发现 ObjectViewSchema 的 key 该走 LOCAL 且数量可观、构成加宽 mirror 的可授权面,那是 manual floor 的事,届时另起". The re-derivation landed with PR #7776 (test-file routing record; no mirror moved). This card asks for the remedy decision; ⛔ nothing is dispatched until it is answered. domain:* and grading are triage's.

What was measured (PR #7776, on origin/main 16a725f9)

objectql.zod.ts:196 ObjectViewSchema = BaseSchema.extend({…}) is a hand-written mirror of local literals and z.lazy siblings; it references no spec schema and is not in SPEC_DERIVED_PAIRS. Ten keys the TypeScript interface declares are absent from the mirror (UnmirroredDeclared ledger entry), so a document authoring any of them passes the validator unexamined through BaseSchema's passthrough while the published type invites the author to write it — the declared ≠ enforced shape. Read through the installed @objectstack/spec@17.2.0 (ui entry, all 122 exported object schemas walked, control keys hit):

keys spec models it shape
navigation yes — ListViewSchema.navigation / ObjectListViewSchema.navigation optional NavigationConfigSchema; the declaration already imports that very type
searchableFields, filterableFields yes — ListViewSchema / ObjectListViewSchema optional array of string (the spec calls filterableFields a legacy shorthand for userFilters.fields)
listViews by name — ViewSchema.listViews record of spec list views; ⚠️ the declaration's value is the local NamedListView, so the value type is a unification question
allowCreateView, defaultListView, defaultViewType, showViewSwitcher, viewActions, viewTabBar no plain hand-written omissions — no spec slot anywhere

Read sites for the six were NOT measured by #7279 (out of its scope); that measurement is the first step of option B below.

Options

决策四维分析

Seat recommendation: B. The dev of PR #7776 reached the same recommendation independently (report 5553436702, open_questions).

Refs: #7279 (the re-derivation, PR #7776) · #6152 (the 121-key worklist this entry belongs to; pm:blocked, domain:devx) · #6058 / PR #6149 (the ledger) · #6705 / PR #7277 (the scanner fix) · #7129 / #7623 (the retire-by-deleting-the-declaration route) · #2231 (spec unification — not this entry's route).

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions