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
0296418cff
fix(task): stop canceled runs and clear stale task events
2026-04-04 19:46:56 +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
aeb782d479
refactor: 清理WebSocket遗留代码,标记为废弃
...
Phase 2 WebSocket代码清理:
前端 (useLegacySocket.ts):
1. 添加文件头注释说明架构变更
- 聊天流式事件已废弃,改用 REST API 轮询
- 保留系统事件、配额事件、对话事件、子智能体事件
- 标记待清理的流式处理代码
2. 简化 ai_message_start 事件处理器
- 只保留子智能体模式的处理
- 删除复杂的流式状态管理逻辑
3. 保留备份文件 useLegacySocket.ts.backup
- 用于紧急回退
后端 (socket_handlers.py):
1. 标记 handle_message 为废弃
- 添加废弃警告和迁移指南
- 返回错误提示引导用户使用 REST API
- 保留原代码用于紧急回退(注释掉)
2. 说明新架构优势
- 支持分布式部署
- 更好的错误恢复
- 减少 WebSocket 连接压力
注意:
- 未删除大量流式处理代码,只添加注释标记
- 保留向后兼容性,避免破坏现有功能
- 后续可逐步清理标记为废弃的代码
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-04-04 01:15:31 +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
ce02ea21fb
fix(stream): prevent tool-call argument leakage into text chunks
2026-04-03 16:09:29 +08:00
860fa7b539
feat(web): remove socket dependency from main chat flow
2026-04-03 11:34:42 +08:00
12c7a4bdd9
fix: remove legacy file edit tags
2026-03-17 22:43:51 +08:00
5ab3acef9c
feat: 添加 terminal-guide 和 sub-agent-guide skills
...
- 新增 terminal-guide skill: 持久化终端使用指南
- 新增 sub-agent-guide skill: 子智能体使用指南
- 优化终端工具定义和执行逻辑
- 更新系统提示词以引用新 skills
- 添加 utils/__init__.py 模块初始化文件
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-03-16 21:17:02 +08:00
cd3f07bcc8
fix: enrich sub-agent results
2026-03-11 18:05:01 +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
43409c523e
fix: 移除错误的对话切换跳转逻辑并修复工具执行返回值问题
...
主要修复:
1. 移除前端"取消跳转到正在运行的对话"的错误逻辑
- 删除 switchConversation 中的任务检查和确认提示
- 删除 createNewConversation 中的跳转回运行对话逻辑
- 删除 loadConversation 中对未定义变量 hasActiveTask 的引用
2. 修复后端工具执行返回值问题
- 修复 execute_tool_calls 在用户停止时返回 None 的 bug
- 确保所有返回路径都返回包含 stopped 和 last_tool_call_time 的字典
3. 其他改进
- 添加代码复制功能 (handleCopyCodeClick)
- 移除 FocusPanel 相关代码
- 更新个性化配置 (enhanced_tool_display)
- 样式和主题优化
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-03-08 17:42:07 +08:00
823b1e105e
feat: implement graceful tool cancellation on stop request
...
- Add stop flag monitoring loop (checks every 100ms during tool execution)
- Cancel tool task immediately when stop flag is detected
- Return cancellation message to conversation history with role=tool
- Save cancellation result: '命令执行被用户取消'
- Clean up pending tasks to prevent 'Task was destroyed but it is pending' warnings
- Fix terminal_ops.py to properly cancel stdout/stderr read tasks
Known issue: Tool result display in frontend still shows arguments instead of cancellation message when expanded
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-03-08 04:12:50 +08:00
07be7a1061
feat: gracefully stop tool execution on user request
...
- Remove direct task.cancel() calls, use stop flag instead
- Monitor stop flag every 100ms during tool execution
- Cancel tool task immediately when stop flag is detected
- Return "命令执行被用户取消" as tool result with role=tool
- Save cancellation result to conversation history
- Prevent abrupt task termination, allow graceful shutdown
Changes:
- server/socket_handlers.py: Comment out pending_task.cancel()
- server/tasks.py: Comment out entry['task'].cancel()
- server/chat_flow_tool_loop.py: Add stop flag monitoring loop
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-03-08 03:50:34 +08:00
141f6116fd
perf: increase conversation search batch size
...
- Increase initial search batch from 100 to 5000
- Increase load more batch from 50 to 200
- Raise backend API limit from 100 to 10000
- Improve search performance for large conversation lists
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-03-08 03:32:43 +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
463d89f295
fix: review filename sanitize and tool output
2026-03-08 00:03:28 +08:00
5e768a9e41
refactor: split chat flow streaming loop
2026-03-07 21:21:14 +08:00
7f6a8d8511
refactor: extract tool execution loop from chat task main
2026-03-07 20:41:10 +08:00
3402375710
refactor: split pending writes and task support from chat task main
2026-03-07 20:37:58 +08:00
8ecfac0c06
refactor: isolate chat task main pipeline module
2026-03-07 20:32:02 +08:00
63e367a996
refactor: further split runner and tools mixins
2026-03-07 20:25:58 +08:00
067500b163
chore: remove obsolete segmented server snapshot files
2026-03-07 18:45:45 +08:00
5c92f93e8c
chore: add smoke checks and refactor notes
2026-03-07 18:42:25 +08:00
dcba8d9d76
refactor: split terminal and server chat flow modules
2026-03-07 18:38:30 +08:00
877bcc2fad
fix: improve api error diagnostics and raise model quotas
2026-03-06 17:02:19 +08:00
868640b479
feat: add aliyun quota fallback
2026-03-06 12:31:20 +08:00
08bc08b35f
feat: update model support and multimodal
2026-02-25 01:41:05 +08:00
89eeb449b5
chore: sync workspace updates
2026-02-23 01:20:41 +08:00
a013abb3c4
fix: improve terminal timeout messaging
2026-02-12 11:55:15 +08:00
7472028997
feat: add skills framework and controls
2026-02-07 00:20:35 +08:00
b0941a247b
fix: reduce workspace scans in host mode
2026-02-06 17:09:19 +08:00
406e777e22
feat: improve compression and context budgeting
2026-01-31 10:30:00 +08:00
bb91d22631
feat: add video send/view flow and guard model constraints
2026-01-30 17:04:33 +08:00
7890926c3d
fix: improve cancellation flow and api error tracing
2026-01-30 15:36:44 +08:00
453df30f45
refactor: replace file diff tools, simplify todos, disable typewriter
2026-01-29 14:20:01 +08:00
e5c2943cb2
fix: refine title prompt and sandbox config
2026-01-29 11:54:24 +08:00
60d27e9c1c
fix: refine host mode controls and kimi-k2.5 support
2026-01-28 11:19:50 +08:00
8a7cc5d9c6
feat: support kimi-k2.5 with multimodal thinking
2026-01-28 10:34:27 +08:00
d8cffa30cc
feat: add host mode quick entry
2026-01-28 10:01:04 +08:00
d0197c38c3
fix: expand workspace file access and paginate convo index
2026-01-25 16:13:32 +08:00
f7034a3047
fix: enforce personalization tool disables in api flows
2026-01-25 13:44:52 +08:00
51f61b04d2
feat: add api admin ui and container status fix
2026-01-25 10:49:52 +08:00
6e0df78fef
feat(api): multi-workspace endpoints and container cleanup
2026-01-24 18:29:30 +08:00
9f7b443268
feat: add prompt/personalization selection and conversation APIs
2026-01-24 13:33:50 +08:00
82e7d0680a
feat: add api v1 bearer auth and polling docs
2026-01-24 02:35:07 +08:00
d6fb59e1d8
refactor: split web_server into modular architecture
...
- Refactor 6000+ line web_server.py into server/ module
- Create separate modules: auth, chat, conversation, files, admin, etc.
- Keep web_server.py as backward-compatible entry point
- Add container running status field in user_container_manager
- Improve admin dashboard API with credentials and debug support
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-22 09:21:53 +08:00