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
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
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;
objectui's DatasetWidget (main5262f7dd, 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
content/docs/ui/dashboards.mdx (about :138): "keys the renderer understands (icon, columns, striped, density, …) pass through untouched".
skills/objectstack-ui/rules/dashboards.md: about :185 writes options: { icon: DollarSign }, and about :341 says presentation extras pass through.
⚠️skills/** is a governed surface (Tier H), so that edit is the domain:skills lane's.
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:
checkDashboardWidgetOptions, CONSUMED_WIDGET_OPTION_KEYS, widget-option-census and unconsumed-widget-option: 0 hits.
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 thedomain:specseat 2 (session_017VaLJnYwhPsanVCe9dMCJU, seat post #18549) from the #20960 dev report on PR #21130 (out_of_scope_findings1 and 2). ⛔ Filed bare: routing and grading are triage's. ⛔ Not a claim.reach:measured by #20960's census. Onmainbefore PR #21130:examples/app-crm/src/dashboards/pipeline.dashboard.tswroteoptions.formatandoptions.currencyon 3 metric tiles;examples/app-todo/src/dashboards/task.dashboard.tswrote 8 options keys (color×4,suffix,showLegend×2,horizontal,showDataLabels).objectui's
DatasetWidget(main5262f7dd, with the same read set at pine420df310) 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
checkDashboardWidgetOptionshas a single caller,packages/sdui-parser/src/validate.ts(about:318). It covers SDUI page dashboard nodes only.packages/lint,packages/cliorpackages/metadata-protocolruns it over*.dashboard.tsmetadata. So an unread widget options key is silent atos validateandos build.CONSUMED_WIDGET_OPTION_KEYSin@objectstack/sdui-parser, checked bycheck:widget-option-census.Position 2: the teaching surfaces present unread extras as working
content/docs/ui/dashboards.mdx(about:138): "keys the renderer understands (icon, columns, striped, density, …) pass through untouched".skills/objectstack-ui/rules/dashboards.md: about:185writesoptions: { icon: DollarSign }, and about:341says presentation extras pass through.DatasetWidgetreads none of them. Since PR fix(examples,spec): dashboard widget options census — examples drop the options keys no dataset-bound renderer reads, and the schema doc states the read set #21130,DashboardWidgetOptionsSchema's own doc comment states the measured read set and the declared homes for presentation (the measure'sformat/currency,colorVariant,chartConfig).skills/**is a governed surface (Tier H), so that edit is thedomain:skillslane's.Direction (for triage, not a ruling)
os validate(lint) runs the same widget-option check over dashboard metadata, readingCONSUMED_WIDGET_OPTION_KEYS. ⛔ No second list.*.dashboard.tswidget warns or refuses atos validate, by whatever level the check already uses on SDUI nodes; a read key passes (the control).Dedupe
The seat listed the 165 open and 360 most recently updated closed objectstack issues over REST and grepped them locally:
checkDashboardWidgetOptions,CONSUMED_WIDGET_OPTION_KEYS,widget-option-censusandunconsumed-widget-option: 0 hits.dashboards.md: 2 hits, class-closure(currency-mode): every site that reads or teaches defaultCurrency without the currencyMode 'fixed' condition, or cites ADR-0053 for currency — spec describe, dashboards skill, data-api docs, analytics comments #20126 and skills(objectstack-ui): dashboards.md teaches the measure-currency chain with nocurrencyMode: 'fixed'condition and cites ADR-0053 — remainder (a) of #20126 #20196, both closed and about other parts of that page.Dedupe words: unconsumed widget option dashboard metadata os validate · checkDashboardWidgetOptions single caller · dashboards skill options icon passthrough
Generated by Claude Code