修复: DeepSeek reasoning_content 全链路透传(跨6 crate补字段+映射+agentic loop累积回传)

This commit is contained in:
2026-06-17 18:08:04 +08:00
parent 1cd7652a34
commit 74003bc04f
11 changed files with 251 additions and 20 deletions

View File

@@ -115,6 +115,33 @@
**已审文件清单(本轮)**crates/df-ai-core/src/provider.rs · crates/df-ai/src/anthropic_compat.rs · crates/df-ai/src/openai_compat.rs · src-tauri/src/commands/ai/conversation.rs · src-tauri/src/commands/ai/commands.rs · src/api/ai.ts · src/api/types.ts · src/composables/ai/useAiSend.ts · src/composables/ai/useAiConversations.ts · src/stores/ai.ts · src/components/AiChat.vue图片构建+渲染) · src/components/settings/ProviderPanel.vue
**新登记 todo**B-260617-07 · B-260617-08
### 🔧 2026-06-17 Tasks.vue i18n 缺失(仅分析·未实施)
> Tasks.vue:72 报 `Not found 'completed' key in 'zh' locale messages`。session-role-diagnose-only仅分析+记todo。
**现象**Tasks.vue:72 `$t(statusLabel(task.status))``taskStatusLabel()``TASK_STATUS_LABELS[status]` 返回 `'tasks.status.done'``$t('tasks.status.done')` 在 en/zh-CN 均未定义 → intlify fallback 到 en 仍缺失。
**根因**`src/constants/project.ts:61-68` 定义了 `TASK_STATUS_LABELS`(值如 `'tasks.status.done'`/`'tasks.status.todo'` 等 7 个 status + `'tasks.statusFilter.done'` 等 5 个 filter + priority 相关),但 **en/zh-CN 的 tasks 相关 i18n 文件完全不存在**。6b67214 大量新增功能时未同步补 tasks i18n key。
**影响范围**(需补全的 key
| 组件 | 用到的 key 前缀 | 缺失的 key |
|---|---|---|
| Tasks.vue:72 | `tasks.status.*` (7个) | 全部 |
| Tasks.vue:148-155 | `tasks.statusFilter.*` (5个) | 全部 |
| Tasks.vue:96-103 | `tasks.priority.*` / `P0`/`P1`/`P2`/`P3` (5+4=9) | 全部 |
- [ ] B-260617-10 [P2] — **Tasks.vue i18n 缺失**`$t('tasks.status.done')`**21 个翻译键**在 en/zh-CN 均未定义intlify fallback 也找不到根因6b67214 新增大量功能时未同步补 tasks i18n key`TASK_STATUS_LABELS` 定义了值但无对应 `$t()` 条目)。**影响**Tasks.vue 状态标签/筛选器/优先级标签全部显示原始 key 而非翻译文本。—— src/views/Tasks.vue(:72) · src/constants/project.ts(:61-82 TASK_STATUS_LABELS/TASK_STATUS_CLASS/PRIORITY_LABELS/PRIORITY_CLASSES)
> **2026-06-17 进展注记1cd7652**:提交 1cd7652 已做**数据层映射兜底**project.ts 新增 `LEGACY_STATUS_MAP`completed→done / review_ready→in_review / merged→done / abandoned→cancelled`taskStatusLabel/taskStatusClass` 经映射后老 DB 脏态不再直接走 `$t()` 报 not found。**但 i18n key 补全(显示层)仍未做**——映射后 `$t('tasks.status.done')` 仍 not foundtasks.ts 不存在),用户从看到 "completed" 变成看到 "tasks.status.done" 原始 key。**B-260617-10 主问题(补全 21 个 i18n key仍在**1cd7652 是其前置的数据归一,待补 key 后老态自动正确显示。映射目标态done/in_review/cancelled均已核验在 TASK_STATUS_LABELS 7 态内 ✓。
### 🔧 2026-06-17 走查·tauri 打包目标收窄 + 状态映射 DRY仅分析·未实施
> 本轮 git diff 核验工作区未提交改动 + 最新提交 1cd7652。session-role-diagnose-only。
- [ ] B-260617-11 [P2] — **tauri.conf.json 打包目标收窄未提交,若误入库锁死非 Windows 构建**。工作区改动 `bundle.targets: "all" → ["nsis"]`src-tauri/tauri.conf.json:28收窄到仅 Windows NSIS 安装包。若意图为本地只打 Windows 包,合理;**但若随其他改动一并提交**macOSdmg/app、Linuxdeb/appimage构建将不可用影响其他开发者/CI。**确认点**:该改动是临时本地构建还是有意入库?临时则建议提交前 revert 此行;有意则建议改为按平台条件配置而非硬编码单一 target。—— src-tauri/tauri.conf.json(:28)
- [ ] B-260617-12 [P3·可选] — **LEGACY_STATUS_MAP 映射 DRY 重复**。1cd7652 中 `taskStatusLabel`(:96) 与 `taskStatusClass`(:101) 各写一遍 `const mapped = LEGACY_STATUS_MAP[status] ?? status`。两处一行重复,可抽 `mapLegacyStatus(status)` 收敛。极简优先可不动(仅 2 处 + 单行),登记备查。—— src/constants/project.ts(:96,:101)
### 🔧 2026-06-17 aichat 消息全量重叠5角度深入分析·未实施
> 用户报 aichat 对话「大量重叠」「不单间距问题」。session-role-diagnose-only5 角度并行论证后记录。

View File

@@ -79,6 +79,42 @@
- **待用户操作**:部分场景运行时实测(A 路线场景 2/3)。
- **状态**:🟡 待用户实测
### 🟡 待设计/架构演进(有决策点,需方案设计或长期规划)
#### ARC-260615-07 架构重构批(排期/优先级决策)
- **背景**:src-tauri IPC 编排层 5711 行成事实业务层,7 项架构债。df-core→df-types 已完成(CR-61),剩 6 项独立大改。
- **决策点**:6 项重构何时做/优先级/是否做(每项 ROI 与风险权衡,无法纯技术论证——做不做是资源/产品取舍)
- **选项(剩余 6 项)**:
- a: df-app 抽取(IPC 编排层 5711 行独立 crate)
- b: AI agent loop 从 IPC 下沉 df-ai(逻辑与 IO 分离)
- c: 类型契约 ts-rs 代码生成(替代手写 types.ts)
- d: AiSession 多会话(B 路线前置,关联 S-260614-01)
- e: AppState 分组(5711 行 state 拆分)
- f: IPC 命名统一
- **推荐**:**⏸️ 缓做**(重构低 ROI,当前功能优先;待稳定后按 d→b→a 顺序,d 是 B 路线前置可先)
- **关联**:todo ARC-260615-07 / memory aichat-arch-extensibility
- **状态**:🟡 待排期决策
#### UX-260617-01 aichat 消息全量重叠(待 DevTools 定位根因)
- **背景**:用户实测消息大量重叠堆叠。5 角度分析排除 CSS/scoped/DOM,核心嫌疑虚拟滚动 IO 半激活态不一致 + height=0 未设 minHeight → slot 塌 0 → 重叠。
- **决策点**:根因确切触发路径(需 DevTools 实测,静态分析已到极限)
- **选项**:
- a: 虚拟滚动 IO/RO 时序竞态(主嫌疑,unload 分支 minHeight 兜底修复)
- b: 其他(DOM 结构问题,需 DevTools 实查)
- **推荐**:**待用户 DevTools 实测**(shouldRenderMsg 卸载时检查 slot 实际高度 + IO unobserve/observe 时序),定位后修法明确(unload 分支 minHeight fallback)
- **关联**:todo UX-260617-01 / docs/05-代码审查/AI聊天组件极端数据场景分析-2026-06-17.md
- **状态**:🟡 待 DevTools 验证根因
#### UX-260617-28 双监听器同通道(长期架构演进)
- **背景**:useAiEvents + useAiContext 各自 listen('ai-chat-event'),人工 AiCompressing flag 协调防双重处理,非架构保证。未来新增事件处理可能触发双重 bug。
- **决策点**:是否升级单一分发器模式(架构保证)
- **选项**:
- a: 保持现状(AiCompressing flag 协调够用)
- b: 单一分发器(架构保证,但大改)
- **推荐**:**⏸️ 暂缓**(当前 flag 协调有效,未来新增事件处理触发双重 bug 时再升级)
- **关联**:todo UX-260617-28 [INFO]
- **状态**:⏸️ 长期(INFO,当前够用)
---
## 已决归档