Repository navigation
feat(status-pages): dashboard tab and editor - #1932
Merged
Merged
Maple Review Bot / Maple / review
completed
Oct 31, 2026 in 2m 39s
Confidence 6/10 · 2 issues to address
🟡 Confidence 6/10 · needs attention. Held at 6 because a correctness warning is open.
2 warnings −2 · 7 notes · tests covered · risk medium · 8 defects fixed in earlier rounds
Adds the Status pages tab to the alerts hub and the /alerts/status-pages/<id> editor with components, incidents and settings tabs. Safe to merge apart from the nine findings carried over from earlier reviews, none of which this head fixes. The pre-existing McpQueryError issues surfacing through apps/web/src/page/registry.ts are untouched: the diff only registers one more lazy page there.
/alerts?tab=status-pageslists pages with worst status, open incidents and publish state/alerts/status-pages/<id>editor with components, incidents and settings tabs- Incidents composer, post-update and resolve flows; maintenance windows read in the viewer's zone
- Break-glass token issue, replace and revoke, plus settings save bar and page delete
Still open from earlier reviews
- 🟠 Warning · F12 · A non-empty name with no ASCII letters or digits yields an empty slug, and
slugErroris suppressed for the empty slug so the disabled Create button has no explanation ·apps/web/src/page/alerts/status-pages/list/view.ts:172 - 🟠 Warning · F15 · The hub's status page reads stop at 100 rows and never follow
next_cursor·apps/web/src/page/alerts/shared/status-page-commands.ts:21 - 🔵 Note · F10 · The reorder test never renders the optimistic order its title claims ·
apps/web/src/page/alerts/status-pages/editor/editor.scene.test.ts:144 - 🔵 Note · F11 ·
pageId(10)and its siblings throw instead of building an id ·apps/web/src/page/alerts/status-pages/test-pages.ts:17 - 🔵 Note · F13 · Clearing the address keeps
slugblank instead of handing it back to the name ·apps/web/src/page/alerts/status-pages/list/update.ts:74 - 🔵 Note · F14 · An empty address shows no error, so
Create status pageis disabled with no reason ·apps/web/src/page/alerts/status-pages/list/view.ts:172 - 🔵 Note · F16 ·
publishLinerenders relative times against the epoch until the clock read lands ·apps/web/src/page/alerts/status-pages/editor/view.ts:99 - 🔵 Note · F17 · A blank component name disables Save with nothing saying the name is required ·
apps/web/src/page/alerts/status-pages/editor/view-components.ts:235 - 🔵 Note · F9 · A failed components read is titled "Couldn't load incidents" ·
apps/web/src/page/alerts/status-pages/editor/view.ts:161
Production impact
Open errors in the changed files (2)
| Issue | Service | Occurrences | File |
|---|---|---|---|
| @maple/mcp/errors/McpQueryError (6 issues) | maple-chat | 1.3k | apps/web/src/page/registry.ts |
| @maple/mcp/errors/McpQueryError (4 issues) | maple-ai | 349 | apps/web/src/page/registry.ts |
After this merges, Maple checks whether they stop.
What was checked
- Maintenance window conversion pinned by the Europe/Berlin test: 22:00 local becomes 21:00Z
- API returns incident updates newest-first (
StatusPagesService.ts:387), soupdates[0]really is the latest - Editor remounts per page id (
editor/index.tskeys onroute.pageId), sorouteChangedignoring the id is safe
d10bce2 · Reply "won't fix" to dismiss a finding, or mention @maple-review-bot to ask about one.
Loading