Skip to content

feat: notify Vercel deployments passively and only when asked - #10

Merged
enderdev01 merged 1 commit into
mainfrom
feat/quiet-vercel-notifications
Nov 4, 2026
Merged

enderdev01 merged 1 commit into
mainfrom
feat/quiet-vercel-notifications

Conversation

@enderdev01

Copy link
Copy Markdown
Owner

Linked issue

Closes #9

What and why

  • Deployment notifications are now passive: interruptionLevel = .passive and the authorization asks for .alert only, with no sound. A build finishing is ambient news, not the user's turn.
  • Adds a Notify when a Vercel deployment finishes switch next to the sound items. It is off by default and hidden until the integration is configured, so nobody is asked to decide about a feature that is not connected yet.
  • The monitor takes the policy as an injected closure (notificationsEnabled), so Infrastructure keeps reading no preferences and the App layer owns the decision.

Changes

File Change
Sources/AgentNotch/App/Preferences.swift vercelNotificationsEnabled, off by default
Sources/AgentNotch/App/StatusMenu.swift Switch in the sound group, hidden until configured
Sources/AgentNotch/App/AppDelegate.swift Injects the preference closure into the monitor
Sources/AgentNotch/Infrastructure/VercelMonitor.swift Gate on the policy, passive level, no sound
packaging/locales/*/Localizable.strings English, Spanish and German translation

How I tested it

  • swift build -c release passes
  • python3 scripts/check-strings.py passes (89 strings in 3 languages)
  • bash -n bridge/agent-notch-hook scripts/*.sh passes
  • swift test passes (XCTest suites plus 7 Swift Testing tests)
  • No secrets, personal paths or network calls added (this PR only changes an existing call's payload and adds a preference; it adds no request)

Notes

  • Notification delivery itself is not unit-tested: UNUserNotificationCenter is not mockable from this package. The gating and content changes are three lines in notify, and the platform behaviour (passive banner, no sound) is verified by macOS at runtime.
  • The remaining gap from docs/vercel-notch-ux.md is point 9: skipping the banner while the user is already looking at that deployment. That needs the monitor to know about the expanded notch, so it is intentionally left out of this PR.

A finished deployment is ambient news, not the user's turn, so it no
longer asks for sound or an interrupting banner: notifications use
interruptionLevel .passive and the authorization drops .sound.

Add a Notify when a Vercel deployment finishes switch next to the sound
items, off by default and hidden until the integration is configured.
The monitor takes the policy as an injected closure so Infrastructure
never reads preferences.
@enderdev01 enderdev01 added the enhancement New feature or request label Nov 4, 2026
@enderdev01
enderdev01 merged commit 6998019 into main Nov 4, 2026
1 check passed
@enderdev01
enderdev01 deleted the feat/quiet-vercel-notifications branch November 4, 2026 04:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Quiet Vercel deployment notifications

1 participant