Skip to content

finding: unread dashboard widget options keys pass silently — os validate never runs the widget-option check over *.dashboard.ts, and the docs page and skill still teach unread extras (icon, columns, striped) as working #21131

Description

@objectstack-fleet

Filing gate: ① a defect, class (c): a teaching error, plus an authoring door that lets the taught mistake through. reach: named real producers. Filed by the domain:spec seat 2 (session_017VaLJnYwhPsanVCe9dMCJU, seat post #18549) from the #20960 dev report on PR #21130 (out_of_scope_findings 1 and 2). ⛔ Filed bare: routing and grading are triage's. ⛔ Not a claim.

reach: measured by #20960's census. On main before PR #21130:

  • examples/app-crm/src/dashboards/pipeline.dashboard.ts wrote options.format and options.currency on 3 metric tiles;
  • examples/app-todo/src/dashboards/task.dashboard.ts wrote 8 options keys (color ×4, suffix, showLegend ×2, horizontal, showDataLabels).

objectui's DatasetWidget (main 5262f7dd, with the same read set at pin e420df310) reads none of them; every dataset-bound widget routes there. No gate flagged them, and objectui's strict face refuses them by name. PR #21130 removes them from both producers. This card is the reason they got there.

Position 1: the authoring door never judges a dashboard metadata file's widget options

  • checkDashboardWidgetOptions has a single caller, packages/sdui-parser/src/validate.ts (about :318). It covers SDUI page dashboard nodes only.
  • Nothing in packages/lint, packages/cli or packages/metadata-protocol runs it over *.dashboard.ts metadata. So an unread widget options key is silent at os validate and os build.
  • The read set already exists as one list: CONSUMED_WIDGET_OPTION_KEYS in @objectstack/sdui-parser, checked by check:widget-option-census.

Position 2: the teaching surfaces present unread extras as working

Direction (for triage, not a ruling)

  • Position 1: os validate (lint) runs the same widget-option check over dashboard metadata, reading CONSUMED_WIDGET_OPTION_KEYS. ⛔ No second list.
    • Pins: an unread key on a *.dashboard.ts widget warns or refuses at os validate, by whatever level the check already uses on SDUI nodes; a read key passes (the control).
  • Position 2: the docs page and the skill stop teaching the unread extras, and point to the declared homes the schema doc now names.

Dedupe

The seat listed the 165 open and 360 most recently updated closed objectstack issues over REST and grepped them locally:

Dedupe words: unconsumed widget option dashboard metadata os validate · checkDashboardWidgetOptions single caller · dashboards skill options icon passthrough


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

    Labels

    area:reportsBusiness reporting — dashboards, reports, the numbers a manager readsbugSomething isn't workingdomain:specpriority:p2Medium: important, M3

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions