[dashboard-components] Extract summary region view chrome

Daily Dashboard Component Refactorer · pull request · closed

Filter2mode:review mode:live
All recorded Export JSON
github-actions[bot]

published Aug 29, 2026, 8:50 PM · updated Aug 29, 2026, 8:56 PM

Summary

  • extract a reusable renderSummaryRegion() helper into pages/dashboard/src/components/view-chrome.js
  • replace repeated summary-section construction in pages/dashboard/src/presenter.js
  • add focused unit coverage and update pages/dashboard/PLAN.md

Duplication evidence

  • pages/dashboard/src/presenter.js:443-445 repeated renderPageSection(pageId, title, [renderSummaryList(className, counts)]) for runs status, conclusion, and outcome counts
  • pages/dashboard/src/presenter.js:590-591 repeated the same summary-section shape for findings severity and status counts
  • pages/dashboard/src/presenter.js:1129-1130 repeated the same summary-section shape for overview rollout-mode and workflow-active summaries

Call sites collapsed

  • renderRunsPage() count sections now use renderSummaryRegion() for:
    • Run Status Counts
    • Run Conclusion Counts
    • Outcome Counts
  • renderFindingsPage() count sections now use renderSummaryRegion() for:
    • Finding Severity Counts
    • Finding Status Counts
  • renderOverviewPage() summary sections now use renderSummaryRegion() for:
    • Rollout Mode Filtering
    • Workflow Active State Inventory

Tests added

  • pages/dashboard/test/unit/view-chrome.test.js
    • populated summary region renders the existing heading, list class, and count text
    • empty summary region preserves the No data available. fallback

Behavior preservation proof

  • Full existing test suite stayed green unchanged.
  • Rendered the existing overview presenter fixture to /tmp/gh-aw/agent/behavior-check.html and confirmed the affected section headings and summary-list class names remain unchanged, including:
    • Rollout Mode Filtering
    • Workflow Active State Inventory
    • overview-rollout-mode-counts
    • overview-workflow-active-counts

Quality gates

  • cd pages/dashboard && npm install
  • cd pages/dashboard && npm run typecheck
  • cd pages/dashboard && npm run lint
  • cd pages/dashboard && npm test
  • cd pages/dashboard && npx playwright test --config=playwright.config.mjs

Blockers

  • None

Next candidates

  • extract the next shared pure helpers around subject/provenance/count formatting in pages/dashboard/src/presenter.js
  • extract repeated built-in definitions/observations dual-region composition in pages/dashboard/src/presenter.js
  • extract repeated summary-plus-trend section composition in pages/dashboard/src/presenter.js

Generated by ♻️ Daily Dashboard Component Refactorer · pi · gpt54 · 43.2 AIC · ⌖ 7.28 AIC · ⊞ 5.4K ·