Skip to content

feat(#515): add Panel creation from Dashboard tree - #519

Merged
BorisTyshkevich merged 3 commits into
mainfrom
feat/add-panel-dashboard-tree-515
Jul 28, 2026
Merged

feat(#515): add Panel creation from Dashboard tree#519
BorisTyshkevich merged 3 commits into
mainfrom
feat/add-panel-dashboard-tree-515

Conversation

@BorisTyshkevich

Copy link
Copy Markdown
Collaborator

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 test passes (the per-file coverage gate is non-negotiable)
  • Tests added/updated in the same change as the code
  • npm run build succeeds (single-file dist/sql.html)
  • Layers kept honest: pure logic in src/core/, network in src/net/ (injected fetch), DOM in src/ui/
  • No new runtime dependency (or it's a deliberate, justified addition — see CONTRIBUTING)
  • README / CHANGELOG.md ([Unreleased]) updated if behavior or the deployed surface changed
  • Reconciled affected tracked work (roadmap Roadmap to 1.0.0 #68, the issue body, ADR/CHANGELOG) if this change reshaped it

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)
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)
@BorisTyshkevich
BorisTyshkevich merged commit 813fefb into main Jul 28, 2026
7 checks passed
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.

Add Panel creation from the Dashboard tree

1 participant