# Fullscreen dashboards and Metrics Query Library

> Dashboards get a fullscreen mode and a simpler panel editor, Metrics Explorer gets a Query Library, and the MCP server adds alert coverage and previews.

Source: https://last9.io/changelog/fullscreen-dashboards-and-metrics-query-library/

### Improvements

- **AI Assistant**: Tool activity in a chat shows **Approved**, **Denied**, **Pending approval**, or **Expired** next to a tool that needed approval. The chip stays in restored history, and a pending approval turns to **Expired** at its deadline.
- **Dashboards**
  - Added a fullscreen mode. Open it from the new **More** menu or press `F`, and leave it with **Exit**, `Esc`, `F`, or the browser Back button. Entering fullscreen turns on auto-refresh at 1 minute if it was off, and a **Live** chip pauses and resumes it.
  - Simplified the panel editor. Its settings now sit in 5 collapsible sections: **Chart Settings**, **Legend Settings**, **Query Options**, **Links**, and **Panel Settings**. A section opens by default when it holds a value. **Lookback** and **Time Shift** are checked as you type, so a value such as `24 hours` shows an error and blocks **Save**.
- **Metrics**: Added a **Query Library** to Metrics Explorer, next to **Run Query**, with **Recent** and **Saved** queries, **All**, **Team**, and **Personal** tabs, and search. Save a query with **Save**. A saved query restores its query, mode, and cluster; a recent query opens in code mode. Editors and admins can save, edit, and delete queries; viewers cannot.
- **Alerting**: The header of the alert rule editor reads **Edit Alert Rule** followed by the saved rule's name.
- **Settings > Audit Trail**: Creating, updating, or deleting a dashboard writes an audit entry with the dashboard ID and the user.
- **Agent Observability**: The trace panel shows a cost the trace reports (labelled **Reported**) ahead of an estimate, and the estimate accounts for cached tokens. When cache pricing is unknown, cost shows as a range. **Time to First Token** appears only when the span reports it, apart from **Response Time**.
- **MCP**
  - Added the `get_alert_coverage` tool, which lists what you are not alerting on for a service, environment, alert group, or the whole organization. It groups gaps as uncovered signals, rules that are all disabled, rules with no notification channel, and groups muted too long, and suggests the fix tool for each.
  - Added `preview_dashboard`, which checks an unsaved dashboard or a patch and returns resolved queries and per-panel results without saving it, and dashboard authoring prompts that guide layout and queries.
  - Added the `create_kpi` and `get_entity_kpis` tools to create and list the KPIs of an alert group, and an `author-alert` prompt that walks an agent through writing an alert rule as a draft.
  - `get_alert_config` shows five recent one-minute evaluations for each rule.
  - Breaking: `get_trace_waterfall` returns the trace service's waterfall with credentials, query literals, URLs, emails, IPs, and user identifiers redacted. See the [MCP server](https://github.com/last9/last9-mcp-server/releases) release notes for v0.22.0 and v0.23.0.

### Fixes

- **AI Assistant**: When the connection to a reply dropped, the chat showed "An unexpected error occurred. Please try again." The chat now reloads the turn instead.
- **Discover Kubernetes**: The **Logs** tab of Node, Deployment, StatefulSet, and Pod details, and the detail metrics, were empty for EKS clusters labelled by ARN rather than by short name. Logs tabs now scope to namespace, workload, and pod name, so same-named workloads in the same namespace of another cluster in that region can appear together.
- **Control Plane**
  - **Remapping**: Saved remap keys that were missing from the current label list were hidden in the Map Logs and Map Traces editors and dropped when you saved the rule.
  - **Sensitive Data**: The **Phone Number** rule redacted space-separated numeric fields in logs, such as `200 116 2459` in an HAProxy line. It now matches North American numbers only when they use `-` or `.`, and adds `+60` and `+66` numbers.
