lxy
|
bff5ae9d7a
|
修复: 对话轨迹生成锚点回归与耗时口径
生成中锚点改真实末条,修第二轮打字机与工具卡不渲染回归
轨迹总耗时计入末轮时长,单卡耗时剔除审批等待区间
聚合文案与截断常量下沉共用,时长进位边界钳制
|
2026-10-01 08:28:07 +08:00 |
|
lxy
|
04acc4297d
|
优化: 对话执行轨迹聚合与工具卡交互
前端聚合当前轮次工具调用数,替代每轮清零的完成计数,进度文案改轮次+累计口径
完成聚合语义由执行轨迹卡承接,工具卡复读修复与默认折叠收敛
流式与工具事件配套调整,新增轮次轨迹收集 composable
|
2026-10-01 02:41:05 +08:00 |
|
lxy
|
5ac815b9ca
|
优化: 清理无意义注释(走查编号前缀/过时历史标注/死代码注释)
|
2026-08-15 18:05:43 +08:00 |
|
lxy
|
5a4c821629
|
优化: drainQueue并发互斥+deep watch指纹+前端打磨
|
2026-08-12 01:00:56 +08:00 |
|
lxy
|
9407f821b9
|
优化: 图像模型兜底防御+任务UI(状态多选+跳详情)+token popover遮挡
|
2026-08-10 13:46:26 +08:00 |
|
lxy
|
11f4978ec1
|
优化: aichat效率剩余(压缩后台化防阻塞/审计批量事务/只读缓存轮内去重/流式增量渲染/AiCommandOutput合批/双渲染合并) + 跨端加固(df-project路径保留大小写/tunnel文档更正supervisor重连/relay固定时间比较与帧上限/启动校验) + 销账
|
2026-08-09 21:35:59 +08:00 |
|
lxy
|
6ba6daf188
|
优化: aichat 打磨收尾(切换信任保留 + save并发串行 + 后台授权守卫 + 分离窗口失效 + 气泡截图复制)
|
2026-08-08 21:08:25 +08:00 |
|
lxy
|
65c0f6b2b6
|
优化: aichat 体验收尾(useAiEvents拆分4子域 + AIC-FIX P1队列/mutex/缓存 + i18n残留抽取)
|
2026-08-08 20:38:33 +08:00 |
|
lxy
|
4092a8d5bb
|
优化: 前端体验批次(Knowledge持久化+流式缓存失效 + dfnodes节点注册 + delta 50ms合批 + MCP schema必填校验+bind_directory对齐)
|
2026-08-08 20:19:19 +08:00 |
|
lxy
|
c480627ba6
|
优化: 批A前端(timer所有权+会话族+审批conv-scoped+FilePreview+失败反馈)
A1-B1 timer所有权:新建 useTimerOwnership composable(每实例独立ref+onUnmounted清理)+ useToast _timer 下沉 + Ideas debounce 补清理(治跨实例串扰)
A1-B2 FilePreview:reqSeq 双计数器守卫(loadFile/loadDiff 最新seq才写,防乱序覆盖)+ mermaid securityLevel strict + filePath 比对(防跨文件SVG注入)
A1-B3 会话族:load_more 滚顶加载接线(switch透传has_more/earliest_seq+prepend去重+scrollTop恢复)+ switch失败保留视图+报错(仅对话不存在才create-new)+ new/delete失败反馈(withConvOp helper收敛)+ delete清ai_messages孤儿
A1-B5前端契约:isToolFailure 三处加 success===false 判定(useToolCard/ToolResultBody/ToolCard,git只读失败不再绿框)
A2-B10 审批conv-scoped:pendingApprovals 补conversationId + cleanup 按convId filter + 移除全局清(AiError不再误清其他conv)+ :676 dir auth filter方向修
usage打标前端:is_estimated 字段+事件透传+MessageList『估算』角标(详情面板说明)
A2-B9前端:clearChat try/catch 错误气泡
|
2026-08-05 22:10:50 +08:00 |
|
lxy
|
a031521776
|
优化: token分项显示(in/cache/out/reasoning)+ 详情面板 + base前置
token分项(各计费不同,不显 total):df-ai 解析 provider cache/reasoning(openai_compat prompt_cache_hit/miss/reasoning_tokens + anthropic cache_read/creation)+ TokenUsage 加字段(全构造点)+ AiMessage/AiCompleted/DB V39(ai_messages 加 cache_hit/miss/reasoning 列)+ message_repo 映射(持久化)+ 前端 MessageList 显 in·cache·out·reason(in=cache_miss 全价,reasoning 有才显)+ 点击 token 弹详情面板(完整 usage+缓存命中率+model)+ df-miniapp 同步
base前置(提升 prompt cache 命中率):chat.rs aug 拼 base 后(4处)+ knowledge_inject 知识拼 base 后(固定 base 前缀,cache 命中)
附修:replace_conversation 原 13 列 INSERT 丢消息级 token → 改 18 列
|
2026-08-03 01:22:30 +08:00 |
|
lxy
|
864c696b70
|
优化: token消息级持久化 + 技能注入修复 + TopBar减法/UI调
token持久化(方案A,治压缩/切会话后历史token不显):ChatMessage/AiMessageRecord 加 prompt_tokens/completion_tokens(serde + DB V38 迁移 + message_repo 映射);agentic push_assistant_message 设本轮 token + provider/title 构造默认 None;前端 AiMessage 加字段 + switchConversation reload 映射 tokenUsage(双轨:消息级新+会话级旧累计保留)
技能注入修复:read_skill_content_stripped 改 skills_cached 扫盘(防御 SKILLS None 致不注入)+ 细化诊断(缓存/path/fs 各步)
TopBar减法/UI:删铅笔新建(与侧栏+重复)/删垃圾桶clear-chat(危险,clear-context归档替代)/删系统就绪装饰占位;更多菜单popout CSS补全(修样式错乱);provider绿点有信息化(绿/红/灰基于AI请求成败)+垂直居中;goals面板补top:100%(修位置飘)+dot/check/remove CSS+goals/history item统一+history index边距;4面板互斥(点一个收其他)
MessageList token v-if 去 !streaming(修发新消息历史token消失)
|
2026-08-02 18:17:30 +08:00 |
|
lxy
|
9e85cadb3f
|
优化: P1-a 长内容折叠(AI文本气泡+多冲突+错误堆栈)
- MessageList: assistant文本气泡>1500字符折叠(max-height 400px+渐变遮罩+展开按钮),流式中不折叠避免delta重排抖动(M1)
- ConflictResolver: 多冲突(>=3)默认折叠,点击展开diff(M6)
- HelpRequiredCard: context堆栈max-height 200px滚动+等宽字体(M7)
|
2026-08-02 12:24:20 +08:00 |
|
lxy
|
7f0edced01
|
修复: UX扩展审查P0批(后端git/路径确定性bug + 前端UI + 编译阻断)
后端(src-tauri):
- project.rs: 4处空if目录校验补return Err(import/relocate/scan_directory/scan_project_with_ai),目录不存在不再静默放行
- ai/tools/git.rs: exec_git改返(String,bool)治git_commit·git_branch create/switch假成功 + git_merge补失败分支 + 加CREATE_NO_WINDOW
- module.rs: run_git_cmd加CREATE_NO_WINDOW,治Windows cmd黑窗闪烁(原问题9)
前端:
- DependencyGraph.vue: 环检测高亮注入renderGraph,原被fromJSON重建抹除致功能失效
- FileExplorer.vue: 工程下拉closeDropdown加closest判定,原打不开
附(预存编译阻断顺带修):
- df-nodes ai_node_helpers.rs: extract_first_json_object临时值借用悬垂E0716
- MessageList.vue: 删isLastUser死代码(vue-tsc TS6133)
审查产出: docs/05-代码审查/UIUX扩展审查-2026-08-02.md(80条发现,8高grep核验全属实)+ docs/todo.md批次段
|
2026-08-02 12:19:40 +08:00 |
|
lxy
|
f1773dde4f
|
优化: 前端走查 P2+UX(status union + ApprovalPopup hack消除/拖动JS API/Esc)
- status union: AiMessage 加 status 字面量联合,删 AiChat/MessageList AiMessageWithStatus 重复+cast
- ApprovalPopup: 删 _placeholder hack(toolDisplayName 提纯函数) + dispatchApprovalIPC 共享分派消除三套重复 + always 按钮语义对齐 + closeWithFallback 兜底 + 拖动 JS API startDragging(避子元素覆盖) + Esc 快捷键
|
2026-08-02 10:43:30 +08:00 |
|
lxy
|
f719546b12
|
优化: 前端走查 P1(MessageList/MessageItem 两套渲染收敛)
MessageItem 删 AI/system/error 死分支(301→175 行,仅 user 角色)+ 删悬空 regenerate/retry emits + 清孤立 props/isLastAi;MessageList 挂载清理。消除两套 AI 消息渲染并存(死代码+职责混乱)。
|
2026-08-02 03:11:44 +08:00 |
|
lxy
|
3afaff9efe
|
新增: obscura 安装引导(prompt AI 看 hint 帮装 + 前端工具卡片 AI 帮装按钮)
|
2026-08-01 18:07:56 +08:00 |
|
lxy
|
e9e3578d26
|
修复: DeepSeek 400 全量扫描 + 队列 per-conv 隔离
- openai_compat: 扫描所有 assistant 消息剥离 orphan tool_calls(原仅查末条)
- queue 加 conversationId 字段,按会话精准 drain
- regenerate/editMessage 只清本会话排队消息
- newConversation 保留旧会话排队消息
- AiError 只清出错会话的队列项
|
2026-07-20 00:19:50 +08:00 |
|
lxy
|
acf0ed091d
|
重构: 前端God文件拆分(StreamRenderer+EmptyState+MentionPopover+EnrichmentPanel)
- useStreamRenderer.ts: 流式Markdown块级渲染提取为composable(220行)
- EmptyState.vue: 空状态独立组件(无provider引导+示例问题)
- MentionPopover.vue: @实体联想浮层独立组件
- EnrichmentPanel.vue: @项目enrichment预览面板独立组件
- MessageList.vue: 1386→1148行, ChatInput.vue: 1155→1007行
- AiChat进度条: completedTools计数器(AiToolCallCompleted+1,AiAgentRound重置)
- i18n: 进度条文案加已完成工具数(中英文)
|
2026-07-02 10:11:15 +08:00 |
|
lxy
|
2c2b2d710e
|
重构: MessageList 拆分(提取 MessageItem+useMessageScroll, 1552->1386行)
- 提取 useMessageScroll.ts(滚动跟随/锁存/回底按钮)
- 提取 MessageItem.vue(按 role 渲染单条消息)
- 清理 MessageList.vue 中已移至子组件/ composable 的死代码
|
2026-07-01 12:21:40 +08:00 |
|
lxy
|
4c54288a8d
|
重构: 移除 AI 消息重新生成入口及配套调整
- MessageList: 移除末条 AI 消息重新生成操作栏入口
- package.json: build:dev 改 tauri build --debug --no-bundle(只编译不打包)
- 文档: workspace_root 弱化决策 + BUG-260625-01/02 工具修复记录
|
2026-06-25 01:03:52 +08:00 |
|
lxy
|
ebba9735ed
|
修复: BUG-260624-01残留(scrollToFirstPending return过早+listener props过滤)
|
2026-06-24 17:38:40 +08:00 |
|
lxy
|
1ffa023f3d
|
修复: 消息重叠与审批卡死
|
2026-06-24 01:44:46 +08:00 |
|
lxy
|
bd6a41fe6e
|
新增: 批次工作落地(推进链/评估闭环/事件总线/并发/加固) + 技术债清理 + 文档整理
后端:
- 工作流推进链(D-03):advance_task/状态机/闸门走 df-nodes Node trait,conditions 条件引擎扩展
- 想法评估闭环:启发式评分+对抗评估,df-ideas/scoring + df-storage/idea_eval_repo + idea 前端打通
- 全局事件数据总线:df-ai/context+context_helpers+augmentation 跨模块解耦
- AI planner/plan_hint/intent:aichat B 路线并行多轮基础
- patch_file 加固(TD-03/04):读改写整体锁防 lost update,expected_hash 合约闭环
- 压缩超时兜底(F-15 卡死根治)
- F-09 多会话并发:LlmConcurrency per-conv + streamingGuard 前端守护 + verify 脚本
- 知识注入 DRY/skills/audit 扩展
清理:
- aichat 技术债(误报 allow/死导入/过时注释 30 项)
- URGENT.md 删除(11 项加急全解决/迁 todo)
- 文档整理(todo/待决策/待审查/ARCHITECTURE/INDEX + 总线/技术债审查新文档)
|
2026-06-21 20:51:26 +08:00 |
|
lxy
|
7d5402951b
|
新增: 多会话并发前端 UI 阶段3/4(F-09 收尾)
后端 per-conv 并发已就绪(d899c58 + CR-03~07),前端呈现层收尾:
阶段3 多会话生成态:
- stores/ai.ts generatingConvId 单值 → generatingConvs:Set + add/remove/isGenerating helper
- useAiEvents 5 处迁移(Completed/Error/路由标记改 per-conv Set 操作,
AiError 精确清出错会话非全局清空,修原 = null 误清其他会话)
- ConversationSidebar 多会话并行生成脉冲指示(isGenerating 各会话独立)
阶段4 独立窗口多会话:
- useAiWindow label ai-detached → ai-detached-{convId}(per-conv 独立窗口)
- localStorage 单 key → per-conv key(防多会话串扰,读路径兼容旧 key 回退)
vue-tsc EXIT 0 + generatingConvId 零代码残留(仅注释)
|
2026-06-19 20:15:37 +08:00 |
|
lxy
|
a5d125847f
|
重构: 拆AiChat God第四批MessageList(strategy·主体消息列表)
- 新建 ai/MessageList.vue(1444行): 消息列表+流式Markdown分块渲染(scheduleStreamParse/rAF节流/块级memo)+工具卡ToolCardList+滚动跟随(B-260618-24)+分段+选区保持
- AiChat.vue 2937→1587(-1350): MessageList template/script/style迁移, store共享(useAiStore单例)+useMarkdown单例
- props editingMsgId + emits(start-edit/send-example-prompt/go-to-settings/toast) + expose(scrollToBottom/scrollToFirstPending)
流式行为不变: scheduleStreamParse/rAF/块级memo/选区/滚动跟随原样迁移
主代兜底: vue-tsc 0 + grep MessageList抽离/AiChat emit绑定expose印证
strategy: 单批1-2文件原子, 主体抽离; AiChat余1587(组装+队列+max_rounds+上下文+快捷键+confirm/toast+恢复态, 后续批)
AiChat拆分主体完成: ConversationSidebar+ChatInput+TopBar+MessageList四批, 4081→1587
git add指定(AiChat.vue+MessageList.vue, 不含anthropic_compat.rs/docs其他会话)
|
2026-06-19 05:18:38 +08:00 |
|