Rename "telemetry" to "metrics" in agent-facing copy

The word "telemetry" reads as vendor phone-home (especially since Pulse
has a separate, clearly-labelled "Anonymous outbound telemetry" system
on the server for usage pings). What the agent actually does is collect
host-level metrics that flow to the user's own Pulse deployment, with
no vendor endpoint.

Updated in three places to match:

- Explainer subhead and always-on chip ("Hardware metrics",
  "host-level metrics").
- Add-connection Unified Agent section ("Host-level metrics on
  Proxmox...").
- Matching assertion in ConnectionsExplainer.test.tsx plus a guard in
  ConnectionEditor.test.tsx that the old "host-level telemetry" copy
  does not come back.

Also:

- Strip the em dash from the Add-connection workspace subheader.
- Drop the redundant inner "Add a connection" heading now that the
  outer card already titles it "Add connection".
This commit is contained in:
rcourtman
2026-04-20 10:01:53 +01:00
parent 2e1e682f70
commit bf1d7d4e09
5 changed files with 7 additions and 13 deletions
@@ -77,14 +77,6 @@ export const ConnectionEditor: Component<ConnectionEditorProps> = (props) => {
when={showCredentialSlot()}
fallback={
<div class="space-y-4 p-4">
<div>
<div class="text-sm font-semibold text-base-content">Add a connection</div>
<div class="mt-0.5 text-xs text-muted">
Paste a platform address to connect its API, or install the Unified Agent on a
host.
</div>
</div>
<section class="space-y-3 rounded-md border border-border bg-surface-alt/30 p-3">
<div>
<div class="text-xs font-semibold uppercase tracking-wide text-muted">
@@ -130,7 +122,7 @@ export const ConnectionEditor: Component<ConnectionEditorProps> = (props) => {
Pulse Unified Agent
</div>
<div class="text-[11px] text-muted">
Host-level telemetry on Proxmox / VMware / TrueNAS, or the only path on
Host-level metrics on Proxmox / VMware / TrueNAS, or the only path on
bare-metal Linux, Unraid, FreeBSD.
</div>
</div>
@@ -107,6 +107,8 @@ describe('ConnectionEditor', () => {
expect(
screen.getByRole('button', { name: /install the unified agent on a host/i }),
).toBeInTheDocument();
expect(screen.getByText(/host-level metrics/i)).toBeInTheDocument();
expect(screen.queryByText(/host-level telemetry/i)).toBeNull();
});
it('routes the Install Unified Agent button straight to the agent credential slot', () => {
@@ -21,7 +21,7 @@ const persistDismissed = () => {
}
};
const ALWAYS_ON_CAPABILITIES = ['Hardware telemetry'];
const ALWAYS_ON_CAPABILITIES = ['Hardware metrics'];
const OPT_IN_CAPABILITIES = ['Assistant commands', 'Patrol remediation'];
@@ -61,7 +61,7 @@ export const ConnectionsExplainer: Component = () => {
</h3>
<p class="mt-0.5 text-xs text-muted">
The platform API covers workloads. The Unified Agent adds host-level
telemetry, and stands alone where there's no API.
metrics, and stands alone where there's no API.
</p>
</div>
@@ -318,7 +318,7 @@ const InfrastructureWorkspaceContent: Component<InfrastructureWorkspaceProps> =
<div>
<div class="text-base font-semibold text-base-content">Add connection</div>
<div class="mt-0.5 text-xs text-muted">
Paste an address Pulse detects the product, you enter credentials, save.
Paste an address. Pulse detects the product, you enter credentials, and save.
</div>
</div>
<button
@@ -32,7 +32,7 @@ describe('ConnectionsExplainer', () => {
it('surfaces concrete agent capabilities and trust facts users care about', () => {
render(() => <ConnectionsExplainer />);
for (const capability of ['Hardware telemetry', 'Assistant commands', 'Patrol remediation']) {
for (const capability of ['Hardware metrics', 'Assistant commands', 'Patrol remediation']) {
expect(screen.getByText(capability)).toBeInTheDocument();
}
for (const fact of ['Single Go binary', '~13 MB download', 'No runtime dependencies', 'Open source']) {