You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
feat(frontend): action center on the redesign layout #902
Title, subtitle with the count of pending and overdue actions.
Filter pills by kind with counts (Tout, Approbations, Vulnérabilités, Risques et plans, Conformité, Tiers).
Groups "En retard", "Cette semaine", "Plus tard" with counts.
Each row: kind icon, title, kind and context line, due pill, primary verb button, and a check to mark done with undo.
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.
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).
Activity
alex-dembele commentedon Oct 8, 2026
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: categoriesvulnerability_sla/vendor_followup/mitigation_reviewandmetaininternal/application/actioncenter, queries inrepository/actioncenter_repository.go, admin sees all categories, open incidents includein_progress;vulnerabilities.sla_due_at(migration 0070, policy indomain/vulnerability.go). OpenAPI + generated types updated.Verified —
go test ./...all ok ·npx tsc -b --noEmitclean ·npx vitest run1008/1008 · lint 96/96 · live on Postgres: migration 0070 backfill, tick → vulnerabilityremediatedafter 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).
Merge pull request #927 from opendefender/feat/902-action-center