优化: 聊天体验批与Web规范合规
This commit is contained in:
@@ -14,7 +14,7 @@
|
||||
//! - drainQueue 由 handleEvent(AiCompleted) 经 ai-drain-queue 事件总线触发(非直接调用,
|
||||
//! 打破 events↔send 循环依赖);本模块模块级监听该事件
|
||||
|
||||
import { listen } from '@tauri-apps/api/event'
|
||||
import { listen, emit } from '@tauri-apps/api/event'
|
||||
import { invoke } from '@tauri-apps/api/core'
|
||||
import { ref } from 'vue'
|
||||
import { aiApi } from '@/api'
|
||||
@@ -537,6 +537,12 @@ async function stopChat() {
|
||||
// 决策 a(逐条续发):不再清队列,保留供 AiCompleted 链式触发 drainQueue 续发。
|
||||
// 后端 agentic/mod.rs emit AiCompleted 注释明确「保证前端收事件时后端已可接下一条,队列续发不被拒」;
|
||||
// 当前未完成回复已入库(agentic/mod.rs save_conversation)保留为截断回复。
|
||||
// I8(2026-10-05):停止≠清队,用户预期常是「全部停下」——队列非空时一次性提示
|
||||
// 「停止后 N 条排队消息仍将自动发送」,给用户明确预期(要全停可逐条取消/清队列)。
|
||||
const pendingQueued = state.queue.filter(q => q.conversationId === state.activeConversationId).length
|
||||
if (pendingQueued > 0) {
|
||||
void emit('ai-toast', { msg: t('ai.queueWillContinue', { n: pendingQueued }), type: 'info' })
|
||||
}
|
||||
try {
|
||||
// F-260616-09 B 批4(决策 e):传 activeConversationId,停止仅作用于当前 conv。
|
||||
await aiApi.stopChat(state.activeConversationId)
|
||||
|
||||
Reference in New Issue
Block a user