Files
pulse/docs/release-control
rcourtman bc2cf8d400 v6(settings): phase 7 — ConnectionsTable sources from the unified aggregator
Switches the configured-connections ledger in the infrastructure workspace
from the legacy `useInfrastructureReportingState`-derived rows to
`GET /api/connections`, so the table now reflects aggregator-derived state
(active/paused/unauthorized/unreachable/stale/pending) and per-connection
scope directly from the per-type config stores plus scheduler health.

New frontend surfaces:

- `useConnectionsLedger.ts` polls the unified aggregator every 15s and
  maps each `Connection` into an `InfrastructureSystemRow` with state
  badges, collection label, active-scope coverage labels, and a
  `connection` manage action.
- `ConnectionDetailDrawer.tsx` renders the aggregator fields (type,
  address, state, stateReason, enabled, surfaces with active scope,
  last seen, last error, source) when a unified row is clicked,
  replacing `InfrastructureActiveRowDetails` for configured connections.

`InfrastructureWorkspace` now composes its row list from the ledger plus
the legacy monitoring-stopped rows (still driven by
`useInfrastructureReportingState`) and no longer mounts the legacy
active-row drawer. Ignored-inventory drill-in continues to use
`InfrastructureIgnoredRowDetails` pending the phase 9 cleanup.

`SystemManageAction` gains a `connection` variant so the workspace can
differentiate unified-row clicks from monitoring-stopped rows without
conflating them through the legacy `rowKey` path.

Contracts updated: agent-lifecycle, frontend-primitives.
Tests: `InfrastructureWorkspace.test.tsx` extended with a
`connectionFixture`, asserts unified rows render with the new state
badges, and the View-details click opens the new connection-detail
drawer instead of calling `setExpandedRowKey`.
2026-04-19 14:03:07 +01:00
..