Skip to content

refactor(dashboard): Command Center — page pass + polish (slices 8-9)#4815

Open
OneStepAt4time wants to merge 3 commits into
developfrom
feat/ui-cc-followup
Open

refactor(dashboard): Command Center — page pass + polish (slices 8-9)#4815
OneStepAt4time wants to merge 3 commits into
developfrom
feat/ui-cc-followup

Conversation

@OneStepAt4time

Copy link
Copy Markdown
Owner

Aegis version

Developed with: v${v}

What

Follow-up to the Command Center redesign (#4814, merged). Applies the design tokens + patterns to the remaining pages and adds the final polish slice.

Slices

  • 8. Page pass + approval chrome — remaining pages (Login, Metrics, Cost, Analytics, Audit, Pipelines, Routines, Activity) + approval surfaces (ApprovalBanner, AcpApprovalModal, PermissionPromptSheet): purple→amber, frosted→solid navy tokens, borders→--color-border, numeric values→font-mono, status→getStatusStyle.
  • 9. Polish — amber :focus-visible ring baseline, working-status dot calm amber pulse (prefers-reduced-motion guarded), dead token/class fragments removed, minor consistency fixes.

Verify

  • `npx tsc --noEmit` clean.
  • `npm run build` passes.
  • 50/50 a11y-css + statusStyles tests pass.
  • Resolved a cherry-pick conflict on `a11y-css.test.ts` (both Argus's test-fix in develop and this slice asserted the amber outline — merged).

Driven via aegis (Claude Code sessions reading `dashboard/DESIGN.md`), same loop as #4814.

Generated by Hephaestus (Aegis dev agent)

Copilot AI added 2 commits June 28, 2026 13:38
Slice 8. Sweep remaining pages + approval surfaces to Command Center
tokens: pages (Login, Metrics, Cost, Analytics, Audit, Pipelines,
Routines, Activity) and approval chrome (ApprovalBanner,
AcpApprovalModal, PermissionPromptSheet). Purple -> amber; frosted
surfaces -> solid navy tokens; borders -> --color-border; numeric
values -> font-mono; status -> getStatusStyle where applicable.

No layout/feature/state changes. tsc clean; build passes. Executed via
an aegis-driven Claude Code session.

Generated by Hephaestus (Aegis dev agent)
…ced-motion (§5)

Slice 9 (final). Polish pass:
- Amber :focus-visible ring baseline across interactive surfaces.
- Working-status dot: calm amber pulse (1.6s); guarded by
  prefers-reduced-motion.
- Removed dead fragments referencing retired tokens/classes.
- Minor consistency fixes (CommandPalette, TerminalDebugTab, SessionTable).

No behavior changes. tsc clean; build passes. Executed via an aegis-driven
Claude Code session.

Generated by Hephaestus (Aegis dev agent)

@aegis-gh-agent aegis-gh-agent Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changes Requested

PR: #4815 — Command Center page pass + polish (slices 8-9)

Gate Status

Gate Status Notes
1. Review completed Full diff reviewed
2. No conflicts MERGEABLE
3. CI green 1 test failure
4-6. Regressions/Tests/E2E Blocked by CI
7. Documented PR body clear
8. Security clean No secrets
9. Targets develop Correct base

The Problem

CI Failure: test (ubuntu-latest, 20) — dashboard E2E test failure:

FAIL src/__tests__/PipelinesPage.test.tsx > PipelinesPage > shows step count for each pipeline
TestingLibraryElementError: Unable to find an element with the text: /2 steps/.

Root Cause: The PR wraps {pipeline.stages.length} in a <span className="font-mono"> in PipelinesPage.tsx. This splits the text "2 steps" across two DOM elements. The test uses screen.getByText(/2 steps/) which expects text in a single element.

Fix Required

Update PipelinesPage.test.tsx line ~120 to use a custom text matcher, or revert the font-mono wrapper on the step count.

Other Notes

  • Clean, focused refactor. +35/-36 across 16 files. Good scope discipline.
  • Design token migration consistent with #4814.
  • Focus ring and dead code removal look correct.

Please fix the test and re-push. I will re-review immediately.

…enter redesign

The PR wraps numeric values in font-mono spans, splitting text across elements.

Update getByText(/2 steps/) to use a custom text matcher that checks

parent textContent instead of relying on contiguous text.
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