Skip to content

Releases: EronWright/gh-notifier

v0.4.2

Choose a tag to compare

@EronWright EronWright released this 20 May 18:25
c05824d

What's new

  • Fresh-notification badge. Items whose latest activity is within the last hour now show a system-rendered "new" pill on the trailing edge of their dropdown row, so you can tell at a glance which threads are new to your eyes versus older items still sitting in the inbox. Requires macOS 14+ (the badge uses NSMenuItemBadge); on macOS 12/13 the feature is silently inoperative.

Full Changelog: v0.4.1...v0.4.2

v0.4.1

Choose a tag to compare

@EronWright EronWright released this 20 May 15:31
1bdcb07

What's new

  • Notification Center stays in sync with the dropdown. Clicking an item, ⌥-marking it done, or using Mark All as Read now also dismisses the corresponding banner(s) from Notification Center. Previously banners from prior polls could linger after the menu entry was already gone.

Full Changelog: v0.4.0...v0.4.1

v0.4.0

Choose a tag to compare

@EronWright EronWright released this 20 May 00:37
240b7cb

What's new

  • Grouped sections are back. The dropdown again organizes unread items into Assigned / Mentioned / Review requested / Participating, with a per-section count and a "→ N more on GitHub" overflow link. Busy inboxes (e.g. 49 review requests) no longer drown out items needing attention.
  • Mark All as Read. New confirmation-gated menu item that clears every unread notification on the account via PUT /notifications. Optimistic local clear with a follow-up refresh reconciles on failure. Note: the bulk endpoint is account-wide and clears Watching items too, which the dialog spells out.
  • Hold ⌥ to mark done hint surfaces on the first section header so the alternate row action is discoverable without an extra menu line.

Fixes

  • Resolved a hang on large unread inboxes — gh api notifications could overflow the 64 KiB pipe buffer before waitUntilExit(), deadlocking the fetch. Stdout/stderr are now drained before the wait.

Full Changelog: v0.3.0...v0.4.0

v0.3.0

Choose a tag to compare

@EronWright EronWright released this 17 May 01:41
4f130e6

What's new

  • Server-side Participating filter. The fetcher now passes participating=true to gh api notifications, so GitHub's own definition of "Participating" (everything except whole-repo Watching) is the authoritative scope. Vocabulary stays aligned with the GH docs and the web UI's filter sidebar.
  • GH-reason labels on every row. Each item shows GitHub's own per-thread reason ("Assigned", "Review requested", "Mention", "Author", "Commented", "State change", "CI activity", …) so the dropdown reads the same way as github.com/notifications. Earlier heuristics for inferring the trigger event were dropped — the REST notifications API doesn't carry event data, and every workaround introduced its own failure modes.
  • Default banner cap raised from 5 to 15 per poll, so coming back from a few hours away doesn't truncate the first wave of notifications.
  • Drop redundant banner prefix. Banner titles no longer repeat the app name — the system already shows the GH Notifier icon.

Note: v0.3 introduced a flat (un-grouped) dropdown layout. Busy inboxes proved too noisy in that form, so v0.4 restored grouped sections while keeping every other v0.3 improvement.

Fixes

  • Re-banner threads that re-enter the unread inbox. GitHub reuses thread IDs across a PR/issue's lifetime, so a thread that was cleared and later got a new comment was being silently swallowed by the seen-IDs dedup. The dedup ring is now pruned each poll against the current unread set, so follow-ups banner again as expected.

Full Changelog: v0.2.1...v0.3.0

v0.2.1

Choose a tag to compare

@EronWright EronWright released this 15 May 16:11
84f309b

What's new

  • Launch at login toggle in Settings (macOS 13+). Uses SMAppService.mainApp so the toggle survives bundle moves and reflects the real registered state on every Settings open.

Full Changelog: v0.2.0...v0.2.1

v0.2.0

Choose a tag to compare

@EronWright EronWright released this 15 May 15:28
925053f

What's new

  • Settings dialog. New "Settings…" menu item (⌘,) exposes the three knobs that previously required a rebuild: poll interval, banners per poll cap, and max pages fetched on each poll. Values are persisted in UserDefaults; AppDelegate observes UserDefaults.didChangeNotification so the poll timer reschedules without restart.
  • README refresh. Restructured around "download a release first, build from source second"; added a screenshots section, fixed the runtime requirements list, updated the source layout, and added a GitHub Sponsors badge.

Fixes

  • Release script no longer fights with the remote. Now runs git pull --rebase origin main before git push, so a stray commit on origin doesn't fail the push mid-release.

Full Changelog: v0.1.2...v0.2.0

v0.1.2

Choose a tag to compare

@EronWright EronWright released this 15 May 14:09
c1398b8

What's new

  • state_change notifications now surface in the Participating section. A PR or issue being closed/merged/reopened generates a state_change reason from GitHub; previously these were dropped on the floor by the reason filter. They now appear alongside Author / Comment / Manual in the Participating group.

Full Changelog: v0.1.1...v0.1.2

v0.1.1

Choose a tag to compare

@EronWright EronWright released this 15 May 04:56
d7e0cb6

What's new

  • Custom app icon. GitHub-dark rounded square with a bell silhouette, rendered from scratch by a Swift + AppKit script (scripts/make-icon.sh) so it can be regenerated for tweaks.
  • Banners now display the GH Notifier icon reliably. Notification Center had been caching a stale usernoted icon thanks to ad-hoc signature churn; switching to a stable self-signed certificate plus a fresh bundle ID (com.eronwright.gh-notifier) resolved the cache lookup and the icon is finally sticky.

Full Changelog: v0.1.0...v0.1.1

v0.1.0

Choose a tag to compare

@EronWright EronWright released this 14 May 23:07
c86219f

What's new

Initial release.

GH Notifier is a macOS menu bar app (Swift, SwiftPM, macOS 12+) that polls GitHub notifications via the gh CLI every 15 minutes and surfaces unread items in a status-bar dropdown. New items also fire native Notification Center banners (capped per poll to avoid floods after long absences).

  • Menu bar status item with an unread count badge.
  • Notification Center banners for new threads, with click-through to the underlying URL.
  • Dropdown grouped by GitHub reason — Assigned, Mentioned, Review requested, Participating — each with a per-section overflow link to github.com/notifications.
  • Mark as read by clicking a dropdown row; mark as done (archive) by ⌥-clicking.
  • Universal binary releases (arm64 + x86_64), code-signed for stable Notification Center delivery.

Requirements: macOS 12+, gh CLI installed and authenticated.

Full Changelog: https://github.com/EronWright/gh-notifier/commits/v0.1.0