feat: notification_all_screens config + event-driven overlay dismissal#416
Conversation
|
@ctsstc is attempting to deploy a commit to the Gary Sheng's projects Team on Vercel. A member of the Team first needs to authorize it. |
99bd439 to
0db2652
Compare
|
Thanks for this — the One issue blocking merge: test 537 in Fix needed in # Update the comment and offset to account for the new all_screens arg at the end
# Fields from end: ... ide_pid session_tty notif_position notify_type all_screens
# ide_pid is NF-4 (or adjust to use a fixed field index)
ide_pid=$(tail -1 "$TEST_DIR/overlay.log" | awk '{print $(NF-4)}')The Windows Once the peon.bats fix lands, this is ready to merge. |
9942fbe to
37d76b2
Compare
|
The Windows CI failure ("respects custom debug_retention_days from config") was a pre-existing flaky test caused by hardcoded dates — not related to your changes. It was just fixed in #420 which merged moments ago. Could you rebase your branch onto the latest main? That should bring in the fix and get Windows CI to green. The feature logic itself looks solid — looking forward to getting this merged once CI is clean. |
Add notification_all_screens config option (default: false). When true, overlay notifications appear on all connected displays simultaneously, coordinated via NSDistributedNotificationCenter — no polling or temp files needed. Clicking any instance dismisses all siblings instantly. - config.json: add notification_all_screens key with auto-migration - peon.sh: read/export NOTIF_ALL_SCREENS, config migration - notify.sh: spawn one overlay per screen in all-screens mode - mac-overlay*.js: replace file-based IPC with distributed notifications Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add BATS tests for the notification_all_screens feature: - config migration adds the key when missing - config migration preserves existing value - overlay receives false by default (single-screen mode) - overlay receives true when all_screens config is enabled
Default overlay always showed on all screens, while themed overlays (glass/jarvis/sakura) only showed on the focused screen. The migration now checks overlay_theme to infer the right default so existing behavior is preserved on upgrade.
The notification_all_screens arg appended to overlay calls shifted ide_pid from NF-2 to NF-4 in the overlay.log output.
37d76b2 to
61a1a94
Compare
|
@garysheng looks good to go now |
Summary
Add a new config option to display notifications on all screens or only the active screen.
Reason
Themes only show on the active screen.
The default theme/no theme selected shows the notification on all screens.
Currently there's no parity across the system, this brings it all together and lets the user choose behavior.
Changes
notification_all_screens