Skip to content

fix: always notify on countdown end and add a notifications menu entry - #17

Merged
ttncode merged 1 commit into
mainfrom
fix/notification-visibility
Oct 11, 2026
Merged

ttncode merged 1 commit into
mainfrom
fix/notification-visibility

Conversation

@ttncode

@ttncode ttncode commented Oct 11, 2026

Copy link
Copy Markdown
Owner

Summary

Make notifications discoverable and dependable.

  • Notify whenever a countdown runs out, also when the timer tab is in view. Hiding them on the visible tab made the feature look broken while testing it. Ending a session with Done still does not notify, since you are already there.
  • Menu → Settings → Notifications shows the current state and does the next useful thing: Turn on notifications asks the browser, Notifications on · test sends a test notification, Notifications blocked explains how to allow them in site settings. Covers the case where the first-visit banner was missed or dismissed.
  • No hydration error from browser extensions. Extensions such as ColorZilla add attributes (cz-shortcut-listen) to <body> before React hydrates; suppressHydrationWarning on <html>/<body> stops the dev error overlay, which was also covering the notification banner.

Testing

  • Lint, typecheck, unit tests and build pass.
  • Browser with a stubbed permission state: menu shows Turn on notifications → after allowing shows Notifications on · test and the test notification fires; a 1-minute session in a visible tab produced "Focus session complete".

## Summary
Make notifications discoverable and dependable.

- **Notify whenever a countdown runs out**, also when the timer tab is in view. Hiding them on the visible tab made the feature look broken while testing it. Ending a session with **Done** still does not notify, since you are already there.
- **Menu → Settings → Notifications** shows the current state and does the next useful thing: *Turn on notifications* asks the browser, *Notifications on · test* sends a test notification, *Notifications blocked* explains how to allow them in site settings. Covers the case where the first-visit banner was missed or dismissed.
- **No hydration error from browser extensions.** Extensions such as ColorZilla add attributes (`cz-shortcut-listen`) to `<body>` before React hydrates; `suppressHydrationWarning` on `<html>`/`<body>` stops the dev error overlay, which was also covering the notification banner.

## Testing
- Lint, typecheck, unit tests and build pass.
- Browser with a stubbed permission state: menu shows *Turn on notifications* → after allowing shows *Notifications on · test* and the test notification fires; a 1-minute session in a visible tab produced "Focus session complete".
@ttncode
ttncode merged commit 91103f5 into main Oct 11, 2026
2 checks passed
@ttncode
ttncode deleted the fix/notification-visibility branch October 11, 2026 15:34
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