pingdotgg / pingdotgg/t3code

[Bug]: Hover-only "Discard draft" X in the sidebar deletes the draft on one click, no confirmation or undo

Open
#12,735 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

accepted bug via-triage
Dominant language
TypeScript
Stars
23k
Forks
5.9k
Avg merge
11h 14m
Merged PRs (30d)
357

Description

Area

apps/web (sidebar, shared with the desktop app)

Summary

Each thread row with an unsent draft shows an X ("Discard draft") on hover, at the right edge next to Snooze and Settle. One click on it deletes the draft text and attachments. There is no confirmation, no undo, no toast. The X only appears on hover, so the first time you learn it exists is when your message is gone. I have lost drafts to it several times already.

Steps to reproduce
  1. Open a thread, type a message in the composer, do not send.
  2. Open another thread. The first row now shows the amber draft marker.
  3. Move the pointer onto the first row to go back to it. The hover strip at the right edge shows X, Snooze and Settle over the time/status label.
  4. Click while the pointer is on the X.
Expected behavior

A destructive action on user text needs a guard: a confirmation before, or an undo (toast) after. Alternatively the X should not sit inside the row's own click target, so a click meant to open the thread cannot delete its draft.

Actual behavior

The draft is cleared at once and the row loses its marker. Nothing brings the text back. The standalone new-thread draft rows above the pinned block have the same X with the same result.

Hover state right before the click. The X sits where the pointer lands when going back to the thread:

Sidebar thread row on hover: Discard draft X next to Snooze and Settle
Source

Checked at main @ 7445aa733.

Relation to existing issues
  • Discussion #10349 (Ideas, 2026-09-06) reports the same loss and asks for removal or a confirmation. No response so far. Filing as a bug because the outcome is silent loss of typed text, the same class as #12569 (accepted) and #8963, not a feature proposal.
Impact

Major degradation or frequent failure

Version or commit

Desktop 0.0.42, source checked at main @ 7445aa733

Environment

Windows 11 Home 10.0.26200, T3 Code desktop (Alpha), provider Claude Code

Workaround

None after the click. Prevention only: click the left part of the row, or copy the text before leaving the thread.

lovely composed in pair with Claude Fable 5.1 in Claude Code

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.

Research direction

Start in apps/web/src/components/Sidebar.tsx at the thread-row hover controls and the discard handlers around the referenced lines; reproduce the click with both thread and standalone draft rows. Review how the row click, upload release, composer clearing, and clearDraftThread paths interact. Done means discarding a draft cannot silently lose its text or attachments, with either confirmation or undo behavior while preserving intended row navigation.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
desktop, frontend
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
68/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.