[dashboard-components] Extract summary list view chrome helper

Daily Dashboard Component Refactorer · pull request · closed

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

published Aug 30, 2026, 12:10 AM · updated Aug 30, 2026, 12:22 AM

Summary

  • extract a reusable renderSummaryList(...) helper into pages/dashboard/src/components/view-chrome.js
  • replace the presenter-local summary list builder with the shared helper at every identified call site
  • update PLAN.md component inventory and run log for the new extraction queue state

Duplication evidence

  • pages/dashboard/src/presenter.js:389, 399, 409, 561, 571, 623, 1127, 1137, 1148, 1160, 1171, 1181, and 1191 all built the same count-list <ul> shape through the presenter-local renderSummaryList(...) helper.
  • That helper only wrapped shared summary-list DOM generation, making src/components/view-chrome.js the better reusable home for future built-in and custom page sections.

Call sites collapsed

  • runs: status, conclusion, and outcome count summaries
  • findings: severity and status summaries
  • usage: totals summary
  • overview: rollout-mode filtering, workflow active-state inventory, run status summary, run conclusion summary, repository rankings, workflow rankings, and largest AIC spenders

Tests added

  • expanded pages/dashboard/test/unit/view-chrome.test.js to cover renderSummaryList(...) directly for populated and empty inputs while keeping the existing renderSummaryRegion(...) assertions

Behavior preservation

  • renderSummaryRegion(...) now composes renderSummaryList(...), preserving the same DOM text, class names, and empty fallback message
  • captured the focused refactor diff at /tmp/gh-aw/agent/summary-list-refactor.diff showing the presenter change is limited to removing the local helper and importing the shared one
  • full test and browser suites remained green after the extraction

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 repeated overview summary-plus-trend region composition in pages/dashboard/src/presenter.js
  • extract repeated definitions/observations dual-region composition for graders and evals
  • extract shared pure helpers for observation rollups such as subjects, score values, and model summaries

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