Split direct Proxmox settings surface owners

This commit is contained in:
rcourtman
2026-03-20 23:40:02 +00:00
parent dcd88e2f64
commit 274f109dff
11 changed files with 584 additions and 338 deletions
@@ -34,16 +34,26 @@ management, and fleet control surfaces.
10. `frontend-modern/src/components/Settings/useAgentProfilesPanelState.ts`
11. `frontend-modern/src/components/Settings/InfrastructureOperationsController.tsx`
12. `frontend-modern/src/components/Settings/infrastructureOperationsModel.tsx`
13. `frontend-modern/src/components/Settings/useInfrastructureOperationsState.tsx`
14. `frontend-modern/src/components/Settings/UnifiedAgents.tsx`
15. `frontend-modern/src/components/Settings/NodeModal.tsx`
16. `frontend-modern/src/components/Settings/nodeModalModel.ts`
17. `frontend-modern/src/components/Settings/useNodeModalState.ts`
18. `frontend-modern/src/components/SetupWizard/SetupCompletionPanel.tsx`
19. `frontend-modern/src/components/Infrastructure/deploy/ResultsStep.tsx`
20. `frontend-modern/src/utils/agentProfilesPresentation.ts`
21. `frontend-modern/src/utils/agentInstallCommand.ts`
22. `frontend-modern/src/api/nodes.ts`
13. `frontend-modern/src/components/Settings/InfrastructureInstallPanel.tsx`
14. `frontend-modern/src/components/Settings/InfrastructureReportingPanel.tsx`
15. `frontend-modern/src/components/Settings/InfrastructureWorkspace.tsx`
16. `frontend-modern/src/components/Settings/ProxmoxSettingsPanel.tsx`
17. `frontend-modern/src/components/Settings/ProxmoxDirectConnectionsCard.tsx`
18. `frontend-modern/src/components/Settings/ProxmoxDiscoveryResultsCard.tsx`
19. `frontend-modern/src/components/Settings/ProxmoxDeleteNodeDialog.tsx`
20. `frontend-modern/src/components/Settings/ConfiguredNodeTables.tsx`
21. `frontend-modern/src/components/Settings/SettingsSectionNav.tsx`
22. `frontend-modern/src/components/Settings/useInfrastructureOperationsState.tsx`
23. `frontend-modern/src/components/Settings/useInfrastructureSettingsState.ts`
24. `frontend-modern/src/components/Settings/UnifiedAgents.tsx`
25. `frontend-modern/src/components/Settings/NodeModal.tsx`
26. `frontend-modern/src/components/Settings/nodeModalModel.ts`
27. `frontend-modern/src/components/Settings/useNodeModalState.ts`
28. `frontend-modern/src/components/SetupWizard/SetupCompletionPanel.tsx`
29. `frontend-modern/src/components/Infrastructure/deploy/ResultsStep.tsx`
30. `frontend-modern/src/utils/agentProfilesPresentation.ts`
31. `frontend-modern/src/utils/agentInstallCommand.ts`
32. `frontend-modern/src/api/nodes.ts`
## Shared Boundaries
@@ -70,7 +80,7 @@ management, and fleet control surfaces.
3. Add or change runtime-side Unified Agent startup, first-report assembly, and enroll/runtime continuity through `internal/hostagent/`.
4. Keep legacy Unified Agent compatibility names explicitly secondary when touching shared `internal/api/` runtime helpers: the legacy host-route family and `host-agent:*` scope names may remain as ingress or migration aliases, but they must not retake primary ownership in router state, live runtime scope checks, handler commentary, or operator-facing guidance.
5. Add or change installer flags, persisted service arguments, or upgrade-safe re-entry behavior through `scripts/install.sh` and `scripts/install.ps1`.
6. Add or change profile management, the extracted agent profiles runtime owner, the pure unified-agent inventory/install model, shared frontend install-command assembly, Proxmox setup/install API transport, setup-completion install handoff transport, deploy-fallback manual install transport, and fleet-control presentation through `frontend-modern/src/api/agentProfiles.ts`, `frontend-modern/src/api/nodes.ts`, `frontend-modern/src/components/Settings/AgentProfilesPanel.tsx`, `frontend-modern/src/components/Settings/useAgentProfilesPanelState.ts`, `frontend-modern/src/components/Settings/InfrastructureOperationsController.tsx`, `frontend-modern/src/components/Settings/infrastructureOperationsModel.tsx`, `frontend-modern/src/components/Settings/useInfrastructureOperationsState.tsx`, `frontend-modern/src/components/Settings/NodeModal.tsx`, `frontend-modern/src/components/Settings/nodeModalModel.ts`, `frontend-modern/src/components/Settings/useNodeModalState.ts`, `frontend-modern/src/components/SetupWizard/SetupCompletionPanel.tsx`, `frontend-modern/src/components/Infrastructure/deploy/ResultsStep.tsx`, and `frontend-modern/src/utils/agentInstallCommand.ts`.
6. Add or change profile management, the extracted agent profiles runtime owner, the pure unified-agent inventory/install model, the direct Proxmox workspace shell and section owners, shared frontend install-command assembly, Proxmox setup/install API transport, setup-completion install handoff transport, deploy-fallback manual install transport, and fleet-control presentation through `frontend-modern/src/api/agentProfiles.ts`, `frontend-modern/src/api/nodes.ts`, `frontend-modern/src/components/Settings/AgentProfilesPanel.tsx`, `frontend-modern/src/components/Settings/useAgentProfilesPanelState.ts`, `frontend-modern/src/components/Settings/InfrastructureOperationsController.tsx`, `frontend-modern/src/components/Settings/infrastructureOperationsModel.tsx`, `frontend-modern/src/components/Settings/InfrastructureInstallPanel.tsx`, `frontend-modern/src/components/Settings/InfrastructureReportingPanel.tsx`, `frontend-modern/src/components/Settings/InfrastructureWorkspace.tsx`, `frontend-modern/src/components/Settings/ProxmoxSettingsPanel.tsx`, `frontend-modern/src/components/Settings/ProxmoxDirectConnectionsCard.tsx`, `frontend-modern/src/components/Settings/ProxmoxDiscoveryResultsCard.tsx`, `frontend-modern/src/components/Settings/ProxmoxDeleteNodeDialog.tsx`, `frontend-modern/src/components/Settings/ConfiguredNodeTables.tsx`, `frontend-modern/src/components/Settings/SettingsSectionNav.tsx`, `frontend-modern/src/components/Settings/useInfrastructureOperationsState.tsx`, `frontend-modern/src/components/Settings/useInfrastructureSettingsState.ts`, `frontend-modern/src/components/Settings/NodeModal.tsx`, `frontend-modern/src/components/Settings/nodeModalModel.ts`, `frontend-modern/src/components/Settings/useNodeModalState.ts`, `frontend-modern/src/components/SetupWizard/SetupCompletionPanel.tsx`, `frontend-modern/src/components/Infrastructure/deploy/ResultsStep.tsx`, and `frontend-modern/src/utils/agentInstallCommand.ts`.
## Forbidden Paths
@@ -137,6 +147,15 @@ reintroducing local array or JSON parsing rules.
The owned backend API surfaces must preserve the exact-release installer
fallback, canonical /api/auto-register behavior, and hosted org install-command
contracts instead of leaving those guarantees implied by generic API ownership.
The direct Proxmox fallback workspace now also lives explicitly inside this
lifecycle boundary: `InfrastructureWorkspace.tsx`,
`InfrastructureInstallPanel.tsx`, `InfrastructureReportingPanel.tsx`,
`ProxmoxSettingsPanel.tsx`, `ProxmoxDirectConnectionsCard.tsx`,
`ProxmoxDiscoveryResultsCard.tsx`, `ProxmoxDeleteNodeDialog.tsx`,
`ConfiguredNodeTables.tsx`, `SettingsSectionNav.tsx`, and
`useInfrastructureSettingsState.ts` own the fallback install/direct/reporting
operator flow instead of leaving those panels ungoverned beside the canonical
unified-agent install path.
That canonical /api/auto-register behavior now also includes hostname/IP continuity:
reruns that arrive through a different canonical host form must reuse the same
Pulse-managed node record and token instead of forking duplicate fleet entries.
@@ -368,13 +368,23 @@
"frontend-modern/src/api/nodes.ts",
"frontend-modern/src/components/Infrastructure/deploy/ResultsStep.tsx",
"frontend-modern/src/components/Settings/AgentProfilesPanel.tsx",
"frontend-modern/src/components/Settings/ConfiguredNodeTables.tsx",
"frontend-modern/src/components/Settings/InfrastructureInstallPanel.tsx",
"frontend-modern/src/components/Settings/InfrastructureOperationsController.tsx",
"frontend-modern/src/components/Settings/infrastructureOperationsModel.tsx",
"frontend-modern/src/components/Settings/InfrastructureReportingPanel.tsx",
"frontend-modern/src/components/Settings/InfrastructureWorkspace.tsx",
"frontend-modern/src/components/Settings/NodeModal.tsx",
"frontend-modern/src/components/Settings/nodeModalModel.ts",
"frontend-modern/src/components/Settings/ProxmoxDeleteNodeDialog.tsx",
"frontend-modern/src/components/Settings/ProxmoxDirectConnectionsCard.tsx",
"frontend-modern/src/components/Settings/ProxmoxDiscoveryResultsCard.tsx",
"frontend-modern/src/components/Settings/ProxmoxSettingsPanel.tsx",
"frontend-modern/src/components/Settings/SettingsSectionNav.tsx",
"frontend-modern/src/components/Settings/UnifiedAgents.tsx",
"frontend-modern/src/components/Settings/useAgentProfilesPanelState.ts",
"frontend-modern/src/components/Settings/useInfrastructureOperationsState.tsx",
"frontend-modern/src/components/Settings/useInfrastructureSettingsState.ts",
"frontend-modern/src/components/Settings/useNodeModalState.ts",
"frontend-modern/src/components/SetupWizard/SetupCompletionPanel.tsx",
"frontend-modern/src/utils/agentInstallCommand.ts",
@@ -587,6 +597,32 @@
"frontend-modern/src/components/Settings/__tests__/InfrastructureOperationsModel.test.tsx",
"frontend-modern/src/components/Settings/__tests__/UnifiedAgents.test.tsx"
]
},
{
"id": "direct-proxmox-workspace-surface",
"label": "direct Proxmox workspace lifecycle proof",
"match_prefixes": [],
"match_files": [
"frontend-modern/src/components/Settings/ConfiguredNodeTables.tsx",
"frontend-modern/src/components/Settings/InfrastructureInstallPanel.tsx",
"frontend-modern/src/components/Settings/InfrastructureReportingPanel.tsx",
"frontend-modern/src/components/Settings/InfrastructureWorkspace.tsx",
"frontend-modern/src/components/Settings/ProxmoxDeleteNodeDialog.tsx",
"frontend-modern/src/components/Settings/ProxmoxDirectConnectionsCard.tsx",
"frontend-modern/src/components/Settings/ProxmoxDiscoveryResultsCard.tsx",
"frontend-modern/src/components/Settings/ProxmoxSettingsPanel.tsx",
"frontend-modern/src/components/Settings/SettingsSectionNav.tsx",
"frontend-modern/src/components/Settings/useInfrastructureSettingsState.ts"
],
"allow_same_subsystem_tests": false,
"test_prefixes": [],
"exact_files": [
"frontend-modern/src/components/Settings/__tests__/InfrastructureWorkspace.test.tsx",
"frontend-modern/src/components/Settings/__tests__/monitoredSystemModelGuardrails.test.ts",
"frontend-modern/src/components/Settings/__tests__/settingsArchitecture.test.ts",
"frontend-modern/src/components/Settings/__tests__/UnifiedAgents.test.tsx",
"frontend-modern/src/utils/__tests__/frontendResourceTypeBoundaries.test.ts"
]
}
]
}