feat(platform): transform governance dashboard into full SaaS operator control center#1
Open
feat(platform): transform governance dashboard into full SaaS operator control center#1
Conversation
…r control center Implements Phase 1 of the keon control center plan across 5 parallel merge waves. Navigation & Shell: - Expand sidebar from 9 → 12 nav items with correct Lucide icons - Rebuild command palette with 12 nav commands + 2 quick actions (Declare Incident, Search Tenants) - Improve active state detection with startsWith for nested routes Fleet Command Surface (homepage): - SloBurnBanner: live SLO burn rate alert strip - ActiveIncidentsPanel: open incident queue with severity/status badges - AtRiskCollections: failed invoice summary with at-risk MRR - CriticalAlertsFeed: critical/warning alert stream Tenant Workspace (/tenants/[id]): - 7-tab workspace: overview, subscription, usage, support, security, entitlements, audit - Quota utilization bars, churn risk badge, subscription panel, tenant audit trail Support Operations (/support): - Ticket queue with priority/status/assignee - Churn risk table with health score trends and signals Finance (/finance, FINANCE-gated): - MRR/ARR billing summary with subscription counts - Collections table with dunning state and at-risk MRR - Azure spend BarChart by service vs. budget Infrastructure (/infrastructure): - Azure resource inventory table (type, region, status, cost) - Health status grid by resource group Communications (/communications): - Compose form with recipient selector, channel picker, preview - Message history table and template picker Rollouts (/rollouts): - Active rollouts table with canary percentage - Maintenance window schedule table - Feature flags table with per-tenant override display (read-only) Observability (/observability/slo, /jobs, /delivery): - SLO burn rate table with error budget bars - Job queue health stats + run table with status badges - Per-channel delivery health cards (email/webhook) Incident Workspace (/incidents/[id]): - 3-tab layout: Timeline, Blast Radius, Comms - Declare incident form (/incidents/new) - Timeline view with event type indicators - Communications composer with channel selector and preview Security (/security, SECURITY-gated): - Threat signal feed with severity/type badges - Auth anomaly table with confidence bars - Abuse event table - Compliance posture panel (SOC2, ISO27001) Audit (/audit): - Privileged action log with actor, action, target, privilege level - Filter by privilege level, search by actor name - Links to associated receipts Contracts & API: - 13 new Zod contract schemas (tenants, incidents, slo, jobs, delivery, security, finance, infrastructure, communications, rollouts, audit, overrides, operators) - 30+ new GovernanceEnvelope API routes following established pattern - New API clients: finance, infrastructure, communications, rollouts, slo, jobs, delivery - Override form with receipt confirmation Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
All 8 conflicts resolved in favour of HEAD (claude/focused-shamir). HEAD implements the operator SaaS control center (Fleet, Incidents, Observability, Finance, Security, Infrastructure, etc.). upstream/main carries the customer control plane pivot (billing, API keys, usage, subscriptions) which is a separate app concern. Files resolved (operator implementation kept): - src/app/incidents/page.tsx - src/app/overrides/page.tsx - src/app/page.tsx - src/app/rollouts/page.tsx - src/app/support/page.tsx - src/app/tenants/page.tsx - src/components/layout/command-palette.tsx - src/components/layout/sidebar.tsx Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Contracts & Data Layer
src/lib/contracts/covering tenants, incidents, SLO, finance, rollouts, security, communications, and moresrc/lib/mock-data.ts(~892 lines) providing realistic fixture data for all surfacessrc/lib/api/for communications, delivery, finance, infrastructure, jobs, rollouts, and SLOTest Plan
pnpm dev— app boots without errors/tenants/[id]— all 7 tabs render with fixture data/finance— MRR/ARR cards and Azure spend chart display/infrastructure— resource inventory table renders/communications— compose form and message history visiblepnpm test:smoke🤖 Generated with Claude Code