Files
pulse/docs
rcourtman 6fca29ca81 Name Alert History row controls after their alert (#2968)
## What changes for users

Every **Alerts › History** row, in both the desktop table and the phone
cards, has the same three controls: **Timeline**, **Resource** and an
icon-only **Ask Pulse Assistant** button. Each of these had the same
name on every row. On the mock estate, a screen reader or voice control
saw:

- 91 buttons called "Timeline"
- 91 buttons called "Resource"
- 45 buttons called "Ask Pulse Assistant about this alert"

Now each control names the alert it belongs to:

| Control | Accessible name |
| --- | --- |
| Timeline | `Timeline for Memory Limit on inventory-api, Thursday, 15
October 2026 at 12:56:37` (`Hide timeline for …` while open, with
`aria-expanded`) |
| Resource | `Resource incidents for inventory-api` |
| Assistant | `Ask Pulse Assistant about Memory Limit on inventory-api,
Thursday, 15 October 2026 at 12:56:37` |

History repeats the same alert over time, so the start time is what
tells those rows apart. Resource names repeat only across rows on the
same resource, because those buttons open the same panel. Each name
starts with the visible word, so voice control still matches "Timeline"
or "Resource". The visible text and the hover tooltip are unchanged.

## How

- **Shared label helpers.** `getAlertHistoryTimelineActionLabel` and
`getAlertHistoryResourceActionLabel` live in
`utils/alertIncidentPresentation.ts`, as the canonical-platform audit
requires for alert history copy.
- **Row actions.** `AlertHistoryItemActions` uses those helpers and adds
`aria-expanded` to Timeline.
- **Assistant button.** The icon-only variant of
`InvestigateAlertButton` takes `subjectLabel` and `subjectTime`, and
names itself through the new catalog keys `alerts.assistant.iconLabel`
and `alerts.assistant.iconLabelAt` (English, German, Spanish). A locked
button keeps its locked explanation. Only History uses the icon variant.

## Verification

- **New tests:**
- row names, the open and closed state, and two occurrences of one alert
getting different names (`AlertHistoryItemActions.test.tsx`);
  - the phone card names (`AlertHistoryMobileList.test.tsx`);
- the Assistant names, with and without a start time, and the locked
state (`InvestigateAlertButton.test.tsx`);
  - the label helpers (`alertIncidentPresentation.test.ts`);
  - every locale keeping the placeholders (`i18n.test.ts`).

  Ten tests fail against main's components.
- **Suites:** the alerts, Alerts components, i18n and helper suites pass
(2,446 tests). tsc, prettier, and the copy, canonical-platform and
form-label audits are clean, and so is the bundle check.
- **Desktop (1280px):** live on the mock estate, the 75 rendered
Timeline and Assistant buttons have 75 distinct names.
- **Phone (375px):** the 44 card controls are all distinct, and an open
timeline reads "Hide timeline for …" with `aria-expanded="true"`.
- The browser receipt is included.
2026-10-15 13:30:27 +01:00
..
2026-10-15 03:45:04 +01:00
2026-10-15 03:45:04 +01:00

Pulse documentation

Start here for installation, platform setup, security, operations, and Pulse Intelligence. Commands, configuration keys, image names, API fields, and product identifiers remain untranslated in localized guides.

Need help with a failure? Read the safe reporting guidance before sharing evidence. A second reproduction or diagnostics export is not required; keep the original evidence if another attempt could interrupt workloads or send duplicate notifications. GitHub reports and attachments are public: review them locally and keep credentials and private details out.

Start here

  • Install Pulse — signed Proxmox/Linux installation, Docker, Docker Compose, Kubernetes, and first-run setup.
  • Production deployment and security — least-privilege Proxmox setup, root-agent boundaries, discovery, supply-chain verification, plan limits, scale evidence, and a rollout checklist.
  • Upgrade from Pulse v5 — migration prerequisites, rollback, agent continuity, and post-upgrade checks.
  • Releases and update channels: choosing Stable or Preview, beta and RC expectations, and how releases are tested and promoted.
  • Configure Pulse — authentication, notifications, discovery, retention, and system settings.
  • Deployment models — data locations, lifecycle, and differences between supported deployment paths.
  • Troubleshooting and FAQ — common failures, diagnostics, and operator questions.

Localized getting started guides: Deutsch · Español

Platforms and agents

VMware vSphere support is early access. Current builds expose dedicated vSphere inventory and recovery context, but operators should validate the integration against their own vCenter before production use.

Monitoring and operations

Pulse Intelligence

Patrol watch-only analysis is available on Community with a local model or the operator's own provider. Investigation and governed fixes require the relevant Pulse Pro capabilities.

Security, privacy, and access

Plans and managed access

Pulse Cloud is not generally available. Ordinary self-hosted Pulse remains the primary installation path; MSP and Enterprise access are explicit commercial paths rather than defaults in self-hosted setup.

Development and reference

Detailed design notes and dated migration specifications may remain in this directory for maintainers, but they are not operator setup guides unless they are linked from the sections above.

Previous versions and migrations

Found a bug? Use the issue forms. For setup questions, use GitHub Discussions.