9fff41650d
feat(chat): 输入栏附件系统增强——粘贴图片、文件附加、图片灯箱与文件预览联动
...
- 输入框支持直接粘贴图片(Tiptap handlePaste,复用拖拽三路分发)
- 文件附加:拖拽/粘贴/选择的普通文件以文件块(FileChips)附加到输入栏,
随消息发送;后端在主消息 metadata.files 记录并插入 hidden file_paths
通知消息告知模型文件位置;运行中队列/自动续发/引导全链路携带 files
- 文件块视觉:196x60 与图片同排同高同圆角,类型彩色图标(文档/表格/
演示/PDF/文本/代码/压缩包),深色提亮变体,SVG 删除按钮与图片统一
- 图片大图预览灯箱(ImageLightbox):最大 1100x780 不铺满全屏,移动端适配
- 文件块点击 → 快捷窗口文件预览面板(复用 /api/file/content)
- 预览面板:hover 灰行在横向滚动下贯穿整行(qd-code 宽度锚定内容全宽);
新增设置项「预览窗口自动换行显示」(默认关闭,换行模式逐行渲染 +
行级 content-visibility 屏外跳过渲染优化)
- SVG 从图片链路剔除(isImageFile 排除 + 图片选择器白名单),按普通文件处理
2026-08-11 17:16:56 +08:00
be061bec78
fix(server): 停止标志改为任务级隔离,修复并行对话互相停止
...
stop_flags 此前以 user:{username} 级共享 entry:任务启动时兜底复用并
mutate 共享 entry(task/loop 引用被后启动任务覆盖),stop 标志经用户级
key 广播——停任意一个对话,同用户所有并行对话(含跨工作区、传统与
多智能体混合)全部停止,cancel_task 还可能取消错 task 对象。
- state.py: get_stop_flag 新增 include_user 参数;clear_stop_flag 仅在
user 级索引仍指向本任务 entry 时才清理
- chat_flow.py process_message_task: 每任务新建独立 entry,不再复用
- 8 处运行期检查点(流式/工具循环/重试等待/两个 poll/主循环)改为
include_user=False,只查任务级 key
- socket 链路(connect 恢复/disconnect/stop_task)保留用户级索引语义
验证: 冒烟 6 用例 OK;并行场景 9 断言脚本验证通过
2026-08-08 23:59:23 +08:00
cf51ab0555
refactor(cleanup): 移除余额查询功能、清理前端调试日志、规整终端输出
2026-07-25 12:07:04 +08:00
c9c3eedd82
feat: 移除实验性间隔思考模式,推理强度前置到前端
...
- 彻底移除「每 N 次请求强制思考」的间隔调度机制(思考/非思考交替导致缓存命中率极低)
- 运行模式收敛为 fast/thinking:原 deep 改名 thinking,历史数据读取时映射
- 新增推理强度五档滑块(low/medium/high/xhigh/max + 默认不传参),置于模型/模式弹窗
- 模型配置新增 reasoning_effort 开关;档位会话级持久化到对话 meta,随对话保存/恢复
- 个人空间新增「默认推理强度」;新用户默认运行模式改为 thinking
- 滑块交互:JS 插值驱动(点击/拖动/吸附全程平滑),首帧档位语义定位无闪烁
- 保存链路:前端防抖 600ms + conversation_id 兜底,修复 /new 发消息丢档位、切对话恢复错误
2026-07-21 13:47:53 +08:00
72a49a7c8d
fix: 修复对话计时器持久化、子智能体工具美化与状态查询,统一后台通知池
...
- 新增 server/work_timer.py,在对话真正空闲(无前台任务、无后台子智能体/后台命令/压缩)时持久化 work_timer,并同步内存副本,解决刷新后计时器回退问题。
- server/chat_flow_task_main.py / chat_flow.py / tasks/models.py 在任务结束/取消时按空闲判定决定是否持久化。
- 前端 lifecycle.ts 在仍有后台任务时不提前停止计时器。
- 子智能体工具(create/terminate/get_status)渲染美化,task 参数放在顶部元信息区。
- 子智能体状态查询支持返回「已完成」「已终止」「不存在」;修复 wait_for_completion 在 final_result 就绪前返回导致的「ID 被占用」误报。
- 统一后台完成通知池 poll_completion_notifications,合并子智能体与后台 run_command 两路轮询,避免逐条触发工作循环与单工作区互斥冲突。
- 删除本次新增的各类 debug_log / notify_pool_log 调用及辅助脚本。
2026-06-25 04:16:44 +08:00
53b3669f1d
fix(stop): 强停止按钮两段式逻辑与 work_timer 持久化
2026-06-23 19:27:50 +08:00
6379f8c729
feat: complete conversation versioning UX and restore workflow
2026-04-11 16:16:40 +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
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
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