diff --git a/docs/release-control/v6/internal/subsystems/agent-lifecycle.md b/docs/release-control/v6/internal/subsystems/agent-lifecycle.md index 1e657a7711..4a8ce936ad 100644 --- a/docs/release-control/v6/internal/subsystems/agent-lifecycle.md +++ b/docs/release-control/v6/internal/subsystems/agent-lifecycle.md @@ -3293,8 +3293,11 @@ Agent` secondary handoff against the live setup wizard instead of relying first source is still pending, that same completion narrative must describe Add infrastructure as the place where the operator chooses platform API inventory, Pulse Agent - telemetry, or both. If the operator selects the direct agent path from that - completion surface, the agent install body may prepare the first-host + telemetry, or both. The operator-facing copy names those choices in plain + words (connect by API, install the Pulse Agent, or both) and names what + each one shows, rather than the internal terms inventory, node-local + telemetry, estate, or source strategy used in this contract. If the + operator selects the direct agent path from that completion surface, the agent install body may prepare the first-host scoped install token from setup handoff, and when it names the shared settings workspace for follow-up lifecycle control it must use the canonical `Infrastructure` label instead of reviving the retired diff --git a/frontend-modern/browser-verification.json b/frontend-modern/browser-verification.json index 649b9912d5..6a2519d52d 100644 --- a/frontend-modern/browser-verification.json +++ b/frontend-modern/browser-verification.json @@ -1,22 +1,21 @@ { "version": 1, - "base_sha": "75c72ef505b24e31214162b7b46f97e357528ae3", - "verified_at": "2026-09-28T14:14:00Z", + "base_sha": "a5de22f114c723d5f7e2b5c885c7b6d2f836a0d2", + "verified_at": "2026-09-28T16:05:00Z", "result": "passed", "changed_paths": [ - "frontend-modern/src/components/SetupWizard/steps/WelcomeStep.tsx", "frontend-modern/src/i18n/messages.de.ts", "frontend-modern/src/i18n/messages.es.ts", "frontend-modern/src/i18n/messages.ts" ], "content_sha256": { - "frontend-modern/src/components/SetupWizard/steps/WelcomeStep.tsx": "cb25935ec49782592c1602ae1502f5becc94108d61c3a786bbd65654d757e540", - "frontend-modern/src/i18n/messages.de.ts": "ca6bd4a42cac62c3bdec6ef25c35b5ec78b886d0455c6eab0ae8f154c0fd3361", - "frontend-modern/src/i18n/messages.es.ts": "5b3867658b39164afdece84e7a1eb28195b18d810d9ca9f5ed6761a54e274dcd", - "frontend-modern/src/i18n/messages.ts": "9e0bd2b4addcf984e499499460fee59f705d684cffb4fba1d7da0361cfbbdd31" + "frontend-modern/src/i18n/messages.de.ts": "9d2276ee7d3a12bc34981e1fa1d1e11c137fbd867fb529a925408ccae1fc7d74", + "frontend-modern/src/i18n/messages.es.ts": "8dff6fb9eb2ef1df2137fc0a947a34dfaa681aa3edde4a069d43ff1911833927", + "frontend-modern/src/i18n/messages.ts": "55c9fbf661901f230f12d47b6cd3bbbbf77e2b14a5b54741555ab09da36e3214" }, "routes": [ - "/ (first-run unlock screen, fresh container)" + "/ (setup completion after unlock and admin creation)", + "/settings/infrastructure?add=pick" ], "viewports": [ { @@ -29,15 +28,15 @@ } ], "states": [ - "Fresh rcourtman/pulse:latest (v6.4.1) container in first-run state, serving this branch's vite build via PULSE_FRONTEND_DIR, reached through an SSH tunnel to localhost", - "Unlock setup lists four rows: direct host, Docker deployment, the new Container console (Unraid, Portainer, TrueNAS apps) row with /app/pulse bootstrap-token, and LXC", - "At 390px the new label wraps to two lines and the command truncates like the existing rows, with no page-level horizontal overflow (scrollWidth 390)", - "At 1280px all four commands render in full with no overflow" + "Fresh rcourtman/pulse:latest (v6.4.1) container in first-run state serving this branch's vite build via PULSE_FRONTEND_DIR, reached over an SSH tunnel to localhost", + "Empty first-source completion state shows Connect your first system, the next-step detail telling users to start with the platform API and add the Pulse Agent on Proxmox nodes for temperatures and SMART disk health, and the Ways to connect list", + "At 390px the headings, badge, buttons and list wrap without page-level horizontal overflow (scrollWidth 390)", + "At desktop width the credentials card and next-step card render with the new copy and no clipping" ], "interactions": [ - "Clicked the copy button on the Container console row and saw the Command copied to clipboard toast and the check icon", - "Ran /app/pulse bootstrap-token from a shell inside the container as root and as the pulse user and confirmed it printed the token" + "Verified a bootstrap token, created the auto-generated admin, and reached the completion screen", + "Clicked Add infrastructure at 390px and confirmed it routes to /settings/infrastructure?add=pick" ], "command": "Claude desktop browser pane against a pulse-dev probe container", - "notes": "Backend was the published v6.4.1 image, not a build of this branch. The frontend is this branch. Telemetry was disabled on the probe containers." + "notes": "Copy-only change. Backend was the published v6.4.1 image, frontend is this branch. German and Spanish strings are covered by the localization unit test, not visually checked. Telemetry was disabled on the probe." } diff --git a/frontend-modern/src/components/SetupWizard/__tests__/SetupCompletionPanel.guardrails.test.ts b/frontend-modern/src/components/SetupWizard/__tests__/SetupCompletionPanel.guardrails.test.ts index c998174dec..28459df775 100644 --- a/frontend-modern/src/components/SetupWizard/__tests__/SetupCompletionPanel.guardrails.test.ts +++ b/frontend-modern/src/components/SetupWizard/__tests__/SetupCompletionPanel.guardrails.test.ts @@ -20,16 +20,16 @@ const migratedFirstSessionCopy = [ 'Continue to Security', 'Create Account & Continue', 'On the next screen', - 'Choose your first infrastructure source', + 'Connect your first system', 'First monitored system connected', 'Credentials you must save now', 'Shown during setup', 'Save the admin login and API token before leaving this screen', 'Recommended next step', - 'Source choices', - 'Inventory and health from Proxmox, TrueNAS, VMware, PBS, or PMG.', - 'Node-local telemetry for standalone hosts, services, Docker, and Kubernetes.', - 'Open Add infrastructure to choose a platform API, Pulse Agent, or both.', + 'Ways to connect', + 'Pulse reads VMs, storage, and health through the platform API.', + 'A small program on a Linux, Windows, or macOS machine', + 'Open Add infrastructure and pick what you run.', 'Activate Pulse Pro', 'Enter the activation key from your purchase email', 'Enter activation key', diff --git a/frontend-modern/src/components/SetupWizard/__tests__/SetupCompletionPanel.test.tsx b/frontend-modern/src/components/SetupWizard/__tests__/SetupCompletionPanel.test.tsx index c5b3e7d6c8..3da3e4b417 100644 --- a/frontend-modern/src/components/SetupWizard/__tests__/SetupCompletionPanel.test.tsx +++ b/frontend-modern/src/components/SetupWizard/__tests__/SetupCompletionPanel.test.tsx @@ -75,22 +75,24 @@ describe('SetupCompletionPanel', () => { it('frames setup completion around the canonical add-infrastructure picker', async () => { render(() => ); - expect(screen.getByText('Choose your first infrastructure source')).toBeInTheDocument(); + expect(screen.getByText('Connect your first system')).toBeInTheDocument(); expect(screen.getByRole('button', { name: 'Add infrastructure' })).toBeInTheDocument(); expect(screen.getByRole('button', { name: 'Install Pulse Agent' })).toBeInTheDocument(); expect(screen.getByText('Credentials you must save now')).toBeInTheDocument(); expect(screen.getByText('Shown during setup')).toBeInTheDocument(); expect(screen.getByText('admin')).toBeInTheDocument(); expect(screen.getByText('password')).toBeInTheDocument(); - expect(screen.getByText('Source choices')).toBeInTheDocument(); - expect(screen.getByText('Platform API')).toBeInTheDocument(); + expect(screen.getByText('Ways to connect')).toBeInTheDocument(); + expect(screen.getByText('Connect by API')).toBeInTheDocument(); expect(screen.getByText('Use both')).toBeInTheDocument(); expect( - screen.getByText('Inventory and health from Proxmox, TrueNAS, VMware, PBS, or PMG.'), + screen.getByText( + 'Proxmox VE, Proxmox Backup Server, Proxmox Mail Gateway, TrueNAS, or VMware. Pulse reads VMs, storage, and health through the platform API.', + ), ).toBeInTheDocument(); expect( screen.getByText( - 'Node-local telemetry for standalone hosts, services, Docker, and Kubernetes.', + 'A small program on a Linux, Windows, or macOS machine, such as a Proxmox node, that reports its temperatures, disk health, Docker, and Kubernetes.', ), ).toBeInTheDocument(); expect(screen.queryByText('What happens next')).not.toBeInTheDocument(); @@ -202,7 +204,7 @@ describe('SetupCompletionPanel', () => { ).toBeInTheDocument(); expect( screen.getByText( - 'Add infrastructure stays available for more Pulse Agent systems or platform API inventory when a platform manages the estate.', + 'Use Add infrastructure any time to add more machines, or to connect a platform such as Proxmox through its API.', ), ).toBeInTheDocument(); expect(screen.getAllByRole('button', { name: 'Open Infrastructure' }).length).toBeGreaterThan( @@ -258,7 +260,7 @@ describe('SetupCompletionPanel', () => { ).toBeInTheDocument(); expect( screen.getByText( - 'Add infrastructure stays available for more API-backed systems or Pulse Agent telemetry when a system needs node-local coverage.', + 'Use Add infrastructure any time to connect more systems, or to install the Pulse Agent on your Proxmox nodes for temperatures and disk health (SMART).', ), ).toBeInTheDocument(); expect(screen.getByRole('button', { name: 'Open Infrastructure' })).toBeInTheDocument(); @@ -362,7 +364,7 @@ describe('SetupCompletionPanel', () => { ).toBeInTheDocument(); expect( screen.getByText( - 'Add infrastructure stays available any time you want to expand from this first system with another API source, Agent source, or both.', + 'Use Add infrastructure any time to connect more systems through their API, with the agent, or both.', ), ).toBeInTheDocument(); expect(screen.getByRole('button', { name: 'Add infrastructure' })).toBeInTheDocument(); diff --git a/frontend-modern/src/components/SetupWizard/__tests__/SetupWizard.localization.test.tsx b/frontend-modern/src/components/SetupWizard/__tests__/SetupWizard.localization.test.tsx index f657672963..1269b9060e 100644 --- a/frontend-modern/src/components/SetupWizard/__tests__/SetupWizard.localization.test.tsx +++ b/frontend-modern/src/components/SetupWizard/__tests__/SetupWizard.localization.test.tsx @@ -111,9 +111,9 @@ describe('localized setup wizard journey', () => { /> )); - expect(screen.getByText('Elige tu primera fuente de infraestructura')).toBeInTheDocument(); + expect(screen.getByText('Conecta tu primer sistema')).toBeInTheDocument(); expect(screen.getByText('Credenciales que debes guardar ahora')).toBeInTheDocument(); - expect(screen.getByText('Opciones de fuente')).toBeInTheDocument(); + expect(screen.getByText('Formas de conectar')).toBeInTheDocument(); expect(screen.getByRole('button', { name: 'Agregar infraestructura' })).toBeInTheDocument(); expect(screen.getByRole('button', { name: 'Instalar Pulse Agent' })).toBeInTheDocument(); }); diff --git a/frontend-modern/src/i18n/messages.de.ts b/frontend-modern/src/i18n/messages.de.ts index 164491e1d1..baf7417707 100644 --- a/frontend-modern/src/i18n/messages.de.ts +++ b/frontend-modern/src/i18n/messages.de.ts @@ -222,42 +222,42 @@ export const DE_MESSAGE_OVERRIDES = { 'Ihr Admin-Konto ist bereit und Pulse empfaengt bereits Telemetrie. Oeffnen Sie Infrastruktur, um das erste System zu pruefen, und kehren Sie zu Infrastruktur hinzufuegen zurueck, wenn Sie eine weitere Plattform-API- oder Agent-Quelle wollen.', 'setup.completion.hero.connected.title': 'Erstes ueberwachtes System verbunden', 'setup.completion.hero.empty.description': - 'Ihr Admin-Konto ist bereit. Waehlen Sie als Naechstes, wie das erste System in das einheitliche Infrastrukturmodell gelangt: Plattform-API-Inventar, Pulse Agent-Telemetrie oder beides.', - 'setup.completion.hero.empty.title': 'Erste Infrastrukturquelle waehlen', + 'Ihr Admin-Konto ist bereit. Legen Sie als Naechstes fest, was Pulse ueberwachen soll: einen Proxmox-Server, ein NAS, VMware oder einen beliebigen Linux-, Windows- oder macOS-Rechner.', + 'setup.completion.hero.empty.title': 'Erstes System verbinden', 'setup.completion.nextStep.ariaLabel': 'Naechster Einrichtungsschritt', 'setup.completion.nextStep.badge': 'Empfohlener naechster Schritt', 'setup.completion.nextStep.detail.agent': - 'Infrastruktur hinzufuegen bleibt fuer weitere Pulse Agent-Systeme oder Plattform-API-Inventar verfuegbar, wenn eine Plattform die Umgebung verwaltet.', + 'Ueber Infrastruktur hinzufuegen koennen Sie jederzeit weitere Rechner hinzufuegen oder eine Plattform wie Proxmox ueber ihre API verbinden.', 'setup.completion.nextStep.detail.api': - 'Infrastruktur hinzufuegen bleibt fuer weitere API-gestuetzte Systeme oder Pulse Agent-Telemetrie verfuegbar, wenn ein System lokale Knotenabdeckung braucht.', + 'Ueber Infrastruktur hinzufuegen koennen Sie jederzeit weitere Systeme verbinden oder den Pulse Agent auf Ihren Proxmox-Knoten installieren, um Temperaturen und Festplattenzustand (SMART) zu sehen.', 'setup.completion.nextStep.detail.both': - 'Infrastruktur hinzufuegen bleibt jederzeit verfuegbar, wenn Sie dieses erste System um eine weitere API-Quelle, Agent-Quelle oder beides erweitern wollen.', + 'Ueber Infrastruktur hinzufuegen koennen Sie jederzeit weitere Systeme per API, mit dem Agent oder mit beidem verbinden.', 'setup.completion.nextStep.detail.empty': - 'Beginnen Sie mit einer Plattform-API, wenn eine Plattform die Umgebung verwaltet. Installieren Sie Pulse Agent, wenn das System selbst lokale Knotentelemetrie melden soll.', + 'Verbinden Sie zuerst Proxmox, TrueNAS oder VMware ueber ihre API. Installieren Sie auf Proxmox-Knoten zusaetzlich den Pulse Agent, um Temperaturen und Festplattenzustand (SMART) zu erhalten, die die Proxmox-API nicht meldet.', 'setup.completion.nextStep.label': 'Naechster Schritt', 'setup.completion.nextStep.summary.connected.singular': 'Oeffnen Sie Infrastruktur, um Ihr erstes verbundenes System zu pruefen.', 'setup.completion.nextStep.summary.connected.plural': 'Oeffnen Sie Infrastruktur, um Ihre verbundenen Systeme zu pruefen.', 'setup.completion.nextStep.summary.empty': - 'Oeffnen Sie Infrastruktur hinzufuegen, um eine Plattform-API, Pulse Agent oder beides zu waehlen.', + 'Oeffnen Sie Infrastruktur hinzufuegen und waehlen Sie aus, was Sie betreiben. Pulse kann sich mit der API verbinden, den Agent installieren oder beides.', 'setup.completion.nextStep.title.connected': 'Infrastruktur oeffnen', - 'setup.completion.nextStep.title.empty': 'Strategie fuer erste Quelle waehlen', + 'setup.completion.nextStep.title.empty': 'Erstes System zur Ueberwachung hinzufuegen', 'setup.completion.proActivation.action': 'Aktivierungsschluessel eingeben', 'setup.completion.proActivation.description': 'Dieser Server laeuft mit dem Pulse Pro Build, aber ohne aktive Lizenz. Geben Sie den Aktivierungsschluessel aus Ihrer Kauf-E-Mail ein, um die Pro-Funktionen freizuschalten.', 'setup.completion.proActivation.title': 'Pulse Pro aktivieren', 'setup.completion.resource.unknownName': 'Unbekannt', 'setup.completion.sourceOptions.agent.description': - 'Knotenlokale Telemetrie fuer eigenstaendige Hosts, Dienste, Docker und Kubernetes.', + 'Ein kleines Programm auf einem Linux-, Windows- oder macOS-Rechner, etwa einem Proxmox-Knoten, das dessen Temperaturen, Festplattenzustand, Docker und Kubernetes meldet.', 'setup.completion.sourceOptions.agent.title': 'Pulse Agent', 'setup.completion.sourceOptions.both.description': - 'Kombinieren Sie Plattforminventar mit Agent-Telemetrie, wenn vollstaendige Abdeckung wichtig ist.', + 'Verbinden Sie Proxmox per API fuer den ganzen Cluster und fuegen Sie den Agent auf den Knoten hinzu, deren Temperaturen und Festplattenzustand Sie sehen wollen.', 'setup.completion.sourceOptions.both.title': 'Beides verwenden', 'setup.completion.sourceOptions.platformApi.description': - 'Inventar und Zustand aus Proxmox, TrueNAS, VMware, PBS oder PMG.', - 'setup.completion.sourceOptions.platformApi.title': 'Plattform-API', - 'setup.completion.sourceOptions.title': 'Quellenoptionen', + 'Proxmox VE, Proxmox Backup Server, Proxmox Mail Gateway, TrueNAS oder VMware. Pulse liest VMs, Speicher und Zustand ueber die Plattform-API.', + 'setup.completion.sourceOptions.platformApi.title': 'Per API verbinden', + 'setup.completion.sourceOptions.title': 'Verbindungswege', 'setup.progress.ariaLabel': 'Einrichtungsfortschritt', 'setup.progress.state.completed': ', abgeschlossen', 'setup.progress.state.current': ', aktuell', diff --git a/frontend-modern/src/i18n/messages.es.ts b/frontend-modern/src/i18n/messages.es.ts index 8af0517c74..cb987d1104 100644 --- a/frontend-modern/src/i18n/messages.es.ts +++ b/frontend-modern/src/i18n/messages.es.ts @@ -216,42 +216,42 @@ export const ES_MESSAGE_OVERRIDES = { 'Tu cuenta de administrador está lista y Pulse ya recibe telemetría. Abre Infraestructura para revisar el primer sistema. Luego vuelve a Agregar infraestructura cuando quieras otra API de plataforma, fuente Agent o ambas.', 'setup.completion.hero.connected.title': 'Primer sistema supervisado conectado', 'setup.completion.hero.empty.description': - 'Tu cuenta de administrador está lista. Ahora elige cómo entrará el primer sistema en el modelo unificado de infraestructura: inventario por API de plataforma, telemetría de Pulse Agent o ambos.', - 'setup.completion.hero.empty.title': 'Elige tu primera fuente de infraestructura', + 'Tu cuenta de administrador está lista. Ahora indica a Pulse qué debe monitorizar: un servidor Proxmox, un NAS, VMware o cualquier equipo Linux, Windows o macOS.', + 'setup.completion.hero.empty.title': 'Conecta tu primer sistema', 'setup.completion.nextStep.ariaLabel': 'Siguiente paso de configuración', 'setup.completion.nextStep.badge': 'Siguiente paso recomendado', 'setup.completion.nextStep.detail.agent': - 'Agregar infraestructura queda disponible para más sistemas Pulse Agent o inventario por API de plataforma cuando una plataforma administra el entorno.', + 'Usa Agregar infraestructura cuando quieras para añadir más equipos o conectar una plataforma como Proxmox a través de su API.', 'setup.completion.nextStep.detail.api': - 'Agregar infraestructura queda disponible para más sistemas respaldados por API o telemetría de Pulse Agent cuando un sistema necesita cobertura local del nodo.', + 'Usa Agregar infraestructura cuando quieras para conectar más sistemas o instalar Pulse Agent en tus nodos Proxmox y ver temperaturas y estado de discos (SMART).', 'setup.completion.nextStep.detail.both': - 'Agregar infraestructura queda disponible cuando quieras ampliar este primer sistema con otra fuente API, fuente Agent o ambas.', + 'Usa Agregar infraestructura cuando quieras para conectar más sistemas por API, con el agente o de ambas formas.', 'setup.completion.nextStep.detail.empty': - 'Empieza con una API de plataforma cuando una plataforma administra el entorno. Instala Pulse Agent cuando el propio sistema deba informar telemetría local del nodo.', + 'Empieza conectando Proxmox, TrueNAS o VMware a través de su API. En los nodos Proxmox, instala también Pulse Agent para añadir temperaturas y estado de discos (SMART), que la API de Proxmox no informa.', 'setup.completion.nextStep.label': 'Siguiente paso', 'setup.completion.nextStep.summary.connected.singular': 'Abre Infraestructura para revisar tu primer sistema conectado.', 'setup.completion.nextStep.summary.connected.plural': 'Abre Infraestructura para revisar tus sistemas conectados.', 'setup.completion.nextStep.summary.empty': - 'Abre Agregar infraestructura para elegir una API de plataforma, Pulse Agent o ambos.', + 'Abre Agregar infraestructura y elige lo que usas. Pulse puede conectarse a su API, instalar su agente o ambas cosas.', 'setup.completion.nextStep.title.connected': 'Abrir Infraestructura', - 'setup.completion.nextStep.title.empty': 'Elige la estrategia de primera fuente', + 'setup.completion.nextStep.title.empty': 'Agrega el primer sistema que quieres monitorizar', 'setup.completion.proActivation.action': 'Introducir clave de activación', 'setup.completion.proActivation.description': 'Este servidor ejecuta la compilación Pulse Pro sin una licencia activa. Introduce la clave de activación de tu correo de compra para desbloquear las funciones Pro.', 'setup.completion.proActivation.title': 'Activar Pulse Pro', 'setup.completion.resource.unknownName': 'Desconocido', 'setup.completion.sourceOptions.agent.description': - 'Telemetría local del nodo para hosts independientes, servicios, Docker y Kubernetes.', + 'Un pequeño programa en un equipo Linux, Windows o macOS, como un nodo Proxmox, que informa de sus temperaturas, estado de discos, Docker y Kubernetes.', 'setup.completion.sourceOptions.agent.title': 'Pulse Agent', 'setup.completion.sourceOptions.both.description': - 'Combina inventario de plataforma con telemetría de Agent cuando importa la cobertura completa.', + 'Conecta Proxmox por API para todo el clúster y añade el agente en los nodos donde quieras ver temperaturas y estado de discos.', 'setup.completion.sourceOptions.both.title': 'Usar ambos', 'setup.completion.sourceOptions.platformApi.description': - 'Inventario y salud desde Proxmox, TrueNAS, VMware, PBS o PMG.', - 'setup.completion.sourceOptions.platformApi.title': 'API de plataforma', - 'setup.completion.sourceOptions.title': 'Opciones de fuente', + 'Proxmox VE, Proxmox Backup Server, Proxmox Mail Gateway, TrueNAS o VMware. Pulse lee VMs, almacenamiento y estado a través de la API de la plataforma.', + 'setup.completion.sourceOptions.platformApi.title': 'Conectar por API', + 'setup.completion.sourceOptions.title': 'Formas de conectar', 'setup.progress.ariaLabel': 'Progreso de configuración', 'setup.progress.state.completed': ', completado', 'setup.progress.state.current': ', actual', diff --git a/frontend-modern/src/i18n/messages.ts b/frontend-modern/src/i18n/messages.ts index 72ff793b52..e01f74e5de 100644 --- a/frontend-modern/src/i18n/messages.ts +++ b/frontend-modern/src/i18n/messages.ts @@ -35,42 +35,42 @@ export const EN_MESSAGES = { 'Your admin account is ready and Pulse is already receiving telemetry. Open Infrastructure to inspect the first system, then return to Add infrastructure when you want another platform API or Agent source.', 'setup.completion.hero.connected.title': 'First monitored system connected', 'setup.completion.hero.empty.description': - 'Your admin account is ready. Next, choose how the first system should enter the unified infrastructure model: platform API inventory, Pulse Agent telemetry, or both.', - 'setup.completion.hero.empty.title': 'Choose your first infrastructure source', + 'Your admin account is ready. Next, tell Pulse what to monitor: a Proxmox server, a NAS, VMware, or any Linux, Windows, or macOS machine.', + 'setup.completion.hero.empty.title': 'Connect your first system', 'setup.completion.nextStep.ariaLabel': 'Setup next step', 'setup.completion.nextStep.badge': 'Recommended next step', 'setup.completion.nextStep.detail.agent': - 'Add infrastructure stays available for more Pulse Agent systems or platform API inventory when a platform manages the estate.', + 'Use Add infrastructure any time to add more machines, or to connect a platform such as Proxmox through its API.', 'setup.completion.nextStep.detail.api': - 'Add infrastructure stays available for more API-backed systems or Pulse Agent telemetry when a system needs node-local coverage.', + 'Use Add infrastructure any time to connect more systems, or to install the Pulse Agent on your Proxmox nodes for temperatures and disk health (SMART).', 'setup.completion.nextStep.detail.both': - 'Add infrastructure stays available any time you want to expand from this first system with another API source, Agent source, or both.', + 'Use Add infrastructure any time to connect more systems through their API, with the agent, or both.', 'setup.completion.nextStep.detail.empty': - 'Start with a platform API when a platform manages the estate. Install Pulse Agent when the system itself should report node-local telemetry.', + 'Start by connecting Proxmox, TrueNAS, or VMware through their API. On Proxmox nodes, also install the Pulse Agent to add temperatures and disk health (SMART), which the Proxmox API does not report.', 'setup.completion.nextStep.label': 'Next step', 'setup.completion.nextStep.summary.connected.singular': 'Open Infrastructure to review your first connected system.', 'setup.completion.nextStep.summary.connected.plural': 'Open Infrastructure to review your connected systems.', 'setup.completion.nextStep.summary.empty': - 'Open Add infrastructure to choose a platform API, Pulse Agent, or both.', + 'Open Add infrastructure and pick what you run. Pulse can connect to its API, install its agent, or both.', 'setup.completion.nextStep.title.connected': 'Open Infrastructure', - 'setup.completion.nextStep.title.empty': 'Choose the first source strategy', + 'setup.completion.nextStep.title.empty': 'Add the first system to monitor', 'setup.completion.proActivation.action': 'Enter activation key', 'setup.completion.proActivation.description': 'This server is running the Pulse Pro build without an active license. Enter the activation key from your purchase email to unlock Pro features.', 'setup.completion.proActivation.title': 'Activate Pulse Pro', 'setup.completion.resource.unknownName': 'Unknown', 'setup.completion.sourceOptions.agent.description': - 'Node-local telemetry for standalone hosts, services, Docker, and Kubernetes.', + 'A small program on a Linux, Windows, or macOS machine, such as a Proxmox node, that reports its temperatures, disk health, Docker, and Kubernetes.', 'setup.completion.sourceOptions.agent.title': 'Pulse Agent', 'setup.completion.sourceOptions.both.description': - 'Combine platform inventory with Agent telemetry when full coverage matters.', + 'Connect Proxmox by API for the whole cluster, then add the agent on the nodes where you want temperatures and disk health.', 'setup.completion.sourceOptions.both.title': 'Use both', 'setup.completion.sourceOptions.platformApi.description': - 'Inventory and health from Proxmox, TrueNAS, VMware, PBS, or PMG.', - 'setup.completion.sourceOptions.platformApi.title': 'Platform API', - 'setup.completion.sourceOptions.title': 'Source choices', + 'Proxmox VE, Proxmox Backup Server, Proxmox Mail Gateway, TrueNAS, or VMware. Pulse reads VMs, storage, and health through the platform API.', + 'setup.completion.sourceOptions.platformApi.title': 'Connect by API', + 'setup.completion.sourceOptions.title': 'Ways to connect', 'setup.progress.ariaLabel': 'Setup progress', 'setup.progress.state.completed': ', completed', 'setup.progress.state.current': ', current', diff --git a/tests/integration/tests/30-setup-platform-connections-handoff.spec.ts b/tests/integration/tests/30-setup-platform-connections-handoff.spec.ts index f36b7bf9b6..c48892059f 100644 --- a/tests/integration/tests/30-setup-platform-connections-handoff.spec.ts +++ b/tests/integration/tests/30-setup-platform-connections-handoff.spec.ts @@ -11,7 +11,7 @@ test.describe("Setup completion Add infrastructure handoff", () => { }); await expect( - page.getByText("Choose your first infrastructure source"), + page.getByText("Connect your first system"), ).toBeVisible(); await expect( page.getByRole("button", { name: "Add infrastructure", exact: true }), @@ -21,7 +21,7 @@ test.describe("Setup completion Add infrastructure handoff", () => { ).toBeVisible(); await expect( page.getByText( - "Start with a platform API when a platform manages the estate. Install Pulse Agent when the system itself should report node-local telemetry.", + "Start by connecting Proxmox, TrueNAS, or VMware through their API. On Proxmox nodes, also install the Pulse Agent to add temperatures and disk health (SMART), which the Proxmox API does not report.", ), ).toBeVisible();