diff --git a/frontend-modern/src/components/Settings/ConnectionsTable.tsx b/frontend-modern/src/components/Settings/ConnectionsTable.tsx index 5d907b1fd..4de19b152 100644 --- a/frontend-modern/src/components/Settings/ConnectionsTable.tsx +++ b/frontend-modern/src/components/Settings/ConnectionsTable.tsx @@ -219,6 +219,18 @@ export const ConnectionsTable: Component = (props) => { + + + +

+ Removing forgets this connection from Pulse; history is retained. + Credentials on the platform itself are untouched — revoke them there + separately if you want to invalidate access. +

+
+
+
+ diff --git a/frontend-modern/src/components/Settings/__tests__/ConnectionsTable.test.tsx b/frontend-modern/src/components/Settings/__tests__/ConnectionsTable.test.tsx index 9bd9e515a..2164dda77 100644 --- a/frontend-modern/src/components/Settings/__tests__/ConnectionsTable.test.tsx +++ b/frontend-modern/src/components/Settings/__tests__/ConnectionsTable.test.tsx @@ -190,6 +190,27 @@ describe('ConnectionsTable', () => { expect(screen.queryByRole('button', { name: 'Remove' })).toBeNull(); }); + it('tells the truth on Platform API remove confirm: history retained, platform untouched', () => { + const actions = makeActions({ confirmingRemove: () => true }); + const pveConnection = connectionFixture({ + id: 'pve:zeus', + type: 'pve', + name: 'zeus', + }); + render(() => ( + [row({ connection: pveConnection, isAgent: false })]} + actions={actions} + onEdit={vi.fn()} + /> + )); + + expect(screen.getByText(/history is retained/i)).toBeInTheDocument(); + expect(screen.getByText(/Credentials on the platform itself are untouched/i)).toBeInTheDocument(); + // No uninstall block for Platform API rows — only agents get that courtesy. + expect(screen.queryByText(/--uninstall/)).toBeNull(); + }); + it('reveals the agent uninstall commands while confirming removal of an agent row', () => { const actions = makeActions({ confirmingRemove: () => true }); const agentConnection = connectionFixture({