Repository navigation
Replies: 1 comment 2 replies
|
Your co-hosted fork demonstrates that this is possible, but it doesn’t establish a supported public contract. I’d treat it as experimental until the maintainers confirm session ownership, interaction arbitration, tool scoping, and hot-reload semantics. For now, I’d keep the integration behind an adapter and add regression tests for simultaneous approvals, reconnect/resume, and plugin disposal. Separate hosts remain the safer isolation boundary, but they won’t give you shared session continuity. |
2 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Question
Is one dsh host with multiple frontends (e.g. the Web UI and an IM bot) a supported architecture, or is the intended shape one host per frontend?
I am not asking for a feature commitment — a clear "one host per frontend is the contract" is a useful answer. I would like to know which way the architecture is pointing before investing further in a fork.
Why I am asking
I use the Web UI daily and also want Feishu (via the
@dsh-feishu/dsh-feishubundle). The documented pattern runs the Feishu bundle in its own profile, i.e. a second host with its own session store. That works, but the two hosts cannot see each other's sessions: a conversation started in Feishu is invisible in the Web UI, cross-frontend/resumedoes not exist, and approvals/questions are pending only on the side that raised them.For a personal assistant, "same conversation from either frontend" is the whole point, so I built a local fork of the Feishu plugin that mounts into the
webprofile and shares the host. It works (shared session map, broadcast approvals with first-answer-wins, external-turn mirroring, tool scoping, log de-duplication), but every one of those behaviours is a guess about a contract that I could not find documented.What a contract would need to define
If N frontends per host is supported (or planned), these are the questions a frontend plugin has to answer, and today each plugin answers them differently:
ctx"?tools.restricton agents not bound to a chat)?Trade-offs I can see
Note on terminology
By "frontend" I mean the thing a plugin like
@dsh-feishu/dsh-feishuis: the UI binding for a conversation (Web page, IM bot). I am awaresurfacealready has a different, specific meaning in the session subsystem (the ordered projection over the event log), so I am avoiding that word here.What I will do with the answer
@dsh-feishu/dsh-feishu.All reactions