Skip to content

Commit 082c8e6

Browse files
committed
fix(cli/dev): route webhook-triggered messages to run agent regardless of UI mode (#68)
1 parent 7fae61a commit 082c8e6

File tree

1 file changed

+17
-21
lines changed

1 file changed

+17
-21
lines changed

packages/blink/src/react/use-dev-mode.ts

Lines changed: 17 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -193,13 +193,13 @@ export default function useDevMode(options: UseDevModeOptions): UseDevMode {
193193
options.onEnvLoaded?.(keys);
194194
}, [env, options.onEnvLoaded]);
195195

196-
// Server
197-
const currentAgentRef = useRef<Client | undefined>(undefined);
196+
// Server - always use run agent for webhook/API handling
197+
const runAgentRef = useRef<Client | undefined>(undefined);
198198
const server = useMemo(() => {
199199
return createLocalServer({
200200
port: 0,
201201
dataDirectory: join(directory, "data"),
202-
getAgent: () => currentAgentRef.current,
202+
getAgent: () => runAgentRef.current,
203203
});
204204
}, [directory]);
205205

@@ -231,30 +231,26 @@ export default function useDevMode(options: UseDevModeOptions): UseDevMode {
231231
"00000000-0000-0000-0000-000000000000"
232232
);
233233

234-
// Update current agent ref
234+
// Update run agent ref for server/webhook handling
235+
useEffect(() => {
236+
runAgentRef.current = agent;
237+
}, [agent]);
238+
239+
// Update edit agent with user agent URL and handle cleanup
235240
useEffect(() => {
236241
if (agent) {
237242
setUserAgentUrl(agent.baseUrl);
238243
}
239244

240-
if (mode === "run") {
241-
if (agent) {
242-
currentAgentRef.current = agent;
243-
} else {
244-
currentAgentRef.current = undefined;
245-
const manager = server.getChatManager(chatId);
246-
manager?.stopStreaming();
247-
}
248-
} else if (mode === "edit") {
249-
if (editAgent) {
250-
currentAgentRef.current = editAgent;
251-
} else {
252-
currentAgentRef.current = undefined;
253-
const manager = server.getChatManager(chatId);
254-
manager?.stopStreaming();
255-
}
245+
// Stop streaming when agents become unavailable
246+
if (mode === "run" && !agent) {
247+
const manager = server.getChatManager(chatId);
248+
manager?.stopStreaming();
249+
} else if (mode === "edit" && !editAgent) {
250+
const manager = server.getChatManager(chatId);
251+
manager?.stopStreaming();
256252
}
257-
}, [agent, editAgent, mode, chatId, server]);
253+
}, [agent, editAgent, mode, chatId, server, setUserAgentUrl]);
258254

259255
// Keep track of selected options in a ref so we can access it in serializeMessage
260256
const selectedOptionsRef = useRef<UIOptions | undefined>(undefined);

0 commit comments

Comments
 (0)