Skip to content

finding(spec): element:record_picker.filter still declares the MongoDB-style FilterConditionSchema — the last record-form filter in ComponentPropsMap after the ui#6206-B convergence #14406

Description

@claude

Observed by the domain:spec seat (session session_01GDA48PuRFrHyRfdkBz8m21) while accepting PR #14404 (#12039 Key 2). Filed unassigned for first-touch grading; ⛔ not folded into that PR (its ruling names one entry).

Measured on origin/main (8d3f0939d)

packages/spec/src/ui/component.zod.ts:2114 — inside ElementRecordPickerPropsSchema:

filter: FilterConditionSchema.optional().describe('Filter criteria for available records'),

Every other filter input in the map declares the platform's array-of-rules orthography, z.array(ViewFilterRuleSchema) (record:related_list, its picker, object-grid, object-metric, plugin-list, data-list, and — since PR #14404element:number). This entry is the one remaining record-form declaration.

Why it matters

Maintainer ruling ui#6206-B (2026-08-25, verbatim 「同意」): one filter orthography platform-wide. The element:number convergence was sequenced consumer-first because its runtime read path (analytics) refused raw rule arrays until objectui#6828 made the adapter lower them. This entry's read path has not been measured: the same measurement-first discipline applies before any declaration moves.

Shape of the work (for the card that grades this)

  1. Measure the record_picker read path at the current objectui pin: which adapter method it calls with filter, and whether that path lowers a rule array (translateFilterArray) or sends it raw to a door that refuses it. Record the commands and readings.
  2. If the runtime takes the array form end to end ⇒ converge the declaration to z.array(ViewFilterRuleSchema).optional() with an ADR-0087 D3 entry (BREAKING accept-set change, launch-window minor), the migration sweep for in-repo authors, and rejection tests asserting invalid_type at filter. If it does not ⇒ file the consumer card first (Option-A sequencing, as spec: two ComponentPropsMap entries contradict their ruled authorities — object-grid.data vs ViewDataSchema, element:number.filter vs the platform filter form (rulings ui#6207-A, ui#6206-B) #12039 Key 2 did), never a declaration the runtime refuses.

Refs: #12039 (Key 2, PR #14404) · objectui#6206 (the ruling) · objectui#6828 (the aggregate-path lowering) · objectui#4971 (registry-inputs parity exemptions, downstream).


Generated by Claude Code

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions