feat(dashboards): extend dashboard tile exclusivity check for widgets (3/11)#60491
Conversation
7e2f21f to
39ac163
Compare
4106013 to
2e1437e
Compare
|
⏭️ Skipped snapshot commit because branch advanced to The new commit will trigger its own snapshot update workflow. If you expected this workflow to succeed: This can happen due to concurrent commits. To get a fresh workflow run, either:
|
Migration SQL ChangesHey 👋, we've detected some migrations on this PR. Here's the SQL output for each migration, make sure they make sense:
|
🔍 Migration Risk AnalysisWe've analyzed your migrations for potential risks. Summary: 1 Safe | 0 Needs Review | 0 Blocked ✅ SafeBrief or no lock, backwards compatible 📚 How to Deploy These Changes SafelyRunSQL: Follow up with VALIDATE CONSTRAINT in a later migration to check existing rows. Last updated: 2026-05-29 17:34 UTC (d7abc09) |
Query snapshots: Backend query snapshots updatedChanges: 3 snapshots (3 modified, 0 added, 0 deleted) What this means:
Next steps:
|
|
|
🎭 Playwright report · View test results →
These issues are not necessarily caused by your changes. |
da8fe9e to
f7255c9
Compare
b7d107b to
841eda7
Compare
Query snapshots: Backend query snapshots updatedChanges: 3 snapshots (3 modified, 0 added, 0 deleted) What this means:
Next steps:
|
1d1145d to
f7255c9
Compare
Query snapshots: Backend query snapshots updatedChanges: 4 snapshots (4 modified, 0 added, 0 deleted) What this means:
Next steps:
|
372bf0a to
7928546
Compare
Query snapshots: Backend query snapshots updatedChanges: 5 snapshots (5 modified, 0 added, 0 deleted) What this means:
Next steps:
|
Defer widget from DashboardTile.clean() so model validation matches the 3-way DB check constraint until PR #60491 adds the 4-way constraint. Co-authored-by: Cursor <cursoragent@cursor.com>
f523400 to
4839e6e
Compare
c88eb68 to
c4ff9e6
Compare
|
Size Change: 0 B Total Size: 80.8 MB ℹ️ View Unchanged
|
|
⏭️ Skipped snapshot commit because branch advanced to The new commit will trigger its own snapshot update workflow. If you expected this workflow to succeed: This can happen due to concurrent commits. To get a fresh workflow run, either:
|
4839e6e to
b870e77
Compare
5df277c to
5bf1f70
Compare
Co-authored-by: Cursor <cursoragent@cursor.com>
5bf1f70 to
60dab93
Compare
Query snapshots: Backend query snapshots updatedChanges: 1 snapshots (1 modified, 0 added, 0 deleted) What this means:
Next steps:
|
…le_exclusivity_check_for_widgets
Query snapshots: Backend query snapshots updatedChanges: 1 snapshots (1 modified, 0 added, 0 deleted) What this means:
Next steps:
|

Problem
A dashboard tile must reference exactly one of insight, text, button tile, or widget. The DB check constraint must be extended in a dedicated PR so we can monitor deploy impact separately from validation.
This PR is 3/10 in the dashboard widgets Graphite stack.
Depends on: PR 2 (
widget_idcolumn)Changes
0009_dashboardtile_check_4way— replaces 3-way CHECK with 4-way CHECK (NOT VALID)DashboardTileMeta check constraint in Django state to includewidgetHow did you test this code?
👉 Stay up-to-date with PostHog coding conventions for a smoother review.
Publish to changelog?
no
Docs update
skip-inkeep-docs
🤖 Agent context
NOT VALID; full enforcement happens in PR 4posthog_dashboardtile