Skip to content

Dashboard progressive rendering - #57

Merged
venkateshsakamuri-lab merged 7 commits into
mainfrom
dashboard-progressive-rendering
Aug 15, 2026
Merged

Dashboard progressive rendering#57
venkateshsakamuri-lab merged 7 commits into
mainfrom
dashboard-progressive-rendering

Conversation

@notSumit25

Copy link
Copy Markdown
Collaborator

No description provided.

notSumit25 and others added 2 commits August 15, 2026 11:36
…e widget queries

Dashboards now build visibly instead of showing a blank canvas for the
whole generation: the agent emits a shell block plus one verified widget
block at a time, each streamed to the UI and mounted into the live iframe
as soon as it's ready. The chat trace also translates raw tool calls into
plain-English progress ("Checking the numbers…") instead of showing SQL
or internal tool names.

Also fixes a real bug this surfaced: when a build/edit finished without
self-review changes, the canvas was reloading and re-running every
widget's query a second time, duplicating entries in the Queries panel.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…con rendering

Wire the previously-unused folder/favorite/search backend endpoints into
DashboardsHome.jsx, add dashboard clone/duplicate, and add version history
with diff summaries, live preview, and restore (dashboard_versions table,
V113 migration). Fix a Tailwind Preflight bug collapsing lucide-react icons
to 0 width inside small flex buttons, dedupe identical version rows on
restore, and clear the Queries panel on restore/Source-apply so it doesn't
show stale entries from the previous config.

Also fixes a pre-existing bug where AccessControlService leaked a raw
RuntimeException as an uncaught 500 instead of a clean 404 when a
dashboard's connection no longer exists (affected share/clone/version
endpoints alike).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
notSumit25 and others added 2 commits August 15, 2026 15:42
…luated alerts

Add manual + auto-refresh (30s/5m/1h) to the dashboard workspace and viewer,
backed by a new reload() method on DashboardArtifact that forces a genuine
iframe remount via a key bump. Add TV/kiosk mode to the public share route
(?kiosk=1, chrome-less + auto-refresh) with multi-dashboard cycling
(?tokens=...&advance=...) that skips password-protected dashboards rather
than stalling on an unattended gate; ShareMenu surfaces a ready-made kiosk
link once a dashboard is public.

Add natural-language dashboard alerts (dashboard_alerts table, V114
migration): a per-dashboard condition evaluated on a schedule by a bounded
DeepSQL agent session (fresh, tool-scoped, forced YES/NO + grounded reason),
ticked every minute by one db-scheduler recurring task rather than one task
per alert. Fired alerts dispatch through new EmailService/WebhookService
methods with a per-alert cooldown, and run as whoever created them since
there's no ambient "system" identity for a background job. Server-side
validation rejects a blank condition on create/update.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
… title

A brand-new dashboard now opens with the composer centered and no side
panel/canvas chrome, docking smoothly into the left panel the instant the
first message is sent instead of showing the docked layout from the start.
Driven by whether a user message exists yet, so reopening any dashboard with
prior history skips straight to the normal docked layout.

The breadcrumb now reads "Untitled dashboard" (was "New dashboard") and is
directly editable inline. A rename takes priority over both the agent's
HTML-derived title and the saved row's name, and survives future builds —
including a fix for the build-completion path, which persists its own
HTML-derived name server-side and would otherwise silently revert a pending
rename the moment a build finished.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@venkateshsakamuri-lab

Copy link
Copy Markdown
Contributor

@notSumit25 Can you add some screenshots of the new changes?

@notSumit25

Copy link
Copy Markdown
Collaborator Author
image image image image image image image image image image

notSumit25 and others added 3 commits August 15, 2026 21:21
Rebuilds the empty state, header, composer, message bubbles, and activity
trace with the same purple-accent/material treatment already used across
Dashboards, plus real error/boot states with icons and Apple-style press
feedback and entrance animations throughout.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
140px cut off a realistic multi-line queued message (e.g. typed while a
build is in progress) behind an internal scrollbar well before it filled
the sidebar. Raised the cap to 280px so it keeps growing with the content
instead.
…-rendering

# Conflicts:
#	agent/skills/dashboard-design/SKILL.md
@venkateshsakamuri-lab
venkateshsakamuri-lab merged commit 09b9329 into main Aug 15, 2026
9 checks passed
@venkateshsakamuri-lab
venkateshsakamuri-lab deleted the dashboard-progressive-rendering branch August 15, 2026 16:04
geekypunk pushed a commit that referenced this pull request Aug 15, 2026
<!-- CURSOR_AGENT_PR_BODY_BEGIN -->
## Summary

Prepares and documents the **v1.1.0** product cut from `main` since
`v1.0.0`, and locks in a **weekly release cadence: Saturday 09:00
America/Los_Angeles**.

### Since v1.0.0
- Progressive dashboards (#57), dashboard improvements (#51)
- Multi-schema UI (#55), Performance hub (#52)
- CI CodeQL unblock (#56), cloud env caveats (#53)

### This PR
- Bump `backend/pom.xml` → `1.1.0`
- `CHANGELOG.md` + `docs/releases/RELEASE_NOTES-v1.1.0.md`
- Cadence in `docs/oss-ux/RELEASE.md`
- New `docs/oss-ux/WEEKLY_RELEASE_AUTOMATION.md` (cron + paste-ready
prompt)
- Daily triage doc clarified as optional (not the release cut)

### After merge
1. Tag `v1.1.0` on the merge commit and push →
`.github/workflows/release.yml` publishes the GitHub Release.
2. Create the Cursor Automation once from `WEEKLY_RELEASE_AUTOMATION.md`
(cannot be created via API).

### Pre-flight
`scripts/self-host/e2e-agent-check.py` → `AGENT_OK True`, `DASH_OK True`
on the current stack before this bump.
<!-- CURSOR_AGENT_PR_BODY_END -->

<div><a
href="https://cursor.com/agents/bc-8ce91e70-c67b-48c6-84b3-05bb9d06231a?cursor_ref=pr_footer&cursor_cta=open_in_web"><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-8ce91e70-c67b-48c6-84b3-05bb9d06231a&cursor_ref=pr_footer&cursor_cta=open_in_cursor"><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 <cursoragent@cursor.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants