prometheus / prometheus/alertmanager

UI: add parity, accessibility, performance, and release conformance

Open
#5,493 0 comments 0 reactions 1 assignee View on GitHub

@siavashs is already working on this.

Since Aug 29, 2026.

component/ui kind/enhancement
Dominant language
Go
Stars
8.6k
Forks
2.5k
Avg merge
2d 6h
Merged PRs (30d)
61

Description

Parent: #5451
Related API conformance: #5485

Summary

Establish and execute the final parity, browser E2E, accessibility, security, performance, route-prefix, and release matrix for the required Mantine UI surface.

Service-specific tests remain in their feature issues. This issue proves that the complete required UI works as a bundled Alertmanager application.

Parity matrix

Maintain a checklist against Elm for:

  • Alerts, natural/custom grouping, receiver selection, state and label filters, annotations, labels, links, times, expansion, and Silence actions.
  • Silence active/pending/expired lists, counts, filters, detail, create, update, annotations, preview, expire/delete, and resulting IDs.
  • Status, Configuration, Settings, local preferences, navigation, errors, loading, empty states, and deep links.
  • Root/non-root route prefixes and links between Classic and New UI.

Every missing item must be implemented or recorded as an explicit maintainer-approved exception. Optional NotificationService UI is excluded.

Browser and accessibility coverage

  • Add Playwright tests against a real built Alertmanager binary.
  • Cover /ui/ and a non-root route prefix, direct nested loads, refreshes, route transitions, Connect unary calls/mutations, feature-disabled/enabled errors, reloads, and watch reconnect/resnapshot.
  • Add automated accessibility checks plus explicit keyboard navigation, focus order/visibility, announcements, zoom, and mobile viewport scenarios.
  • Exercise auto/light/dark themes and persisted settings.

Performance and security

  • Generate large alert/group/silence datasets and measure initial render, expansion, filtering, pagination, and browser memory.
  • Avoid rendering every collapsed alert; add windowing/virtualization where measurement requires it.
  • Test labels, annotations, comments, configuration, matchers, and URLs containing hostile, escaped, and UTF-8 values without unsafe HTML or broken links.
  • Verify generator/external links use safe target behavior and relative URLs resolve intentionally.
  • Verify runtime bootstrap remains CSP-compatible and same-origin authentication works.

Build and release conformance

  • Verify clean nested routes and assets under root and non-root route prefixes.
  • Verify dynamic HTML caching, immutable asset caching, identity/gzip/Brotli responses, missing-asset 404s, and third-party license attribution.
  • Verify common CI and release architectures embed both UIs.
  • Verify both prebuilt asset artifacts and their documented extraction workflows.
  • Document /ui/, continued Classic UI availability, v3alpha/feature limitations, and troubleshooting.
  • Add staged changelog entries for user-visible delivery.

Acceptance criteria

  • Every required parity item passes or has a documented maintainer-approved exception.
  • Playwright passes against a real binary at /ui/ and a non-root route prefix, including nested refreshes.
  • Automated accessibility and explicit mobile/keyboard/focus checks pass.
  • Large datasets meet agreed rendering and memory thresholds.
  • Hostile/escaped/UTF-8 content remains safe and functional.
  • CSP-compatible bootstrap, same-origin auth, caching, compression, licenses, and release assets are verified.
  • Generated output is reproducible and a second generation produces no diff.
  • Mantine typecheck/check/tests/build, Go UI tests, make common-format, make lint, make test-short, and make test pass.
  • Optional notification observability does not block completion.

Dependencies and related work

  • Required UI children: #5486, #5487, #5488, #5489, #5490, #5491, and #5492.
  • Coordinate browser/API conformance with #5485.
  • Large-alert considerations relate to #924.
  • Relevant security/path backlog includes #4509, #4499, #2340, #1881, and #1826.

Likely code areas

  • Playwright configuration and tests under ui/mantine-ui/
  • component accessibility/performance fixtures
  • ui/web_test.go, test/e2e/**, and CI workflows
  • README.md, CHANGELOG.md, and UI contributor documentation

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.