Skip to content

fix(#370): keep Dashboard membership and stars consistent#380

Merged
BorisTyshkevich merged 1 commit into
mainfrom
fix/dashboard-membership-consistency-370
Jul 22, 2026
Merged

fix(#370): keep Dashboard membership and stars consistent#380
BorisTyshkevich merged 1 commit into
mainfrom
fix/dashboard-membership-consistency-370

Conversation

@BorisTyshkevich

@BorisTyshkevich BorisTyshkevich commented Jul 22, 2026

Copy link
Copy Markdown
Collaborator

What & why

Dashboard tile deletion now updates the complete workspace atomically: it removes the selected tile from explicit filter targets, derives the affected panel query’s compatibility spec.favorite flag from remaining tile instances, normalizes the active layout/fallback, and increments the Dashboard revision once through the existing commit path.

Workbench panel-query stars and favorite-first ordering now read canonical dashboard.tiles[] membership, so legacy favorite: true rows without tiles render unstarred and repair themselves with one click. Filter/setup favorites retain their independent compatibility behavior, and imports never invent tiles.

Tests cover final/multiple instances, target cleanup, validation and persistence rollback, legacy inconsistency, favorite imports, grid fallback normalization, and a real-browser Workbench star → Dashboard trash → page reload flow through the production renderers and IndexedDB repository on Chromium, Firefox, and WebKit.

Closes #370

Checklist

  • npm test passes (5,013 tests; per-file coverage gate)
  • Tests added/updated in the same change as the code
  • npm run build succeeds (single-file dist/sql.html)
  • Layers kept honest: pure membership logic in src/dashboard/application/, DOM integration in src/ui/
  • No new runtime dependency
  • CHANGELOG.md [Unreleased] updated
  • Reconciled affected tracked work (roadmap Roadmap to 1.0.0 #68 updated with PR fix(#370): keep Dashboard membership and stars consistent #380; no ADR change required)

Verification

  • npm test
  • npm run build
  • npm run test:e2e (264 passed; three unrelated Firefox navigation timeouts under full-suite saturation, all 14 affected specs passed on isolated rerun)
  • playwright test tests/e2e/dashboard-membership.spec.js (Chromium, Firefox, WebKit: 3 passed)
  • Independent read-only code and acceptance-coverage reviews: no remaining findings

Make Dashboard tiles canonical for panel-query stars and route tile deletion through one atomic membership transform that cleans filter targets, preserves multi-instance membership, normalizes layouts, and mirrors spec.favorite.

Add validation rollback, legacy/import, layout fallback, and real-browser Workbench-to-Dashboard reload coverage.

Co-Authored-By: OpenAI Codex <noreply@openai.com>

Claude-Session: unavailable (OpenAI Codex)
@BorisTyshkevich BorisTyshkevich mentioned this pull request Jul 22, 2026
77 tasks
@BorisTyshkevich
BorisTyshkevich merged commit 2364908 into main Jul 22, 2026
9 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.

Dashboard tile removal leaves saved-query star state inconsistent

1 participant