mirror of
https://github.com/rcourtman/Pulse.git
synced 2026-05-22 19:36:46 +00:00
Four documented platform-page gaps from the prior round are closed: 1. **Docker Swarm services canonical projection.** The unified resource adapter requires `host.Swarm.ClusterID`/`ClusterName` for `dockerSwarmClusterKey` to produce a stable service source ID; the mock generator was leaving those fields empty so all generated services were dropped. Anchor every mock Swarm host to a single named cluster (`mock-swarm-cluster-1` / `edge-swarm`) so manager and worker hosts share Swarm identity and their services deduplicate correctly across managers. Live mock survey now exposes 15 docker-service rows (was 0). 2. **Docker Swarm services UI restored.** The `/docker/services` sub-tab is back. `DockerPageSurface` mounts a `PlatformResourceTable` with the canonical operator toolbar (search + status chips + counter); `dockerPageModel.ts` re-introduces the services bucket; the model test asserts the three-tab shape and the services bucket. 3. **TrueNAS Systems / Overview sub-tab restored.** Re-survey of the canonical adapter confirms `truenas.FixtureRecords` already emits the top-level TrueNAS appliance as a unified `agent` row tagged with the `truenas` platform (see `internal/truenas/provider.go:: truenasRecordsFromSnapshot`). TrueNAS now defaults to `/truenas/overview` and the page model exposes a `systems` bucket. 4. **VMware fixture inventory scaled to a mature SMB lab.** `internal/vmware/fixtures.go::appendEdgeClusterFixtures` programmatically appends an Edge DC with 3 more ESXi hosts (esxi-05..07), 12 more VMs across Tier 1 / Stateful / Workstations / Observability / Archive tiers (mixed healthy/warning/powered-off, mixed Linux/Windows guest OS), and 4 more datastores (VMFS / NFS41 / vSAN / cold-iSCSI). Live mock survey now shows 43 VMs (was 31), 18 agents (was 15), and 60 storage rows (was 55) across two datacenters. 5. **TrueNAS / vSphere Storage source filter chip suppression.** `StoragePageControls` gains a `suppressSourceFilter` prop and `Storage.tsx` automatically applies it whenever `forcedSourceFilter` is set, so platform-page embeds no longer render the now-locked Source filter chip alongside the operator toolbar. Resource survey under the new mock baseline (live `/api/resources`): - TOTAL 342 unique resources (was 307) - app-container: 75, storage: 60, system-container: 44, vm: 43, pod: 40, physical_disk: 19, agent: 18, docker-service: 15, k8s-deployment: 14, docker-host: 5, network-endpoint: 5, pbs: 2, pmg: 1, k8s-cluster: 1 Browser verification (Playwright, chromium, live mock-mode dev runtime): - 9 tests pass. Every populated sub-tab — Docker Hosts / Containers / Swarm services, Kubernetes Clusters / Nodes / Pods / Deployments, TrueNAS Systems / Storage / Apps, vSphere Hosts / VMs / Storage — asserts both populated canonical rows AND a visible operator search input. Targeted vitest (77 files / 358 tests) + Go tests (./internal/vmware, ./internal/mock, ./internal/monitoring) all green. Contracts updated: - `storage-recovery.md` Shared Boundaries: TrueNAS defaults to the Systems overview now that the canonical adapter emits a TrueNAS- platform agent row; `suppressSourceFilter` auto-applies under `forcedSourceFilter`. - `unified-resources.md` Extension Points: same; the canonical TrueNAS adapter emits the appliance as a unified resource so the builder default lands on a populated Systems sub-tab. - `Storage.test.tsx` extended with the source-filter suppression contract assertion. |
||
|---|---|---|
| .. | ||
| actionplanner | ||
| agentexec | ||
| agenttls | ||
| agentupdate | ||
| ai | ||
| alerts | ||
| api | ||
| bootstrap | ||
| cloudcp | ||
| config | ||
| crypto | ||
| deploy | ||
| discovery | ||
| dockeragent | ||
| hostagent | ||
| hosted | ||
| hostmetrics | ||
| kubernetesagent | ||
| license | ||
| logging | ||
| maintenancesentinel | ||
| metrics | ||
| mock | ||
| mockmode | ||
| mockmodel | ||
| mockruntime | ||
| models | ||
| monitoring | ||
| notifications | ||
| platformsupport | ||
| recovery | ||
| relay | ||
| remoteconfig | ||
| repoctl | ||
| securityutil | ||
| sensors | ||
| servicediscovery | ||
| ssh/knownhosts | ||
| storagehealth | ||
| system | ||
| telemetry | ||
| testutil | ||
| truenas | ||
| unifiedresources | ||
| updates | ||
| updatesignature | ||
| utils | ||
| vmware | ||
| websocket | ||