diff --git a/src/components/ai/ConversationSidebar.vue b/src/components/ai/ConversationSidebar.vue index 8dc94b1..e595038 100644 --- a/src/components/ai/ConversationSidebar.vue +++ b/src/components/ai/ConversationSidebar.vue @@ -257,7 +257,7 @@ const activeConv = computed(() => watch( () => activeConv.value?.title, (newTitle, oldTitle) => { - // FIX-17 P2-4:合并为单条件——标题从空→非空才触发淡入,其他变化不闪 + // 标题从空→非空才触发淡入,其他变化不闪 if (!newTitle || oldTitle) return titleFlash.value = true if (_titleFlashTimer) clearTimeout(_titleFlashTimer) diff --git a/src/composables/ai/aiShared.ts b/src/composables/ai/aiShared.ts index 4fb9f90..92ce2d4 100644 --- a/src/composables/ai/aiShared.ts +++ b/src/composables/ai/aiShared.ts @@ -316,7 +316,7 @@ export function setConvStreaming(convId: string | null | undefined, value: boole /** * 写某 conv 的 currentText(空串时仅清字段,streaming 仍 true 则保留项)。 - * FIX-17 P2-3:收敛对称——当 streaming=false 且 currentText 被清空时,删 Map 项。 + * 收敛对称——当 streaming=false 且 currentText 被清空时,删 Map 项。 * * @param convId 目标会话 id * @param value currentText 目标值(空串=清流式累积,但会话可能仍在 streaming) diff --git a/src/composables/ai/useAiContext.ts b/src/composables/ai/useAiContext.ts index b58544c..3702931 100644 --- a/src/composables/ai/useAiContext.ts +++ b/src/composables/ai/useAiContext.ts @@ -25,7 +25,7 @@ import { state } from '@/stores/ai' import { resolveAiLang } from './aiShared' import { setContextCallbacks } from './useAiEvents' -// FIX-17 P2-7:模块级单例 ref,多窗口共享(分离窗口与主窗口共用同一 isCompressing)。 +// 模块级单例 ref,多窗口共享(分离窗口与主窗口共用同一 isCompressing)。 // 已知限制:分离窗口压缩时,主窗口的压缩按钮也显示 loading(反之亦然);非功能 bug, // 但若需 per-window 独立压缩态需改为 inject/provide 或独立 store 实例,本版暂不处理。 const isCompressing = ref(false) diff --git a/src/composables/ai/useAiConversations.ts b/src/composables/ai/useAiConversations.ts index 26ddc17..35dcc0f 100644 --- a/src/composables/ai/useAiConversations.ts +++ b/src/composables/ai/useAiConversations.ts @@ -516,7 +516,7 @@ async function deleteConversation(id: string) { loadMoreCursor.earliestSeq = null loadMoreCursor.convId = null loadMoreCursor.loading = false - // FIX-17 P1-11:回落相邻会话,避免空白无引导 + // 回落相邻会话,避免空白无引导 if (neighborId) { await switchConversation(neighborId) } diff --git a/src/composables/ai/useAiStream.ts b/src/composables/ai/useAiStream.ts index 862dc42..12fefee 100644 --- a/src/composables/ai/useAiStream.ts +++ b/src/composables/ai/useAiStream.ts @@ -72,7 +72,7 @@ export function onStreamTimeout(convId?: string) { if (convId) { convStates.delete(convId) } else { - // AIC-FIX-17-P0-1:legacy 单 timer 只跟踪当前活跃会话,不清所有 conv(防误杀其他并发会话)。 + // legacy 单 timer 只跟踪当前活跃会话,不清所有 conv(防误杀其他并发会话)。 if (state.activeConversationId) { convStates.delete(state.activeConversationId) } diff --git a/src/composables/ai/useAiWindow.ts b/src/composables/ai/useAiWindow.ts index dc11816..9195fb7 100644 --- a/src/composables/ai/useAiWindow.ts +++ b/src/composables/ai/useAiWindow.ts @@ -326,7 +326,7 @@ async function syncToMain() { if (screenWidth > 0) { targetX = screenWidth - AI_DOCK_WIDTH - AI_DOCK_GAP } - // FIX-17 P2-5: 最大化时 targetHeight = size.height, height > height 恒 false, + // 最大化时 targetHeight = size.height, height > height 恒 false, // 原三元是无操作死代码,已移除。 } else if (screenWidth > 0 && targetX + AI_DOCK_WIDTH > screenWidth) { // 非最大化但主+AI 超屏幕:AI 窗口本身让位(缩窄或往左偏),不动主窗口。 diff --git a/src/composables/ai/useToolApproval.ts b/src/composables/ai/useToolApproval.ts index 7107954..696510e 100644 --- a/src/composables/ai/useToolApproval.ts +++ b/src/composables/ai/useToolApproval.ts @@ -55,7 +55,7 @@ export function dispatchApprovalIPC( return aiApi.approve(tc.id, approved) } -/** useToolApproval emit 签名 — FIX-17 P2-6:补全类型替代 any */ +/** useToolApproval emit 签名 — 补全类型替代 any */ interface ToolApprovalEmit { (event: 'approve', payload: { id: string; approved: boolean; decision?: 'once' | 'session' | 'always' | 'deny' }): void } @@ -126,9 +126,8 @@ export function useToolApproval(tc: Ref, emit: ToolApprovalEmit) /** * 批准按钮处理(risk 类专用)。 - * AE-2025-05:High 风险工具 → 先二次确认(useConfirm 弹层)。 - * loading + 超时兜底复用 B-260616-08 机制。 - * FIX-17 P1-10:approving 提前到 confirmDialog 前,防二次确认期间双击重入。 + * High 风险工具 → 先二次确认(useConfirm 弹层)。 + * loading + 超时兜底。approving 提前到 confirmDialog 前,防二次确认期间双击重入。 */ async function onApprove() { if (approving.value) return // 防重入 @@ -225,10 +224,10 @@ export function useToolApproval(tc: Ref, emit: ToolApprovalEmit) /** * path_auth 审批链阶段3b:path 类「拒绝」处理。 - * M5:拒绝前二次确认(useConfirm 弹层)。拒绝不可逆——工具返 Err、loop 续跑不再重试该工具, + * 拒绝前二次确认(useConfirm 弹层)。拒绝不可逆——工具返 Err、loop 续跑不再重试该工具, * 与放行(once/session/always 均可后续再授权)不对称,误点代价高;补确认与 approve(高风险)对称。 * risk 类拒绝(onReject)不补确认:risk reject 是常规审批否决,语义明确且可重新触发;仅 path 类加。 - * FIX-17 P1-10:approving 提前到 confirmDialog 前,防二次确认期间双击重入。 + * approving 提前到 confirmDialog 前,防二次确认期间双击重入。 */ async function onDeny() { if (approving.value) return