Repair standalone PBS detail governance proof

Change-source: pulse-maintainer
This commit is contained in:
pulse-triage[bot] 2026-08-27 01:42:27 +01:00
parent 325ff793c8
commit 1b4b8ae1dc
5 changed files with 45 additions and 23 deletions

View file

@ -159,6 +159,13 @@ provider tables must not add a second mobile chevron. Operator overrides remain
in the shared `Manage` tab and use the explicit compact density of `FormSelect`
and `FormTextarea`, keeping form labels, help relationships, touch targets, and
control chrome canonical without expanding the low-frequency management surface.
When the summary row already owns a canonical unified `Resource`, its expanded
content composes `PlatformResourceDetailTableRow` instead of rebuilding a
provider-local fact grid. This keeps Overview, History, Manage, accessibility,
focus restoration, and responsive drawer behavior on one primitive. Proxmox
Backup Server rows follow this rule and request the shared host-details
disclosure open initially so a merged agent's system, hardware, network, disk,
and thermal facts remain discoverable from the PBS surface.
Presentation helpers that mirror a server-side classification must name the

View file

@ -480,6 +480,14 @@ summary row. Compact layouts must not stack those secondary facts beneath the
resource name and make the row taller: keep essential identity inline when no
detail disclosure exists, and otherwise preserve supporting context in its
existing column, the row's accessible title, or the expanded detail content.
The Backup servers summary owns PBS reachability and datastore capacity, but
its row expansion is the canonical unified-resource drawer, not a second
storage-local detail model. A PBS resource merged with a Pulse Agent keeps the
PBS service evidence and exposes the agent's system, hardware, network, disk,
thermal, history, and management context through that shared drawer. Bare-metal
PBS hosts therefore remain fully inspectable after leaving the standalone
Machines surface, while storage/recovery does not duplicate agent telemetry or
invent a competing provider drawer hierarchy.
The Proxmox backup view selector follows the same ownership split:
storage/recovery owns the chronological-versus-coverage view values and backup
semantics, while the visible segmented selector shell must compose the

View file

@ -813,6 +813,11 @@ container inventory table.
10. `frontend-modern/src/components/Infrastructure/useUnifiedResourceTableState.ts` shared with `performance-and-scalability`: unified resource table state, grouping, and windowing are both a canonical unified-resource consumer surface and a fleet-scale performance hot-path boundary.
11. `frontend-modern/src/components/Infrastructure/useUnifiedResourceTableViewportSync.ts` shared with `performance-and-scalability`: unified resource table viewport sync and selected-row reveal are both a canonical unified-resource consumer surface and a fleet-scale performance hot-path boundary.
12. `frontend-modern/src/features/proxmox/ProxmoxBackupServersTable.tsx` shared with `storage-recovery`: Proxmox backup server table rows are both a storage/recovery backup-health surface and a unified-resource platform-table consumer boundary.
Each row carries the canonical PBS `Resource` into the shared platform
resource-detail row. When coalescence has attached an agent facet, that
same drawer must expose host system, hardware, network, disks, thermals,
history, and management context without recreating a PBS-local host model
or returning the provider-owned resource to the standalone Machines list.
13. `frontend-modern/src/features/proxmox/ProxmoxCoverageTable.tsx` shared with `storage-recovery`: Proxmox workload coverage rows are both a storage/recovery protection-posture surface and a unified-resource identity consumer boundary.
14. `frontend-modern/src/features/proxmox/ProxmoxRecoverableTable.tsx` shared with `storage-recovery`: Proxmox recoverable workload table rows are both a storage/recovery coverage surface and a unified-resource platform-table consumer boundary.
15. `frontend-modern/src/routing/routePreload.ts` shared with `frontend-primitives`, `performance-and-scalability`: the app-shell route preload registry is a canonical frontend shell boundary, an authenticated hot-path performance boundary, and the entry point for the unified-resource Actions workspace.