[READ-ONLY] Mirror of https://github.com/openstatusHQ/openstatus. 馃珫 Status page with uptime monitoring & API monitoring as code 馃珫 openstatus.dev
bun drizzle-orm monitoring monitoring-as-code nextjs observability on-call open-source shadcn-ui status-page statuspage synthetic-monitoring tinybird turso uptime uptime-checker uptime-monitor

feat(dashboard): period-aware latency charts, monitor pause/resume, and get_workspace MCP tool (#2980) master

* fix(dashboard): latency chart order, degraded line, and downtime wording - sort non-http latency series oldest to newest; most tinybird latency pipes return rows newest first so the chart read right to left - extend the latency y-axis to the degraded threshold when it is within 2x of the data max so the reference line is no longer silently dropped - downtime delete/acknowledge/resolve dialogs say "downtime", not "incident" - status-page floating config panel uses the dashboard wording (Status source / Card shows) instead of Bar Type / Card Type * fix(status-page): keep card label visible for absolute source with manual value * feat(dashboard): period-aware latency charts, axis labels, and free-plan window - latency endpoints trim rows to the selected period; the fixed-window pipes ignored the dates so 1d/14d showed 14 or 30 days - resolution now reaches the non-http latency pipes and is capped per period on client and server (1d tops out at 4h) - x-axis ticks adapt to the range (time only on 1d, short date + hour on multi-day, date only on daily buckets); tooltips keep the full date - free workspaces are limited to 7 days; 14d+ locked in the dropdown and rejected server-side - lock icon in the period dropdown sits in the indicator column * fix(dashboard): recompute period window per render and guard chart edge cases - derive the from-date at query time so long-lived tabs do not pin stale windows - drop rows with invalid timestamps before trimming to the selected window - stop the lock icon overlapping the check mark on the selected period - add axis tick formatting tests * feat(mcp): add get_workspace tool for plan and usage counts Exposes workspace id, slug, name, plan, trial end and usage counts (monitors, status pages, components, channels, reports) across MCP, dashboard chat and the Slack agent. Plan limits and billing ids stay private, matching the public whoami endpoint. * fix(mcp): register get_workspace in eval catalogue and tighten its test - offer the tool in the tool-selection eval so the new case can pass - assert exact usage counts, including that soft-deleted monitors are excluded - update the docs tool counts * fix(dashboard): drop action buttons from the paused uptime chart slot The 130px slot only fits icon and title; resume/edit stay in the page header. * feat(dashboard): pause and resume a monitor from its quick actions menu Header, sidebar and table row menus show the one that applies, so a paused monitor can be restarted without opening settings. * feat(dashboard): render chat incident results with badges and links Matches the managed incidents table: linked titles, severity and status badges instead of raw enum text. * fix(dashboard): drop commander from chat incident list and mark closed in detail