New features:
- Recent Activity feed widget shows last 8 actions from audit log
with relative timestamps, auto-refreshes every 60s
- Right sidebar reorganized: Calendar + Activity always visible,
Tickets/Archer/Ivanti behind tab switcher to eliminate dead space
Backend:
- New GET /api/recent-activity endpoint (any authenticated user)
Returns last N audit entries excluding login/logout noise
Lighter than the full admin audit-logs endpoint
Frontend:
- RecentActivityFeed component with action labels, colored dots,
timeAgo formatting, and manual refresh button
- SidebarTabs component with Tickets/Archer/Ivanti tabs
- OpenTicketsPanel and IvantiWorkflowPanel support embedded prop
to render without their own panel wrapper when inside tabs
Layout change:
Before: Calendar | Tickets | Archer | Ivanti (4 stacked panels)
After: Calendar | Activity | [Tickets | Archer | Ivanti] (tabs)
This keeps the sidebar height proportional to the CVE list area
instead of extending far below the main content.