feat(web): 聊天请求携带行为模式 mode(A3) — useChat 读当前 mode 经 REST 发送
- api.ts chatStream 新增可选 mode,空则不写键(后端回落chat) - useChat.ts 发送时带上 useModeStore 当前 mode,使非chat模式消息在Web端真正落库 - 修正 docblock(移除虚构的WS chat回退描述)
This commit is contained in:
1 parent
b686d5fec8
commit
747b9ad414
2 files changed
+19
-10
No files matched your search
@@ -8,13 +8,13 @@ import { now } from "./util";
|
||||
|
||||
/** Drives one user turn: push the user bubble, blanket a streaming assistant
|
||||
* bubble, trigger the backend loop over REST (`stream:true`), and let the WS
|
||||
* stream render into that bubble. Falls back to the WS `chat` channel when the
|
||||
* REST trigger fails so the demo still works without a wired loop.
|
||||
* stream render into that bubble. If the REST trigger fails, the failure is
|
||||
* surfaced inline on the bubble rather than left streaming forever.
|
||||
*
|
||||
* The behavior mode is NOT chosen by the user at send time — the agent / backend
|
||||
* hot-switches it (design/01 §3), and each message carries its own mode, so the
|
||||
* bubble renders per that message's mode. Until the backend advertises a
|
||||
* per-message mode, a new assistant bubble defaults to the current UI mode. */
|
||||
* The behavior mode is chosen by the agent / backend hot-switch (design/01 §3);
|
||||
* each message carries the mode in effect when the turn is sent, and the bubble
|
||||
* renders per that message's mode. We read the current UI mode here and pass it
|
||||
* on the turn so the backend persists it alongside the message (A3). */
|
||||
export function useSendChat(): {
|
||||
send: (text: string, image?: string) => Promise<void>;
|
||||
sending: boolean;
|
||||
@@ -46,7 +46,7 @@ export function useSendChat(): {
|
||||
beginAssistant(mode, clientId);
|
||||
|
||||
try {
|
||||
await chatStream(sessionId, prompt, image);
|
||||
await chatStream(sessionId, prompt, image, mode);
|
||||
} catch (err: unknown) {
|
||||
// Backend loop not wired or gateway unreachable: show the failure inline
|
||||
// rather than leaving a permanently-streaming bubble.
|
||||
|
||||
Reference in new issue
Block a user