seref
5d24594ab3
feat(desktop): expose native OS notifications to plugins via ctx.notifyNative
...
Desktop plugins can toast in-app (host.notify) but have no sanctioned way to
reach the OS notification pipeline the app's own approval/turn alerts use, so
a plugin surfacing a genuinely notable background event (e.g. a discovery
plugin finding a match) stays invisible once the user steps away from Hermes.
Add a curated per-plugin door instead of exporting the raw dispatcher:
- ctx.notifyNative({ title, body?, silent? }) on PluginContext — attributed
to the plugin id, routed through dispatchNativeNotification so every
existing gate applies (master + per-kind prefs, post-connect baseline,
away-from-app gating, throttle).
- New 'plugin' native-notification kind with its own Settings ▸ Notifications
toggle (default on), so users silence plugins without losing app alerts.
- New optional `tag` discriminator on the notify payload keys the renderer
throttle and main-process cross-window dedupe per plugin, so two plugins
can't collapse each other's session-less notifications.
Consumer: the Index Network desktop plugin wants background opportunity
alerts; anything in ~/.hermes/desktop-plugins gets the same door.
2026-08-04 11:28:20 -06:00
..
2026-07-26 16:12:14 -05:00
2026-07-26 16:12:14 -05:00
2026-07-13 17:22:17 -04:00
2026-07-13 17:22:17 -04:00
2026-07-13 17:22:17 -04:00
2026-07-16 14:55:58 -04:00
2026-07-16 14:53:11 -04:00
2026-08-02 03:33:09 +00:00
2026-08-01 20:09:35 -04:00
2026-07-26 04:11:26 +00:00
2026-07-25 21:52:26 -05:00
2026-07-29 13:59:11 +05:30
2026-07-29 16:52:53 +05:30
2026-07-13 17:22:17 -04:00
2026-07-13 17:22:17 -04:00
2026-07-25 21:52:45 -05:00
2026-07-25 21:52:45 -05:00
2026-07-13 17:22:17 -04:00
2026-07-08 16:24:16 -07:00
2026-07-31 22:33:53 -07:00
2026-08-01 20:45:40 +00:00
2026-07-19 23:42:14 +00:00
2026-07-19 23:42:14 +00:00
2026-07-20 23:01:49 +02:00
2026-07-24 12:55:06 -05:00
2026-08-01 14:30:16 -07:00
2026-08-01 14:30:16 -07:00
2026-07-27 13:41:59 -05:00
2026-07-27 13:41:59 -05:00
2026-07-13 17:22:17 -04:00
2026-07-08 16:24:16 -07:00
2026-07-16 19:57:39 +00:00
2026-07-20 23:01:49 +02:00
2026-07-20 23:01:49 +02:00
2026-07-13 17:22:17 -04:00
2026-07-13 17:22:17 -04:00
2026-07-27 23:52:33 -05:00
2026-07-27 23:52:33 -05:00
2026-07-08 16:24:16 -07:00
2026-07-28 13:40:44 -05:00
2026-07-28 13:40:44 -05:00
2026-07-20 18:33:14 -05:00
2026-07-20 18:36:05 -05:00
2026-07-23 17:59:58 -07:00
2026-07-23 17:59:58 -07:00
2026-07-27 02:52:53 +00:00
2026-07-27 02:52:53 +00:00
2026-07-24 12:55:06 -05:00
2026-07-24 12:55:06 -05:00
2026-07-24 12:55:06 -05:00
2026-07-13 17:22:17 -04:00
2026-07-12 05:32:54 -04:00
2026-07-13 17:22:17 -04:00
2026-07-13 17:22:17 -04:00
2026-07-21 14:28:28 +00:00
2026-07-21 14:28:28 +00:00
2026-08-03 00:08:30 +05:30
2026-08-03 00:08:30 +05:30
2026-07-13 17:22:17 -04:00
2026-07-08 16:24:16 -07:00
2026-07-15 21:40:56 +00:00
2026-07-16 19:57:39 +00:00
2026-07-28 19:20:14 -05:00
2026-07-28 19:20:14 -05:00
2026-07-13 17:22:17 -04:00
2026-07-31 00:38:11 -05:00
2026-07-16 19:57:39 +00:00
2026-07-16 15:33:38 -04:00
2026-08-04 11:28:20 -06:00
2026-07-25 21:52:40 -05:00
2026-07-25 21:52:40 -05:00
2026-07-22 16:30:14 +00:00
2026-07-22 16:30:14 +00:00
2026-07-31 16:22:58 +00:00
2026-07-31 10:16:21 -04:00
2026-07-31 10:16:21 -04:00
2026-07-31 10:16:21 -04:00
2026-07-13 17:22:17 -04:00
2026-07-08 16:24:16 -07:00
2026-07-20 11:50:22 -05:00
2026-07-20 11:50:22 -05:00
2026-08-01 14:30:11 -07:00
2026-07-24 12:55:06 -05:00
2026-07-31 18:54:27 +00:00
2026-07-24 12:55:06 -05:00
2026-07-13 17:22:17 -04:00
2026-07-13 17:22:17 -04:00
2026-07-27 13:41:56 -05:00
2026-07-27 13:41:56 -05:00
2026-07-26 17:48:19 -07:00
2026-07-31 18:54:27 +00:00
2026-07-27 15:47:57 -05:00
2026-07-27 15:47:57 -05:00
2026-08-02 01:23:45 +00:00
2026-08-01 14:30:16 -07:00
2026-07-27 13:41:59 -05:00
2026-07-27 13:41:59 -05:00
2026-07-31 00:38:11 -05:00
2026-07-31 00:38:11 -05:00
2026-07-25 15:19:29 -04:00
2026-07-25 15:19:29 -04:00
2026-08-01 14:30:16 -07:00
2026-08-01 14:30:16 -07:00
2026-07-20 23:01:49 +02:00
2026-07-20 23:01:49 +02:00
2026-07-20 23:01:49 +02:00
2026-07-20 23:01:49 +02:00
2026-07-31 00:38:11 -05:00
2026-07-31 00:38:11 -05:00
2026-07-13 17:22:17 -04:00
2026-07-08 16:24:16 -07:00
2026-07-13 17:22:17 -04:00
2026-07-08 16:24:16 -07:00
2026-07-28 23:53:25 -07:00
2026-07-28 23:53:25 -07:00
2026-08-01 10:47:45 -07:00
2026-08-01 10:47:45 -07:00
2026-07-13 17:22:17 -04:00
2026-07-08 16:24:16 -07:00
2026-07-13 17:22:17 -04:00
2026-07-13 17:22:17 -04:00
2026-07-13 17:22:17 -04:00
2026-07-13 17:22:17 -04:00
2026-08-01 20:43:01 -05:00
2026-08-01 20:43:01 -05:00
2026-07-28 21:55:38 +00:00
2026-07-28 21:55:38 +00:00
2026-07-13 17:22:17 -04:00
2026-07-08 16:24:16 -07:00
2026-08-01 14:30:11 -07:00
2026-08-01 14:30:11 -07:00
2026-08-01 14:30:11 -07:00
2026-07-13 17:22:17 -04:00
2026-07-13 17:22:17 -04:00
2026-07-13 17:22:17 -04:00
2026-07-13 17:22:17 -04:00
2026-07-15 21:40:56 +00:00
2026-07-15 21:40:56 +00:00
2026-08-01 14:30:16 -07:00
2026-08-01 14:30:16 -07:00
2026-07-20 23:01:49 +02:00
2026-07-18 02:26:19 -07:00
2026-07-18 02:26:19 -07:00
2026-07-17 18:55:34 -04:00
2026-07-18 04:56:56 +00:00
2026-07-13 17:22:17 -04:00
2026-07-13 17:22:17 -04:00
2026-07-13 17:22:17 -04:00
2026-07-08 16:24:16 -07:00
2026-07-13 17:22:17 -04:00
2026-07-08 16:24:16 -07:00
2026-07-15 21:40:56 +00:00
2026-07-15 21:40:56 +00:00
2026-08-01 14:30:11 -07:00
2026-08-01 14:30:11 -07:00