5871d750bf
The room-level test is the reported defect: two composer sends, two threads, and neither backend transcript may contain the other thread's prompt. Proven red on the unfixed code — both threads resolved to sid-research-1. Also pins same-thread continuity, the pre-thread adoption (first thread continues the old conversation, later threads do not), and that the member half of the key stays source-qualified so a remote `research` and a local `research` never share a session. Co-authored-by: Wenfengcheng <30426178+Wenfengcheng@users.noreply.github.com>
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 Capabilities ▸ 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.