重构: 移除 AI 消息重新生成入口及配套调整

- MessageList: 移除末条 AI 消息重新生成操作栏入口
- package.json: build:dev 改 tauri build --debug --no-bundle(只编译不打包)
- 文档: workspace_root 弱化决策 + BUG-260625-01/02 工具修复记录
This commit is contained in:
2026-06-25 01:03:52 +08:00
parent 047b3b91fa
commit 4c54288a8d
4 changed files with 16 additions and 42 deletions

View File

@@ -722,20 +722,6 @@ async function copyMsgContent(msg: AiMessage): Promise<void> {
})
}
// ── UX-02: 重新生成最后一条 AI 回复 ──
// 复用 store.regenerate(后端 ai_regenerate:弹末尾 AI 回复→重跑 loop)。
// 失败 toast 提示,不影响其他状态(后端已复位 generating)。
async function handleRegenerate(): Promise<void> {
try {
await store.regenerate()
await nextTick()
scrollToBottom()
} catch (e) {
const msg = e instanceof Error ? e.message : String(e)
emit('toast', { msg: t('aiChat.regenerateFailed', { msg }), type: 'error' })
}
}
// ── UX-03: 错误气泡操作入口 ──
// errorType 经 useAiEvents push 错误消息时附带(types.ts AiMessage 未含此字段,
// 经 cast 读写闭环在 AiChat.vue / useAiEvents 两端,不污染 types.ts 定义)。
@@ -1059,33 +1045,8 @@ defineExpose({
<span class="ai-cursor"></span>
</div>
<!-- UX-02:AI 消息操作栏(hover 显示:重新生成)
复制走气泡内右下角图标(ai-copy-btn--ai),本栏仅留重新生成,故只在
末条 AI 消息(重生成语义)非错误有内容非流式中显示 -->
<div
v-if="isLastAi(item.msg) && item.msg.content && !item.msg.isError && !store.state.streaming"
class="ai-msg-actions"
>
<button
class="ai-msg-act"
:disabled="store.state.streaming"
:title="$t('aiChat.regenerate')"
@click.stop="handleRegenerate"
>
<svg width="11" height="11" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="23 4 23 10 17 10"/><path d="M20.49 15a9 9 0 11-2.12-9.36L23 10"/></svg>
<span>{{ $t('aiChat.regenerate') }}</span>
</button>
</div>
<!-- UX-03 / UX-260616-01:错误气泡操作入口(重试 / 去设置)
isError 消息显示;重试仅可重试错误(network/timeout/unknown)显示,
Fatal (auth/provider_config 鉴权/4xx/参数错)重试必败故隐藏;
去设置 error_type {auth, provider_config} 显示;
Fatal 时附 notRetryable 提示,说明为何无重试按钮 -->
<div
v-if="item.msg.isError && !store.state.streaming"
class="ai-msg-actions ai-msg-actions--error"
>
<!-- UX-03 / UX-260616-01:错误气泡操作入口(重试 / 去设置) -->
<div v-if="item.msg.isError" class="ai-msg-actions ai-msg-actions--error">
<span v-if="!canRetry(item.msg)" class="ai-msg-not-retryable">{{ $t('ai.notRetryable') }}</span>
<button
v-if="canRetry(item.msg)"