Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

A tile whose owned query is missing or shared cannot be removed from any surface

Open
#542 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
35/100
Issue type
Feature
Clarity
Needs clarification
Activity status
Quiet
Tech stack
typescript
Domain
frontend

Research direction

Start in src/dashboard/application/dashboard-removal.ts:128-131, then trace the Dashboards-tree trash and tile-header Remove tile routes, including the existing remove-tile command. Decide which documented option applies for missing queries while preserving the refusal for shared queries. Done means a chosen removal path works for dangling tiles from the relevant surface without deleting a query.

Written by the indexing model from the issue text.

Description

inbox

Problem

removeDashboardPanel proves ownership before deleting anything and refuses
ownership-unproven when the tile's queryId names no query in
workspace.queries, or names one with more than one owner
(src/dashboard/application/dashboard-removal.ts:128-131). Both the Dashboards
tree and — since #537 — the tile header route their delete through it.

That is the correct fail-closed behaviour #494/#537 specify. The consequence is
that a tile whose query is missing (a dangling queryId) or shared by a
second tile now has no removal path from any surface:

  • the Dashboards-tree trash is disabled with a reason;
  • the tile header's → Remove tile row is disabled with the same reason;
  • and #537 deleted the last escape hatch — the tile head's old document-only
    remove-tile dispatch, which removed such a tile without touching queries.

How to reach it

A queries-only bundle import (#448) or a corrupt aggregate can produce a tile
pointing at an id no query carries. A legacy or hand-edited workspace can carry
two tiles referencing one query, which #427 forbids reaching but does not
retroactively repair.

Why it was deferred

#537's acceptance criteria require exactly this fail-closed behaviour, so the
alternative belongs in its own decision rather than smuggled into that change.

Options

  1. A separate, explicitly-labelled "Remove tile only" action, offered only
    when removal is refused because the query is missing — a dangling reference has
    no second resource to be atomic about. Would keep the remove-tile command,
    which currently has no UI dispatcher left.
  2. Give removeDashboardPanel an explicit tile-only arm for the missing-query
    case, so one path still covers it.
  3. Accept it, and handle these workspaces through Import/Replace only.

Option 1 or 2 seems right for the missing-query case; a shared query arguably
should stay unremovable, since either tile still renders it.

Dominant language
TypeScript
Stars
8
Forks
2
Avg merge
1h 34m
Merged PRs (30d)
6

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from Altinity/altinity-sql-browser

All issues in Altinity/altinity-sql-browser

Similar issues

More TypeScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.