diff --git a/packages/webui/src/chat.mjs b/packages/webui/src/chat.mjs index 1b0a41dce..311048755 100644 --- a/packages/webui/src/chat.mjs +++ b/packages/webui/src/chat.mjs @@ -13,9 +13,10 @@ import { BusReadError } from './bus.mjs'; export function createChat({ call, owner = null }) { if (typeof call !== 'function') throw new TypeError('chat needs a bus transport function'); if (owner !== null && typeof owner !== 'function') throw new TypeError('chat owner must be a bus transport function'); - const dispatch = createChannelCaller({ name: 'webui', call: owner === null ? call : (verb, args) => verb === 'plugins' ? owner('plugins', {}) : call(verb, args) }); + let last = {}; + const dispatch = createChannelCaller({ name: 'webui', call: owner === null ? call : (verb, args) => verb === 'plugins' ? owner('plugins', last) : call(verb, args) }); const channel = async (verb, args) => { - try { return await dispatch(verb, args); } + try { last = args; return await dispatch(verb, args); } catch (err) { if (err instanceof PluginError) throw new BusReadError(err.code, err.message); throw err;