Repository navigation
Commit 8aeb2f3
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> <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> </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
File tree
- .changeset
- packages/app
- src
- __tests__
- components
- hooks
- __tests__
- tests/e2e
- features
- page-objects
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
0 commit comments