Symptom
This is a showcase authoring gap, not a platform defect. The run classified it as such deliberately. Do not go hunting for a bug in the global-filter engine — the engine does exactly what the metadata tells it to. The fix is in the example's dashboard authoring.
On the showcase ops dashboard, picking any value in the "Task Status" global filter zeroes the project-bound tiles (Active Projects, At-Risk (Red), Total Budget, Projects by Health) as well as filtering the task widgets it was meant for.
examples/app-showcase/src/ui/dashboards/ops-dashboard.dashboard.ts declares one dashboard-scoped global filter:
globalFilters: [
{ field: 'status', label: 'Task Status', type: 'select',
options: [ backlog, todo, in_progress, in_review, done ],
scope: 'dashboard' },
]
Those five options are the task status vocabulary. But the filter is declared by bare field name at scope: 'dashboard', and the widgets bound to the project dataset (kpi_active_projects, kpi_at_risk, kpi_total_budget, col_health) declare no filterBindings, so the same status filter is also applied to showcase_project.status — whose value domain is a different set entirely (active / health-style values). No project row matches in_review, so those tiles read 0.
Expected authoring: either give the project-bound widgets filterBindings that map (or opt out of) the dashboard filter, or scope the filter to the task widgets — the same per-widget field-mapping mechanism proven exact elsewhere in this run (region on invoice widgets vs sales_region on account widgets, correct on the wire and in the echoed SQL).
Still present on origin/main as of 2026-08-11.
Root cause
Authoring, in the example app: a dashboard-scoped global filter declared by bare field name (status) fans out to every widget that has not opted out via filterBindings, and the showcase's project widgets never opted out. The platform behaviour is the documented one — a widget without filterBindings inherits the dashboard filter on its own object's like-named field.
File: examples/app-showcase/src/ui/dashboards/ops-dashboard.dashboard.ts (the globalFilters block and the four projectDs widgets).
Reproduction
- Boot showcase and open the ops dashboard.
- Note the baseline values of Active Projects / At-Risk (Red) / Total Budget / Projects by Health.
- Set the "Task Status" global filter to any option (e.g.
in_review). - Observe the task widgets filter correctly while all four project-bound tiles drop to 0 — the filter reached
showcase_project.status, whose domain does not contain task statuses.
Source
Extracted from the QA run #7515 (framework a86db17).
Symptom
On the showcase ops dashboard, picking any value in the "Task Status" global filter zeroes the project-bound tiles (Active Projects, At-Risk (Red), Total Budget, Projects by Health) as well as filtering the task widgets it was meant for.
examples/app-showcase/src/ui/dashboards/ops-dashboard.dashboard.tsdeclares one dashboard-scoped global filter:Those five options are the task status vocabulary. But the filter is declared by bare
fieldname atscope: 'dashboard', and the widgets bound to the project dataset (kpi_active_projects,kpi_at_risk,kpi_total_budget,col_health) declare nofilterBindings, so the samestatusfilter is also applied toshowcase_project.status— whose value domain is a different set entirely (active/ health-style values). No project row matchesin_review, so those tiles read 0.Expected authoring: either give the project-bound widgets
filterBindingsthat map (or opt out of) the dashboard filter, or scope the filter to the task widgets — the same per-widget field-mapping mechanism proven exact elsewhere in this run (regionon invoice widgets vssales_regionon account widgets, correct on the wire and in the echoed SQL).Still present on
origin/mainas of 2026-08-11.Root cause
Authoring, in the example app: a dashboard-scoped global filter declared by bare field name (
status) fans out to every widget that has not opted out viafilterBindings, and the showcase's project widgets never opted out. The platform behaviour is the documented one — a widget withoutfilterBindingsinherits the dashboard filter on its own object's like-named field.File:
examples/app-showcase/src/ui/dashboards/ops-dashboard.dashboard.ts(theglobalFiltersblock and the fourprojectDswidgets).Reproduction
in_review).showcase_project.status, whose domain does not contain task statuses.Source
Extracted from the QA run #7515 (framework a86db17).