Skip to content

ux/qol audit sweep: data-correctness fixes, consistency, and QOL#285

Merged
Polliog merged 33 commits into
developfrom
fix/ux-qol-audit-sweep
Jul 22, 2026
Merged

ux/qol audit sweep: data-correctness fixes, consistency, and QOL#285
Polliog merged 33 commits into
developfrom
fix/ux-qol-audit-sweep

Conversation

@Polliog

@Polliog Polliog commented Jul 21, 2026

Copy link
Copy Markdown
Collaborator

Findings and fixes from a full walkthrough of the app (all pages), grouped as data-correctness bugs (P0), UI consistency (P1) and quality-of-life (P2). Frontend changes were validated with svelte-check (no new errors beyond the known baseline); backend changes ship with tests.

Data correctness (P0)

  • "Total Logs Today" / "Error Rate" collapsed to the last hour. dashboardService.getStats read "today" from the hourly continuous aggregate for everything but the last hour. When the aggregate is not kept warm (refresh policy not running, seeded/backfilled data, fresh install) the older part of today is missing, so the total and error rate silently dropped to ~the last hour (verified live: 24h ≈ 1,500 logs, last hour ≈ 67, card showed ~60 / 0.0%). Low-volume orgs now count today/yesterday from an exact raw count; high-volume keeps the fast aggregate path.
  • The same error split into several error groups. Node.js node: runtime frames were treated as app code, so their variation across async stacks leaked into the fingerprint (one selectFrom TypeError fanned into 5+ groups). node: frames are now library code and excluded from the fingerprint.
  • Error groups showed "unknown" service on ClickHouse/MongoDB. The service was resolved by a trigger reading the Postgres logs table, which is empty on non-TimescaleDB engines. The service is now carried on the exceptions row (migration 054) and the trigger prefers it.
  • Sidebar flashed "Select organization" on hard reload. The org store now caches and hydrates the whole selected organization, not just its id.
  • Stat-card trend units / window labels were wrong (e.g. an absolute service-count delta rendered as "%"; Error Rate labelled "last 24h" while showing today's rate).

Consistency (P1)

  • Unified the preset time-range selectors (Security / Usage / Metrics) into one shared TimeRangeButtons component.
  • Monitoring's native <select>s replaced with the shared Select; Metrics Explorer duplicate project/time-range controls removed; Members date format made consistent; Projects tab title fixed.

Quality of life (P2)

  • Merge duplicate error groups; error regression detection (a resolved error that recurs reopens and is flagged as a regression). Both backend + frontend, with tests.
  • Command palette searches logs/errors/traces; shareable log-search URLs; "create alert from this error"; duplicate monitors and alert rules.
  • Search-term highlighting, relative-time tooltips, row density toggle, recent searches.
  • Theme "System" option; Metrics empty state with copy-ready OTLP snippets; dashboard auto-refresh.
  • The selected project and the time window are now remembered across pages (Metrics/Traces/Monitoring, and Logs↔Traces).
  • Success toasts added where PII rule toggles were silent.

Notes

  • Two audit items were deliberately not "fixed" because they are not defects: the dashboard "Top Error Messages" widget counting exact-message frequency vs the Errors page counting fingerprint occurrences (by design), and the service-map spinner (backend query latency, a performance follow-up rather than a stuck state).
  • Full CHANGELOG entries are included in this branch.

@codecov

codecov Bot commented Jul 21, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 94.03670% with 13 lines in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
packages/backend/src/modules/exceptions/routes.ts 82.53% 11 Missing ⚠️
packages/backend/src/modules/exceptions/service.ts 98.93% 1 Missing ⚠️
...kages/backend/src/queue/jobs/error-notification.ts 88.88% 1 Missing ⚠️

📢 Thoughts on this report? Let us know!

@Polliog
Polliog merged commit 7b7dbd4 into develop Jul 22, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant