feat: active config snapshot, composite StatusDot with tooltip
Some checks failed
CI / cleanup-branch (push) Has been skipped
CI / build (push) Failing after 43s
CI / docker (push) Has been skipped
CI / deploy (push) Has been skipped
CI / deploy-feature (push) Has been skipped

Part 1 — Config snapshot:
- V8 migration adds resolved_config JSONB to deployments table
- DeploymentExecutor saves the full resolved config at deploy time
- Deployment record includes resolvedConfig for auditability

Part 2 — Composite health StatusDot:
- CatalogController computes composite health from deployment status +
  agent health (green only when RUNNING AND agent live)
- CatalogApp includes healthTooltip (e.g. "Deployment: RUNNING,
  Agents: live (1 connected)")
- StatusDot added to app detail header with deployment status Badge
- StatusDot added to deployment table rows
- Sidebar passes composite health + tooltip through to tree nodes

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
hsiegeln
2026-04-09 08:00:54 +02:00
parent 7b822a787a
commit 2df5e0d7ba
10 changed files with 113 additions and 14 deletions

View File

@@ -403,7 +403,8 @@ function LayoutContent() {
.map((app: any) => ({
id: app.slug,
name: app.displayName || app.slug,
health: (app.health === 'offline' ? 'dead' : app.health) as 'live' | 'stale' | 'dead',
health: (app.health === 'offline' ? 'dead' : app.health) as SidebarApp['health'],
healthTooltip: app.healthTooltip,
exchangeCount: app.exchangeCount,
routes: [...(app.routes || [])]
.sort((a: any, b: any) => cmp(a.routeId, b.routeId))