2700a25702
feat: add per-user-message work timer with persistence
2026-04-05 15:14:29 +08:00
0b923d6c53
fix: harden polling task cancel lifecycle
2026-04-04 20:52:31 +08:00
8d5a034c70
fix(chat): recover assistant placeholder after stop and switch
2026-04-04 19:47:03 +08:00
6697da9581
fix: 修复轮询机制下对话标题不自动更新的问题
...
- 后端:在标题生成后将 conversation_changed 事件添加到任务事件流
- 前端:在 taskPolling 中添加 conversation_changed 事件处理
- 前端:同步更新当前对话标题和对话列表中的标题
- 兼容:保留 WebSocket 的标题更新逻辑以向后兼容
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-04-04 15:12:18 +08:00
8d6c59deed
feat: 优化轮询机制(重试、清理、错误提示)
...
Phase 3 轮询优化:
1. 添加重试机制(task.ts)
- 新增 pollingErrorCount 状态字段
- 添加 5 秒超时(AbortSignal.timeout)
- 连续失败 5 次后停止轮询并通知用户
- 成功后重置错误计数
2. 改进错误提示(taskPolling.ts)
- 根据 error_type 提供友好提示
- 支持 api_error、timeout、quota_exceeded 等类型
- 延长错误提示显示时间(8秒)
3. 添加任务清理机制(tasks.py)
- 新增 cleanup_old_tasks() 方法
- 清理超过 1 小时的已完成任务
- 启动后台定时器(每 10 分钟清理一次)
- 减少内存占用,支持长期运行
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-04-04 01:04:35 +08:00
de82a37958
fix: 修复代码块复制、事件去重、任务结束、停止按钮bug
...
Phase 1 关键Bug修复:
1. 代码块复制功能
- 删除 index.html 中的全局事件监听(47-53行)
- 避免与 Vue 方法的双重监听冲突
2. 事件去重机制
- 在 handleTaskEvent() 添加基于 idx 的去重检查
- 使用 Set 存储已处理的事件索引(最多1000个)
- 在 restoreTaskState() 时清理已处理事件
3. 任务结束逻辑
- 修复 handleTaskComplete() 异步状态清理问题
- 新增 clearTaskState() 统一清理方法
- 在 stopPolling() 中清除 currentTaskId
4. 停止按钮状态同步
- 改进 stopTask() 错误处理
- 添加后端确认等待(300ms)
- 确保失败时也清理前端状态
- 添加 finally 块清除 dropToolEvents
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-04-04 01:03:06 +08:00
ed82fc966e
fix: improve sub-agent ui and state
2026-03-11 15:40:28 +08:00
f09621fd86
feat: 为子智能体添加思考模式参数
...
- 新增 thinking_mode 参数(fast/thinking),支持根据任务复杂度选择模式
- 优化子智能体工具说明,提供详细的使用场景示例
- 增强子智能体状态展示,添加统计信息摘要
- 完善交付目录验证,要求必须为不存在的新目录
- 优化子智能体完成/超时/失败的消息格式
- 同步更新前端和批处理相关代码
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-03-11 03:34:20 +08:00
b68dee9d98
chore: snapshot current changes
2026-03-10 23:48:40 +08:00
cd68812743
fix: 修复页面刷新时思考块自动展开的问题
...
- 在历史加载时给思考块设置 collapsed: true 默认折叠
- 在任务恢复时跳过思考块的展开/折叠动画
- 延迟清除 _rebuildingFromScratch 标记,确保所有历史事件处理完毕
- 删除过早清除重建标记的逻辑,避免后续思考块被展开
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-03-09 16:31:00 +08:00
0e4f625338
feat: add task confirmation when switching conversations
...
- Prompt user to confirm when switching/creating conversation with active task
- Automatically stop running task after user confirmation
- Filter out events from previous conversation to prevent cross-talk
- Show toast notification after task is stopped
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-03-08 03:32:35 +08:00
801d20591c
feat: 实现 REST API + 轮询模式,支持页面刷新后任务继续执行
...
主要改进:
- 新增 REST API 任务管理接口 (/api/tasks)
- 实现 150ms 轮询机制,提供流畅的流式输出体验
- 支持页面刷新后自动恢复任务状态
- WebSocket 断开时检测 REST API 任务,避免误停止
- 修复堆叠块融合问题,刷新后内容正确合并
- 修复思考块展开/折叠逻辑,只展开正在流式输出的块
- 修复工具块重复显示问题,通过注册机制实现状态更新
- 修复历史不完整导致内容丢失的问题
- 新增 tool_intent 事件处理,支持打字机效果显示
- 修复对话列表排序时 None 值比较错误
技术细节:
- 前端:新增 taskPolling.ts 和 task store 处理轮询逻辑
- 后端:TaskManager 管理任务生命周期和事件存储
- 状态恢复:智能判断是否需要从头重建,避免内容重复
- 工具块注册:恢复时注册到 toolActionIndex,支持状态更新
- Intent 显示:0.5-1秒打字机效果,历史加载直接显示
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-03-08 03:12:46 +08:00