hermes-agent/apps/desktop/src/contrib
Brooklyn Nicholson 77f1e84a34 feat(desktop): plugin ctx.onDispose + self-disposing kanban bindApi
The plugin context only tracked contribution/socket disposers, so a plugin's
other side effects (store subscriptions) leaked across disable/re-enable. Add
ctx.onDispose(fn) — an arbitrary cleanup collected alongside the rest and run
on deactivate. bindApi now returns a disposer (unsubscribes its persisted-atom
listeners, closes the socket, drops the rest handle) and the kanban plugin
registers it via ctx.onDispose, so a toggle leaves nothing behind and never
duplicates listeners. Also DRYs the atom-persistence into one `persist` helper.
2026-07-30 07:18:08 -05:00
..
react feat(desktop): contribution registry — namespaced areas, keybinds, palette 2026-07-13 17:57:53 -04:00
events.ts feat(desktop): contribution registry — namespaced areas, keybinds, palette 2026-07-13 17:57:53 -04:00
index.ts feat(desktop): contribution registry — namespaced areas, keybinds, palette 2026-07-13 17:57:53 -04:00
plugin.test.ts feat(desktop): plugin ctx.onDispose + self-disposing kanban bindApi 2026-07-30 07:18:08 -05:00
plugin.ts feat(desktop): plugin ctx.onDispose + self-disposing kanban bindApi 2026-07-30 07:18:08 -05:00
plugins-store.ts feat(desktop): contribution registry — namespaced areas, keybinds, palette 2026-07-13 17:57:53 -04:00
plugins.ts feat(desktop): contribution registry — namespaced areas, keybinds, palette 2026-07-13 17:57:53 -04:00
registry.ts feat(desktop): contribution registry — namespaced areas, keybinds, palette 2026-07-13 17:57:53 -04:00
runtime-loader.test.ts fix(desktop): widen local plugin-root fix — profile-aware root + dir-watch path 2026-07-28 23:53:20 -07:00
runtime-loader.ts fix(desktop): widen local plugin-root fix — profile-aware root + dir-watch path 2026-07-28 23:53:20 -07:00
types.ts feat(desktop): contribution registry — namespaced areas, keybinds, palette 2026-07-13 17:57:53 -04:00