Repository navigation
[Bug]: “Thread settled” toast lingers too long and survives backgrounding indefinitely (nightly) #12881
Description
Activity
- changed the title
[-][Bug]: “Thread completed” toast lingers too long and survives backgrounding indefinitely[/-][+][Bug]: “Thread settled” toast lingers too long and survives backgrounding indefinitely (nightly)[/+]on Sep 21, 2026 Triage
Confirmed against current
main. This is a real web/desktop Undo toast lifetime bug, not the “Thread completed” system notification.#12848(merged today) added a Thread settled Undo toast on nightly. That is the only"Thread settled"string in the client. The issue body is empty; the title is enough.What the code does
settleThreadinapps/web/src/hooks/useThreadActions.tscallsshowUndoToast({ title: "Thread settled", … }).apps/web/src/hooks/showUndoToast.tsadds a Base UI toast withtimeout: 5_000. Docs (docs/user/thread-sidebar.md) say unpin / settle / snooze / archive each show Undo for five seconds.Base UI (
@base-ui/react@1.5.0) pauses that timer on window blur and hover. Backgrounding stops the clock. When you come back, the toast is still there. That is “survives backgrounding.” If Electron focus never reachesresumeTimers(), it stays until you dismiss it — “indefinitely.”We are also behind later Base UI timer fixes:
- mui/base-ui#4438 (resume after focus) — already in 1.4.0 / 1.5.0; Electron focus can still miss it
- mui/base-ui#4933 (1.6.0) — paused-timer bookkeeping
- mui/base-ui#5261 (1.7.0) — remaining time reset toward the full 5s on each pause/resume
T3’s own
ThreadToastVisibleAutoDismiss(dismissAfterVisibleMsinapps/web/src/components/ui/toast.tsx) also pauses unless the document is visible and focused. The undo toast does not use it.Archive / unpin / snooze use the same helper, so they can linger the same way. Mobile does not show this toast.
Not a duplicate
Work Why it is not this #12500 / #12567 Linux system “Thread completed” click does not raise the window ThreadNotificationCoordinatorIn-app “Thread completed” only while focused; background uses Notification#54 Visible-time dismiss for thread-scoped toasts, not this undo helper No open PR for linger / duration / dismiss-on-background.
Done when
On web and desktop, after Settle:
- The toast is gone after ~5s of wall-clock time while focused (or a shorter documented duration).
- Backgrounding closes it, or remaining time keeps counting so it does not survive the whole time away.
- Archive / unpin / snooze follow the same rule unless product wants settle-only.
- Sidebar docs match if the five-second rule changes.
Bumping Base UI to 1.7.x may help resume math. It does not by itself dismiss on background. Prefer a wall-clock timer or dismiss on
visibilitychange/ blur.Optional: OS (macOS / Windows / Linux) and whether this is desktop nightly vs browser. Not required to start.
Accept.
- addedacceptedfeature request acceptedfeature request acceptedbugSomething is broken or behaving incorrectly.Something is broken or behaving incorrectly.via-triageFiled through npx t3 triageFiled through npx t3 triage
on Sep 21, 2026 Fixed by #12972