Skip to content

fix: give error toasts a 30s auto-dismiss instead of 1.6s - #508

Merged
BorisTyshkevich merged 3 commits into
mainfrom
fix/error-toast-duration
Jul 27, 2026
Merged

fix: give error toasts a 30s auto-dismiss instead of 1.6s#508
BorisTyshkevich merged 3 commits into
mainfrom
fix/error-toast-duration

Conversation

@BorisTyshkevich

Copy link
Copy Markdown
Collaborator

Summary

  • flashToast used the same 1.6s auto-dismiss for every message, so a failed open/import/save (the app marks these with a leading ) could vanish before it was read, let alone copied for a bug report.
  • Error-prefixed toasts (✕ …) now default to a 30s auto-dismiss; plain informational/success toasts are unchanged (still 1.6s). An explicit duration passed by the caller still wins over either default.
  • Toasts remain click-to-dismiss, so a long-lived error toast doesn't block anything — it just survives long enough to actually read.

Test plan

  • npx tsc --noEmit
  • TZ=America/New_York npx vitest run --config tests/vitest.config.ts --coverage (5938/5938 passing, 100% per-file thresholds held)
  • node build/check-boundaries.mjs

🤖 Generated with Claude Code

https://claude.ai/code/session_011sMwR4BHM85MExSBYXzTYj

BorisTyshkevich and others added 3 commits July 27, 2026 17:27
flashToast used the same short default duration for every message, so a
failed open/import/save (marked with the app's established '✕ ' prefix)
could disappear before the user finished reading it, let alone copied the
text for a bug report. Error-prefixed toasts now default to 30s; plain
informational toasts are unchanged, and an explicit `duration` still
overrides either default.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011sMwR4BHM85MExSBYXzTYj
Most panel queries declare their from/to (or start/end, from_time/to_time,
start_time/end_time) variables directly in a required WHERE clause, never
behind an optional /*[ ... ]*/ block, so a never-persisted time-range bound
starting genuinely empty blocked every one of that pair's panels on first
load until the user set a range by hand.

A resolvable time-range pair with no committed value yet now seeds to a
real, active "-1d" -> "now" range instead. Any already-persisted value
(even a deliberately cleared one) is untouched -- this only changes the
very first, never-seeded state.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011sMwR4BHM85MExSBYXzTYj
@BorisTyshkevich
BorisTyshkevich merged commit 0b65248 into main Jul 27, 2026
7 checks passed
@BorisTyshkevich
BorisTyshkevich deleted the fix/error-toast-duration branch July 27, 2026 16:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant