Skip to content

feat(public-status): show active incidents and scheduled maintenance#227

Open
wispy92 wants to merge 1 commit into
operacle:developfrom
wispy92:feat/public-incidents-maintenance
Open

feat(public-status): show active incidents and scheduled maintenance#227
wispy92 wants to merge 1 commit into
operacle:developfrom
wispy92:feat/public-incidents-maintenance

Conversation

@wispy92

@wispy92 wispy92 commented Jun 20, 2026

Copy link
Copy Markdown

What

Adds an Active Incidents banner and a Scheduled Maintenance banner to the public status page (/public/:slug).

Why

The public status page only reflected live component health computed from service checks. There was no way to communicate an ongoing incident or a planned maintenance to visitors, even though both already exist in the admin UI. This closes that gap so a status page can actually be used for incident communication.

How

  • New publicStatusService that fetches active (non-resolved) incidents and scheduled / in-progress maintenance, scoped to the page (operational_status_id) and its services (service_id). The incidents and maintenance collections are already publicly readable, so no collection rule changes are needed.
  • Data exposed through usePublicStatusPageData.
  • New IncidentsSection and MaintenanceSection components rendered above the current-status card. Both render nothing when there is no active incident / maintenance, so existing pages are visually unchanged.
  • i18n keys added to the public namespace (type interface, en, km).

Testing

  • npx tsc --noEmit — passes
  • npx eslint on changed files — no new errors
  • npx vite build — passes
  • Verified against a live instance that the exact public queries return the active incident / scheduled maintenance unauthenticated, and that resolved/cancelled records are excluded.

Notes

  • Frontend-only change; no backend/migration changes.

The public status page only rendered live component health, so there was
no way to communicate ongoing incidents or planned maintenance to
visitors. The `incidents` and `maintenance` collections are already
publicly readable, so this is a frontend-only addition.

- add publicStatusService to fetch active (non-resolved) incidents and
  scheduled/in-progress maintenance, scoped to the page and its services
- expose them through usePublicStatusPageData
- render IncidentsSection and MaintenanceSection banners above the
  current status card (hidden when there is nothing to show)
- add i18n keys to the public namespace (type interface, en, km)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@wispy92 wispy92 requested a review from tolaleng as a code owner June 20, 2026 20:24
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