Skip to content

Keep query-bound dashboard elements responsive - #13101

Merged
pelikhan merged 9 commits into
mainfrom
copilot/refactor-data-binding-queries
Sep 20, 2026
Merged

pelikhan merged 9 commits into
mainfrom
copilot/refactor-data-binding-queries

Conversation

Copilot AI commented Sep 20, 2026

Copy link
Copy Markdown
Contributor

Dashboard queries could block or replace an entire page instead of updating their bound UI elements independently. This made pending states coarse-grained and undermined lazy rendering.

Changes

  • Independent rendering

    • Keep fully query-bound pages mounted while worker queries resolve.
    • Publish results into reactive source bindings instead of replacing page DOM.
    • Preserve element-level skeletons and incremental updates.
  • Lazy page chunks

    • Retain binding metadata in page stubs.
    • Load page structure before mounting query-bound elements.
    • Cancel stale preparation after navigation.
  • Safe fallbacks

    • Retain page-level loading for mixed reactive/non-reactive views.
    • Keep section count sources page-bound.
  • Coverage

    • Add regressions for binding isolation, chunk preparation, mixed pages, section counts, and cancellation.

Copilot AI and others added 8 commits September 20, 2026 14:22
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
@github-actions

github-actions Bot commented Sep 20, 2026

Copy link
Copy Markdown
Contributor

Dashboard view assessment

74/74 selected views passed the informational assessment. The DOM budget is 6000 nodes per loaded view.
Ignored views: operations, readiness.

View Result DOM nodes Findings
github-api passed 578 None
safe-output-items passed 578 None
cost passed 578 None
firewall passed 578 None
mcps passed 578 None
security passed 578 None
organizations passed 578 None
repositories passed 578 None
repository-workflows passed 578 None
repository-detail passed 579 None
repository-insights passed 579 None
repository-workflow-inventory passed 579 None
repository-runs passed 579 None
repository-settings passed 579 None
workflow-detail passed 578 None
workflow-runs passed 578 None
workflow-run-cards passed 578 None
workflow-runtime passed 578 None
outcome-detail passed 578 None
campaigns passed 578 None
campaign-insights passed 578 None
campaign-detail passed 578 None
campaign-workflows passed 578 None
campaign-issues passed 578 None
campaign-pull-requests passed 578 None
campaign-runs passed 578 None
campaign-dispatches passed 578 None
campaign-repositories passed 578 None
campaign-reports passed 578 None
workflows passed 578 None
runtime passed 578 None
performance passed 578 None
runs passed 578 None
safe-outputs passed 578 None
detection passed 578 None
dispatches passed 578 None
experiments passed 578 None
graders passed 578 None
evals passed 578 None
usage passed 570 None
run-events passed 578 None
events passed 578 None
audit passed 578 None
transactions passed 578 None
engines-models passed 578 None
operational-value passed 578 None
findings passed 578 None
coverage passed 578 None
maintenance passed 578 None
admission passed 578 None
configuration passed 578 None
issues passed 578 None
pull-requests passed 578 None
preview passed 578 None
overview passed 539 None
notifications passed 578 None
overview-failed-runs passed 578 None
overview-blocked-work passed 578 None
overview-awaiting-review passed 578 None
overview-security-findings passed 578 None
work passed 578 None
work-tasks passed 578 None
work-roadmap passed 578 None
agents passed 578 None
insights passed 578 None
cao-evolution-dashboard passed 578 None
dependabot-dashboard passed 578 None
eslint-rules-dashboard passed 578 None
eu-cra-compliance-dashboard passed 578 None
optimization-dashboard passed 578 None
repo-assist-dashboard passed 578 None
self-care-dashboard passed 578 None
software-development-practices-dashboard passed 578 None
uk-ai-advisory-dashboard passed 578 None
View the workflow run.

@github-actions

github-actions Bot commented Sep 20, 2026

Copy link
Copy Markdown
Contributor

Mobile dashboard analysis

Device Browser Profile Memory limit Network down/up, latency DOM elements Load (ms) Peak process PSS Peak JS heap Retained JS heap Source payload Visible target size Visible reflow Zoom Visible accessible names
iPhone 15 webkit baseline default default 637 45 4354.2 MiB n/a n/a 1375.9 MiB Pass (24px width min, 24px height min) Pass Pass Pass (0 unnamed)

View detailed JSON, accessibility trees, traces, and screenshots in the workflow artifacts.

@pelikhan

Copy link
Copy Markdown
Collaborator

@copilot resolve the merge conflicts on this branch.

…-binding-queries

# Conflicts:
#	dashboard/site/src/presenter.js

Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>

Copilot AI commented Sep 20, 2026

Copy link
Copy Markdown
Contributor Author

@copilot resolve the merge conflicts on this branch.

Resolved the merge conflict with main in merge commit 02859bad. The resolution preserves query-bound source updates and the new render-performance instrumentation. Dashboard unit tests, lint, typecheck, build, focused Playwright tests, and CodeQL all pass.

@pelikhan
pelikhan merged commit 775ea12 into main Sep 20, 2026
19 checks passed
@pelikhan
pelikhan deleted the copilot/refactor-data-binding-queries branch September 20, 2026 16:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants