block / block/berd

Configurable duration for in-app completion toast notifications

Open
#320 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
TypeScript
Stars
909
Forks
116
Avg merge
1d 1h
Merged PRs (30d)
156

Description

### Before filing
- [x] I searched [open and closed issues](https://github.com/block/berd/issues?q=is%3Aissue) for duplicates.
- [x] I am using a recent [release](https://github.com/block/berd/releases) and this doesn't already exist.
- [x] This is one request, not several bundled together.

### Closest existing issue
none found

### Is this new, or an improvement?
Improvement — Berd does this, but badly

### The problem, in your terms
In-app completion toast notifications (the "sonner" toasts that pop up when an agent turn finishes) auto-dismiss on a fixed, short timer. By the time I notice one and move my mouse to click it, it's already gone. There's no way to give myself more time, or to tell Berd "don't dismiss this until I act on it."

### What you do today
Nothing — I just miss the notification and have to go find the relevant session/chat manually to see what happened. It's a small tax every time, but it happens constantly since it's tied to every agent turn completion.

### What you'd like to see
A setting (e.g. under Settings → Notifications) that lets the user configure the toast's auto-dismiss duration in seconds, including an option to disable auto-dismiss entirely ("never dismiss until I close it").

### Why this belongs in Berd itself
Toast duration is UI chrome owned entirely by the app shell (sonner toast + the completion-notification hook) — it isn't something a skill, agent, or extension can reach into, since those operate on the agent/session layer, not the desktop notification UI. This has to be a core settings change.

### Non-goals
- Not asking for changes to native OS-level notifications (the Tauri desktop notification that appears outside the app window) — those are governed by the OS's own notification center settings, out of scope here.
- Not asking for per-notification-type durations (e.g. different timing for errors vs. success) — a single global duration setting is enough.

### Alternatives you considered
- Manually watching the corner of the screen — not a real fix, just a workaround.
- Relying on native OS notifications instead of in-app toasts — doesn't solve it, since those disappear too and have their own OS-level settings we don't control.

Contributor guide

Open the contributing guide

Research direction

Start with the Settings → Notifications entry point, the sonner toast setup, and the completion-notification hook described in the issue. Add a global duration setting, including a never-dismiss option, and verify that agent-completion toasts follow it without changing native OS notifications.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
desktop, frontend
Issue type
Feature
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.