Remove the redundant credentials.kind discriminator and use ProviderConfig.id as the provider selector throughout state, providers, renderer requests, and tests.
Use ProviderId as the canonical provider model identity and remove resource-level/provider-kind/source model duplication.
Treat manual as the provider id for manual servers and external domains, deriving domain DNS association from same-name zones.
Remove local providerId and --provider-id multi-account paths so provider kind is the single credential identity.
Update resource bindings, planned/actual state, CLI, renderer forms, reconciliation keys, and tests to use one credential set per provider.
Remove the old restore/operator-task recovery model and make actor/execution state the source of truth. Align GUI and CLI node actions around start, stop, reboot, retry, and reinstall, with provider image reset folded into reinstall when supported.
Update statechart and architecture docs to match the reinstall/repair model.
Replace the cloud supervisor actor machinery with a provider broker and provider persistence split, move managed provisioning into the provider deployment phase, and rename the coordinator facade to EngineOps.
Consolidate node observation and repair timers under ObservationScheduler, clean up materialization watcher leftovers, and update tests/docs for the new architecture.
Replace provider-account terminology with provider configuration/provider ids across persisted state, renderer forms, CLI contracts, and resource orchestration. Remove the provider-account CLI selector now that provider kind uniquely identifies the configured provider.
Keep one provider credential slot per provider kind, use the normal manual slot without synthetic account handling, and limit refresh/drift/billing/resource actors to Legion-tracked servers. Rename the CLI provider setup flow from add to configure.
Expose manual as a static compute catalog with connection details modeled as offer variables, remove the server source/account selectors, and enforce one provider account per kind. Drop the old manualServerImport capability and request-level manualConfig path so manual planning goes through the same provider offer flow.
Move cloud providers behind module descriptors and drive renderer provider UI from those descriptors. Model manual as a user-mediated provider with simplified server import credentials and firewall operator tasks. Keep the mock provider gated by LEGION_GUI_MOCK_NETWORK and update provider docs/tests.
Add the MockKing24 provider for GUI development and tests behind LEGION_GUI_MOCK_NETWORK=1. Hide persisted mock resources when the gate is off instead of deleting them, and remove the old Hetzner HTTP mock transport from GUI tests.
Move remaining server deletion and DNS cleanup policies into resource modules, expand server reconciliation ownership, and move Electron composition roots under main/bootstrap. Narrow deployment runtime dependencies to explicit provider-provisioning and firewall-reconciliation services, validating them before provider side effects. Update architecture/provider docs to match the reorganized module tree.
Add docs/arch.md covering the current engine, daemon, GUI, XState actors, recovery loops, managed-node security, and daemon token posture.
Refresh the non-slop docs to match current scripts, provider coverage, GUI test behavior, and architecture references.
Rename retained top-level docs to lowercase kebab-case and squash obsolete review/refactor notes into docs/open.md. Remove stale standalone plan documents that are now represented by the current open-issues summary.