Skip to content

feat(frontend): action center on the redesign layout #902

Closed

Description

@alex-dembele

Problem

The action center is where a user clears their queue. The design groups actions by urgency with one clear verb per row.

Design: https://claude.ai/artifact/HLqrbeYqvv4a6RVnBz9Vei (screen "action-center"). Parent: #899. The rules in the epic apply.

Acceptance criteria

  1. Title, subtitle with the count of pending and overdue actions.
  2. Filter pills by kind with counts (Tout, Approbations, Vulnérabilités, Risques et plans, Conformité, Tiers).
  3. Groups "En retard", "Cette semaine", "Plus tard" with counts.
  4. Each row: kind icon, title, kind and context line, due pill, primary verb button, and a check to mark done with undo.
  5. The verb opens the right place (drawer, page with focus) and works for every kind the backend returns.

Definition of done

  • The screen matches the design at 1440×900 in dark and light, checked side by side in a real browser; the comparison and any deliberate difference are written on this issue.
  • Loading skeleton, error with retry, and empty state exist for every block.
  • FR and EN strings, no hard-coded copy.
  • npx tsc -b --noEmit, npx vitest run on the touched features, and npx eslint on the touched files pass.
  • Backend changes, if any, come with TestXxx_Success, TestXxx_NotFound, TestXxx_Unauthorized, filter by tenant_id, and go test ./... passes.
  • PR opened with Closes #<this issue>; parent epic epic(frontend): rebuild every console screen on the October 2026 redesign #899.

Activity

  1. added
    type:featureNew user-facing capability
    status:readyMeets the ready definition
    tier:4-uxUX: polish on top of a working engine
    and removed
    status:readyMeets the ready definition
    on Oct 8, 2026
  2. alex-dembele commented on Oct 8, 2026

    @alex-dembele
    MemberAuthor

    action center redesign — 2026-10-08

    Done — PR #927 on feat/902-action-center, stacked on #926. Frontend: features/action-center/ActionCenterPage.tsx, ActionItemRow.tsx, actionKinds.ts (filters, icons, real completion), actionFacts.ts, DuePill.tsx. Backend: categories vulnerability_sla / vendor_followup / mitigation_review and meta in internal/application/actioncenter, queries in repository/actioncenter_repository.go, admin sees all categories, open incidents include in_progress; vulnerabilities.sla_due_at (migration 0070, policy in domain/vulnerability.go). OpenAPI + generated types updated.
    Verified — go test ./... all ok · npx tsc -b --noEmit clean · npx vitest run 1008/1008 · lint 96/96 · live on Postgres: migration 0070 backfill, tick → vulnerability remediated after the undo window, dark/light, 414 px, axe 0 serious.
    Criteria — 1 ✅ · 2 ✅ (plus an Incidents chip when incidents exist) · 3 ✅ (plus "Sans échéance") · 4 ✅ (tick only where the work can really be finished, owner decision) · 5 ✅
    Next — merge #925 → #926 → #927 in order. Then #903 executive view.
    Blocked on — nothing. Follow-ups: control evaluations as actions (#917), SLA windows in Settings (#924), date-only mitigation due date silently dropped (#914).

  3. added a commit that references this issue on Oct 9, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions