mirror of
https://github.com/rcourtman/Pulse.git
synced 2026-09-10 02:25:56 +00:00
b6cf0109e5
Mock mode never initialises real PVE/PBS/PMG clients and does not run the platform pollers, so every configured real source sat in the connections ledger at "awaiting first poll" forever. That published real connection names and addresses through /api/connections while the rest of the payload was authored fixtures, and surfaced them on monitoring copy: the Proxmox workloads empty state rendered "Collection pending: minipc" next to three mock nodes. /api/config/nodes already substitutes mock entries wholesale in mock mode and rejects node mutations outright, so the ledger was the one surface that had not been brought in line. Move the mock-mode input shaping into applyMockLedgerInputs in platform_mock_connections.go, which already owns the mock vSphere, TrueNAS, and availability ledger fixtures, and drop the config and persistence derived sources there. PULSE_MOCK_KEEP_REAL_POLLING keeps the previous behaviour, since those sources do collect under it. Proof is at the payload level rather than the aggregator inputs: the new handler test asserts the served /api/connections body contains no real source by name or address, and was verified red before the fix. Contract-Neutral: agent-lifecycle is named only by the broad internal/api/ Extension Points prefix and this change does not move that boundary: agent rows come from the monitor hosts snapshot, which is untouched. The api-contracts and storage-recovery deltas cover the boundaries actually moved. No payload field was added or changed, so the backend-API-payload proof list does not apply; the handler-level payload proof is TestConnectionsHandleListDropsRealSourcesInMockMode in internal/api/connections_handlers_mock_test.go, verified red without the fix.