Skip to content

Commit 8aeb2f3

Browse files
feat(dashboards): add read-only kiosk mode (#2703)
## Summary Add a shareable, URL-backed kiosk mode for dashboards intended for static displays. Kiosk mode reduces the app to the dashboard name and live/read-only status, locks all dashboard authoring controls, and forces automatic refresh including live behavior for trace/search tiles. Kiosk mode deliberately does not control browser fullscreen. Viewers can choose browser or operating-system fullscreen independently without changing kiosk state. The saved dashboard is never changed; tab and group expansion remain viewer-only URL state. ### Screenshots or video [dashboard_kiosk_url_only_demo.mp4](https://cursor.com/agents/bc-36a32f81-633b-4934-8687-b5b236553998/artifacts?path=%2Fopt%2Fcursor%2Fartifacts%2Fdashboard_kiosk_url_only_demo.mp4) ### How to test on Vercel preview **Preview routes:** /dashboards **Steps:** 1. Open `/dashboards`, select **Create New Saved Dashboard**, and add a chart tile. 2. Open the dashboard overflow menu and select **Enter kiosk mode**. 3. Verify the URL includes `kiosk=true` and only the dashboard name, **Live · Read-only** status, exit control, and dashboard tiles remain visible. 4. Verify browser chrome remains unchanged; kiosk mode must not request or exit native fullscreen. 5. Reload the page and verify kiosk mode remains active with navigation, query controls, tile actions, resizing, and Add controls hidden. 6. Select **Exit kiosk mode** and verify the standard editable dashboard and navigation return. ### Validation - App lint, TypeScript, and style checks pass. - Focused kiosk regression suites pass: 30 tests. - Manual browser validation confirms kiosk mode enters/exits without changing native fullscreen state. - Full CI passes, including unit/integration checks, all four Playwright shards, and the aggregate E2E check. ### References - Linear Issue: N/A - Related PRs: N/A <sub>To show artifacts inline, <a href="https://cursor.com/dashboard/cloud-agents#team-pull-requests">enable</a> in settings.</sub> <div><a href="https://cursor.com/agents/bc-36a32f81-633b-4934-8687-b5b236553998"><picture><source media="(prefers-color-scheme: dark)" srcset="https://cursor.com/assets/images/open-in-web-dark.png"><source media="(prefers-color-scheme: light)" srcset="https://cursor.com/assets/images/open-in-web-light.png"><img alt="Open in Web" width="114" height="28" src="https://cursor.com/assets/images/open-in-web-dark.png"></picture></a>&nbsp;<a href="https://cursor.com/background-agent?bcId=bc-36a32f81-633b-4934-8687-b5b236553998"><picture><source media="(prefers-color-scheme: dark)" srcset="https://cursor.com/assets/images/open-in-cursor-dark.png"><source media="(prefers-color-scheme: light)" srcset="https://cursor.com/assets/images/open-in-cursor-light.png"><img alt="Open in Cursor" width="131" height="28" src="https://cursor.com/assets/images/open-in-cursor-dark.png"></picture></a>&nbsp;</div> Co-authored-by: Cursor Agent <199161495+cursoragent@users.noreply.github.com>
1 parent ec161d7 commit 8aeb2f3

12 files changed

Lines changed: 578 additions & 150 deletions
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
---
2+
'@hyperdx/app': minor
3+
---
4+
5+
Add a read-only kiosk mode for dashboards with a minimal header and automatic
6+
live refresh for static displays.

0 commit comments

Comments
 (0)