Skip to content

bug(ui): A filter on the Notifications tab rewrites the global Operations counts #3449

Closed

Description

@vybe

Summary

Header and badges move from 502 to 34, to 2, and back to 502 when the filter is cleared; "Total 34" sits under "Pending 502".

Category: functional · Severity: Medium · Validated: source

Context

Found by the click-through UI sweep of a local instance (dev @ c90c711ee, 1.0.0-rc1), fixture agents only.

Repro

  1. Open /operations?tab=notifications with several hundred pending notifications.
  2. Note the page header, the Notifications tab badge and the Operations nav badge.
  3. Set Status = Acknowledged, or tick Show dismissed, or pick one agent.

Expected

Honest status: the global pending count does not depend on the filter of the list being viewed; a stated total is the real total.

Observed

Header and badges move from 502 to 34, to 2, and back to 502 when the filter is cleared; "Total 34" sits under "Pending 502".

Validation

src/frontend/src/stores/notifications.js:139 — updatePendingCount() recomputes the global pendingCount from the currently loaded (filtered, paged) list; src/frontend/src/views/Operations.vue:291-312 uses it for the header and both badges.

Acceptance Criteria

  • The repro above gives the Expected result at 1440 and 768, in light and dark.
  • A regression test pins the behaviour (unit or Playwright, whichever tier can observe it).
  • No new raw-palette classes or hand-rolled primitives are introduced by the fix (docs/memory/design-system-contract.md).

Technical Notes

Evidence screenshots (kept on the machine that ran the sweep; the evidence folder is gitignored because the repository is public):

  • docs/testing/ui-sweep/evidence/2026-10-09-all/6d97027e-1.png
  • docs/testing/ui-sweep/evidence/2026-10-09-all/6d97027e-2.png
    Supersedes earlier sweep fingerprints: 1c9b4cca.

Found by /ui-sweep --all @ c90c711

Metadata

Metadata

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions