feat(#515): add Panel creation from Dashboard tree - #519
Merged
Conversation
Create blank Dashboard-owned panel queries and tiles atomically through the canonical layout command, with accessible tree actions, durable dialog settlement, documentation, and full unit/browser coverage. Co-Authored-By: OpenAI Codex <noreply@openai.com> Claude-Session: unavailable (OpenAI Codex)
18 tasks
Unlock metadata dialogs after rejected mutations and distinguish route-stale durable commits from both failures and route-current success settlement. Co-Authored-By: OpenAI Codex <noreply@openai.com> Claude-Session: unavailable (OpenAI Codex)
Avoid rerendering an active Dashboard before the Add dialog closes, and exercise the complete reveal/open/focus lifecycle from the Dashboard surface. Co-Authored-By: OpenAI Codex <noreply@openai.com> Claude-Session: unavailable (OpenAI Codex)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What & why
Closes #515.
Adds an accessible plus action before each Dashboard row's edit/delete actions. The shared two-field dialog atomically creates a blank panel-role query and its tile through the canonical Dashboard add command; successful creation reveals the new Panel, opens its clean linked tab, and focuses SQL. Ambiguous Dashboards and Dashboards at the 100-panel limit expose the action as unavailable.
Creation revalidates committed workspace state at dequeue time, keeps Library queries untouched, and locks dismissal while the durable Add is in flight so the UI cannot imply cancellation after persistence begins. Failures keep the dialog values and show a diagnostic.
Tests cover the pure candidate, application mutation service, tree model and dialog lifecycle, plus full Chromium/WebKit keyboard and workbench behavior. README, ADR-0003, and the Unreleased changelog are updated.
Checklist
npm testpasses (the per-file coverage gate is non-negotiable)npm run buildsucceeds (single-filedist/sql.html)src/core/, network insrc/net/(injected fetch), DOM insrc/ui/CHANGELOG.md([Unreleased]) updated if behavior or the deployed surface changed