a30636f817
When a background agent completes a Kanban task, the Desktop app now surfaces a native OS notification with the task summary and a one-click "Open Kanban" action. Rides the existing /events WebSocket (onEventsFrame in api.ts). A new module completion-notify.ts implements cursor-based per-board deduplication with baseline from GET /board, fail-closed on unknown baseline, and reconnection safety. The notification uses the existing host.notify() and host.navigate() SDK APIs. Files changed: - apps/desktop/src/plugins/kanban/api.ts (+8, -1) — wire completion-notify - apps/desktop/src/plugins/kanban/completion-notify.ts (+89, new) - apps/desktop/src/plugins/kanban/completion-notify.test.ts (+378, new) 19 targeted tests pass (0 fail).
Bundled plugins
Drop a <name>/plugin.{ts,tsx} here that default-exports a HermesPlugin and
it registers automatically at boot (vite glob in ../contrib/plugins.ts), with
the same inventory + live enable/disable contract as runtime plugins.
Keep this tree for real shipped plugins (and the small authoring fixtures that
dogfood the SDK). One-off demos that rebuild a core chrome piece 1:1 do not
belong here — they double the UI and confuse Settings ▸ Plugins. Publish those
in the companion
hermes-example-plugins
repo instead.
User- and agent-authored plugins load at runtime from
$HERMES_HOME/desktop-plugins/<name>/plugin.js (the disk door) — see the
hermes-desktop-plugins skill.