Repository navigation
[Feature]: Delete settled threads from the Sidebar V2 settled shelf #6823
inayayousfi
started this conversation in
Ideas
Replies: 1 comment
|
I hit the same problem and took a reversible approach: archive instead of delete. The PR (#12703) was closed pending approval, so I'd like to propose it here. Interactive demo: https://quicksaver-piz.vercel.app/t3code/sidebar-v2-archive-controls What it adds to the default sidebar
Delete stays in the context menu, so the destructive path stays deliberate. This also works as the manual counterpart to the auto-archive proposed in #15076. Scope I'm asking approval for: the per-row archive button and Archive all on the settled shelf. I'm happy to narrow it to just the per-row button first if that's easier to approve. |
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Before submitting
Area
apps/web
Problem or use case
The Sidebar V2 settled shelf only grows. There is no way to clear it.
Deleting settled threads today is either right-click → Delete, one thread at a time, or ctrl/shift multi-select → right-click → Delete. The second one is worse than it sounds because the settled tail is paged behind "Show more" (
SETTLED_TAIL_INITIAL_COUNT), so I have to expand the tail before I can even select the threads I want gone.Most of my settled threads are one-shot throwaways — a quick question, a small fix, done. I never want to see them again, and there is no low-friction way to say so.
The affordances are already almost there and just do not include delete:
apps/web/src/components/SidebarV2.tsx:815-823).data-testid="sidebar-v2-settled-shelf-toggle",SidebarV2.tsx:2505-2525) only expands and collapses.Proposed solution
1. Per row. Add a Delete (trash) hover action on slim settled rows, alongside the existing Un-settle button. Same code path as the context menu's
deletecase (SidebarV2.tsx:2080-2105): honors theconfirmThreadDeleteclient setting, same failure toast.2. Per shelf. Add a "Delete all settled" action on the settled shelf header. Scoped to the settled threads in the current partition — i.e. after the active project/scope filter — not every settled thread across every environment. It should include threads still hidden behind "Show more", with the count named in the confirm text so that is unambiguous.
Reuse the batch loop from the multi-select delete handler (
SidebarV2.tsx:1915-1953) rather than writing a second one, so orphaned-worktree detection keeps working through the incrementally growndeletedThreadKeysset.3. Always confirm the bulk action, even when
confirmThreadDeleteis off. That setting is a per-thread preference; clearing a whole shelf is a different blast radius.Why this matters
Settle is the "I am done with this" gesture, and right now it is a dead end — the thread stays on disk and on the shelf forever. Making the shelf clearable turns settle into a real completion step instead of a visual mute, and it keeps the sidebar honest for anyone who runs many short threads a day.
Smallest useful scope
Just the header "Delete all settled" action. Per-thread delete already exists in the context menu, so the header is the piece that removes the O(n) interaction. The per-row hover button is a convenience on top and can land separately or never.
Alternatives considered
thread.archivedAt === nullfilter atSidebarV2.tsx:1380), so a "Archive all settled" would clear the shelf without destroying history. If maintainers prefer archive as the bulk verb here, that solves my problem equally well — I care about the shelf being clearable in one action, not specifically about destruction. There is no bulk archive today either.Risks or tradeoffs
sidebarAutoSettleAfterDaysof inactivity, default 3. So the shelf is largely age-based, not intent-based — it contains work the user never explicitly finished with. A naive "Delete all settled" would take those too. Two ways out: name the exact count in the confirm and let the user decide, or restrict the bulk action to explicitly settled threads (settledOverride === "settled") and leave auto-settled ones alone. I lean towards the first, but this is the call that needs a maintainer decision before anyone writes code.Examples or references
Contribution
All reactions