|
|
0f9fd1b25c
|
chore(release): 公开发布适配——泄漏净化 + README 修订 + 发布脚本与排除清单
|
2026-08-22 12:25:59 +08:00 |
|
|
|
9602875391
|
feat(ui): 极简摘要行补全工具文案、工作流图标统一新设计、只读模式放行调研工具
- MinimalBlocks: 摘要行分类覆盖全部原生工具,新增 MCP(mcp__前缀)/工作流三分/待办两分等文案;counts 改由 CATEGORY_ORDER 生成,根治新增分类漏初始化导致摘要空白的 bug
- workflow.svg 换新设计(圆+扁菱形+圆弧弯+圆角方块),侧边栏/快捷菜单窗口内联图标同步,侧边栏图标尺寸修正为 18px
- TOOL_ICON_MAP 增加 7 个工作流工具映射,补 submit_plan/terminate_sub_agent
- tools_execution: 只读模式放行 terminal_session/snapshot、子智能体全家、list_mcp_servers、list/get_workflow_status 及全部 mcp__ 前缀工具
- EditSummaryCard: 桌面端 diff 弹窗最大高度改为 min(可用空间, 70vh, 640px)
- 工作流编辑器:移除阶段块「单出线/终点」文字与顶栏激活按钮;提醒/报错改为按钮下方固定高度浮层(内部滚动+点外部关闭),不再挤占页面布局
|
2026-08-22 01:20:14 +08:00 |
|
|
|
8c1dd407df
|
feat(workflow): 工作流库管理工具与编写技能,修复运行时 UI 多处问题
- 新增 list_workflows / save_workflow 工具:归档式创建与覆盖,
归档时完整结构校验、覆盖前备份可恢复、name 与目录名一致性检查
- 新增内置技能 workflow-authoring:WORKFLOW.md 编写指南 +
init/validate 脚本 + 节点详解与三个完整示例,skill_hints 挂载
- deactivate_workflow 挪工具循环特判层并广播摘牌快照,
修复模型自主退出后 slash 菜单与快捷卡片残留
- 工作流卡片消失改为退出动画:store exiting 状态保留快照播完动画
再清空,QuickDock hasContent 动画期间保持展开
- 运行期 workflow 通知 visibility 修正为 compact(原误走用户消息渲染)
- 激活/退出通知文案中性化,不向模型透露内部操作路径
- 修复空闲对话刷新后输入栏 token 圆环无数值(bootstrapRoute 补拉取)
- 修复 slash 激活工作流后输入栏 "/" 残留(跳转新对话前落盘草稿)
- 侧边栏工作流导航图标放大至 20px
|
2026-08-21 23:40:06 +08:00 |
|
|
|
4d9b709a9e
|
feat(workflow): 实现工作流运行时并统一审核智能体配置
工作流运行时:
- 状态机与编排:modules/workflow_state_manager.py + server/workflow_flow.py
(激活快照/阶段推进/审核节点/分支决策/柔性通知/max_stage_rounds 撞限询问)
- 五个工具(activate/report_stage/choose_branch/get_status/deactivate)
与 REST API(server/workflow_runtime_api.py)
- 前端:QuickDock 工作流窗口(三段式进度,推进/驳回/完成/退出动画)、
slash 菜单激活与退出、轮询事件消费、进入对话状态回填
- 审核:modules/workflow_review_agent.py(pass/reject 把关节点)
审核智能体统一配置:
- 个人空间新增「审核智能体」标签页:自动审批/目标/工作流三个审核智能体
统一选择模型+思考模式+超时/轮次参数
- modules/review_agent_config.py 统一解析(复用子智能体模型库),
废除独立 json 配置(auto_approval/goal_review/workflow_review)
- goal 审核接入 max_rounds 上限(原常量未接线);workflow 审核硬编码 6 轮改为可配
联调修复:
- /new 空对话激活:后端自动创建对话并完整继承模式参数
(work_mode/permission/execution/reasoning_effort,修复思考模式丢失)
- 激活/通知消息 starts_work=True,恢复智能体回复头部与工作计时
- 节点目录改为从开始节点拓扑遍历(修复按保存顺序显示错乱)
- QuickDock 乐观掩码不再掩盖工作流实时状态(修复 /new 激活窗口瞬关+延迟瞬开);
/new 路由不套用全局内容缓存(修复空对话展开空白数秒后收回)
- 工作流完成先广播完成态快照再摘牌,窗口播完落定+退出动画再收起
- 激活提示中的工具名修正为 report_workflow_stage
|
2026-08-21 16:50:35 +08:00 |
|
|
|
d071292c81
|
feat(workflow): 工作流编辑器——可视化画布编辑 + WORKFLOW.md 落盘 + REST CRUD + 侧边栏入口
- 编辑器:/workflows 库页 + /workflow/<name> 编辑器(Vue Flow 画布,开始/结束/阶段/审核/分支五类节点,白前进/蓝通过/红驳回三色语义连线,dagre 自动排版)
- 落盘:modules/workflow_manager.py;host 存运行态根 workflows/,web/docker 存 users/<user>/personal/workflows/;源码树 workflows/ 为内置种子,用户库同名覆盖、内置不可删
- REST:GET/PUT/DELETE /api/workflows[/<name>],保存时后端强制 error 级结构校验
- 路由根治:新增 isConversationIndependentRoute() 统一谓词(URL 派生),收敛全部 9 处对话接管/URL 写回判断点,根治 /workflows 下地址栏被拽回对话的问题
- 深色主题 token 提亮(surface-soft/card/muted 去近黑色阶)
|
2026-08-21 01:38:03 +08:00 |
|
|
|
833961766f
|
docs(workflow): 工作流功能设计方案与调研报告
|
2026-08-19 13:53:51 +08:00 |
|
|
|
17c49f6258
|
fix(goal): 目标状态改为对话级存储,修复多对话目标串扰与进度事件串台
- goal_state.json(工作区级单实例) → goal_states/<conversation_id>.json(对话级)
- 移除 start_conversation_id 冗余字段与“工作区唯一目标”“压缩改id”等过时注释
- goal 进度/审核事件快照补 conversation_id,前端现有过滤逻辑自动生效
- 清理 tasks/media.py、tasks/helpers.py 未使用的残留 import
|
2026-08-19 13:53:51 +08:00 |
|
|
|
4b381f3206
|
feat(multi-agent): 主/子智能体 prompt 补充卡片与文件预览输出格式规范,修复 master 模板 str.format 花括号冲突
|
2026-08-18 17:09:05 +08:00 |
|
|
|
4f5b27f57c
|
feat(input): slash 菜单新增 // 直达 skill 与五个功能项,移除压缩二次确认
- // 键入直达 skills 子菜单(Escape 退回 root 不自动重进)
- 新增:新建对话(/new /clear 均可匹配)、网络权限、工作模式、
切换工作区(host)/切换项目(docker)、对话类型(仅新对话可切)
- 压缩对话点击即执行,去掉 confirmAction 二次确认
|
2026-08-13 17:38:09 +08:00 |
|
|
|
8d10effd56
|
feat(permission): 只读权限联动执行环境锁定沙箱
- set_permission_mode 进入 readonly 时强制切 sandbox(存 pre_readonly_execution_mode 供切离恢复)
- set_execution_mode 新增 readonly 锁(拦 direct,与 plan 锁并列)
- apply_pending_runtime_mode_changes 执行环境应用加 try/except 防御
- POST /api/permission-mode 响应带 execution state
- 前端执行环境组 readonly 时禁用+锁定标记,权限切换后同步执行环境
|
2026-08-13 15:24:24 +08:00 |
|
|
|
ec294e2545
|
feat(work-mode): 新增运行模式系统 plan/ask/execute 三档
- 输入栏新增运行模式切换器,仅对话空闲可切换,新对话继承当前选择
- plan 档锁定只读权限与沙箱执行环境(UI 禁用+后端强制),网络权限保持可调
- 计划写入 .astrion/plan/,submit_plan 提交后前端弹窗审批,批准自动切换 execute
- ask 档直接输出讨论并禁用 ask_user;execute 档自行补全细节直接开工
- 个性化新增默认运行模式(默认 plan),主提示词加运行模式让位注解
- 修复后台命令绕过只读权限的漏洞(宿主机按 sandbox_write_access 选只读沙箱计划)
- 计划审批与询问弹窗改用 100dvh 动态视口高度,适配移动端 Safari
|
2026-08-13 12:52:19 +08:00 |
|
|
|
aac374b6f4
|
fix(context): AGENTS.md 注入仅取根目录,子目录文件只通知相对路径
- _load_agents_md_content 由 rglob 递归改为只读根目录 AGENTS.md
- 新增一级子目录扫描:仅通知相对路径(最多 20 个、30s 超时兜底),不注入内容
- 跳过通用非源码目录(.git/node_modules/.venv/dist 等),不针对本项目特化
- 注入模板新增修改时间与子目录通知占位符
|
2026-08-13 00:39:27 +08:00 |
|
|
|
cedef87dab
|
fix(skills): /菜单插入 skill 改用相对路径,避免暴露服务器绝对路径
- /api/skills 列表 path 从 str(skill_file.resolve()) 改为相对工作区根路径
- 注入对话历史与任务快照的 skill path 同步改为相对路径
- _resolve_workspace_skill_path 本身支持相对路径解析,前端无需改动
- 存量绝对路径仍可解析,向后兼容
|
2026-08-13 00:21:33 +08:00 |
|
|
|
4f940e9a86
|
fix(avatar): 移除并行工具轮播,头像固定显示当前工具,文字过渡与SVG切换同步
|
2026-08-12 23:41:34 +08:00 |
|
|
|
56c067b710
|
feat(memory): 新增项目记忆最大注入条数设置,记忆索引按最近修改排序
- 个人空间-上下文新增「最大记忆注入」(默认 20,最小 5,留空无上限)
- 提示词中项目记忆索引从文件名字典序改为按 mtime 倒序注入
- 超上限时截断并注入说明:共 N 条、仅注入前 x 条、其余用 search_project_memory 检索
- 修复 memory_system 模板条件块只删标记不删占位文字导致的「暂无xx记忆」残留
|
2026-08-12 23:07:14 +08:00 |
|
|
|
16900b0a20
|
fix(chat): 修复子智能体完成通知不实时显示,压缩残留锁死输入与切换
- 通知:inject_runtime_user_message 不再把子智能体任务 id 透传为事件顶层
task_id(sender setdefault 不覆盖,前端任务归属守卫丢弃事件;socket 通道
在轮询模式下不渲染,双通道断头导致只能刷新后从历史看到)。后台指令因透传
的是 command_id 而不受影响
- 通知:修复 _persist_and_echo_preceding_notice 回显写在 except 分支内,
批量通知前 N-1 条从不实时回显
- 压缩:移除「压缩中切换/新建对话需确认并取消压缩」拦截(多对话独立运行后
无存在意义)
- 压缩:新增 compressionConversationId,输入/发送/停止锁按对话隔离,/new
新建页不再被其他对话的压缩状态锁定
- 压缩:metadata 记录 compression_pid,status/compression_status 读取时按
pid 懒清理进程重启后的残留 in_progress 标记;run_deep_compression 异常时
自动清理标记
|
2026-08-12 22:27:31 +08:00 |
|
|
|
34bb5d61cc
|
fix(personalization): 修复子智能体最大执行轮次保存丢失,多智能体豁免该上限
- sanitize_personalization_payload 白名单注册 sub_agent_max_turns /
sub_agent_compress_threshold_tokens(此前保存时被静默丢弃,刷新回默认)
- PUT /api/multiagent/settings 恢复默认由 pop() 改为写显式 null,
绕开 save 的 fallback=existing 复活旧值问题
- task.py:multi_agent_mode 任务一律不设轮次上限(含历史任务恢复),
该设置仅对传统后台子智能体生效
- 个人中心文案标明适用范围
|
2026-08-12 19:14:22 +08:00 |
|
|
|
ff927d6739
|
refactor(files): 下线独立 /file-manager 页面及其写操作端点
- 删除页面路由:/file-manager、/file-manager/editor、/file-preview/<path>
- 删除写端点:/api/gui/files/{create,delete,rename,copy,move,upload,download/batch}
- 保留主 SPA 共享端点:/api/files、entries、text、download、/api/project/files/search
- 拆除前端入口链:QuickMenu → InputComposer → App.vue → openGuiFileManager
- 删除 static/file_manager/ 目录(git 历史可恢复)
- sanitize_filename_preserve_unicode 迁至 server/utils_common.py,
清理 5 个拆分文件的死 import,修复 api_v1/chat 上传的引用来源
- 安全收益:create/rename 路径穿越与 preview 存储型 XSS 随页面物理消解
|
2026-08-12 19:14:01 +08:00 |
|
|
|
99f4d3d1dd
|
fix(server): 对话级主任务门闸,修复并发主任务交叉写入对话历史
事故:socketio 用户任务(不在 task_manager 注册)与完成通知轮询器
派发的通知任务并发写入共享 conversation_history,产生 assistant 乱序段,
导致 Kimi API 400(tool_call_id is not found)与通知永久丢失。
- 新增 server/main_task_gate.py:对话级主任务门闸(单写者不变量,
一个 WebTerminal 同一时刻只允许一个主聊天任务)
- process_message_task 作为唯一入口获取/认领门闸,拿不到即拒绝;
通知链 token 经 session_data 移交,失败释放并回滚通知标记;
_run_chat_task finally 兜底释放防泄漏
- execute_tool_calls 改守护包装(try/finally 复位 _tool_loop_active),
杜绝并发交错导致标志卡死
- build_messages 增加孤儿 tool 消息剥离防御层(止血,不替代门闸)
- AGENTS.md 新增 §12 记录门闸架构与改代码硬约束
|
2026-08-12 18:01:32 +08:00 |
|
|
|
70d2bceb45
|
feat(chat): 编辑摘要卡片文件列表限高 5 行 + 内部滚动
原先全量渲染无高度限制,编辑文件多时卡片撑爆消息流。现 160px 封顶
(32px x 5 行),超出内部滚动,滚动条隐藏(同 QuickDock 惯例)。
|
2026-08-12 11:24:12 +08:00 |
|
|
|
dd08845bbc
|
fix(quickdock): 子智能体/后台指令/文件行选中态由近黑改为 hover 色
is-active 原先使用 --surface-soft,dark 主题下为 #0f0f0f 近黑色,违反
大面积色块禁近黑规范;改为 var(--hover-bg),点击选中与 hover 视觉一致。
|
2026-08-12 11:23:57 +08:00 |
|
|
|
4b78fd6d40
|
fix(input): 输入栏 + 按钮改 SVG 图标,修复视觉重心偏下
原为裸文本 + 字形(font-size 20px),flex 居中的是行框而非字形光学
中心,hover 背景块下可见偏下。改用项目既有 SVG 加号(16x16,stroke 2),
与 WorkspaceSwitcher 同路径。
|
2026-08-12 11:23:41 +08:00 |
|
|
|
011f9e14bc
|
fix(file-manager): direct 执行环境下文件工具不再误拦授权范围外路径
run_command 是否走沙箱只看执行环境,而 read_file/write_file/edit_file 是
进程内文件操作不走 OS 沙箱,唯一防线是 FileManager._ensure_host_access
的授权路径检查,但它不知道执行环境,导致完全访问权限(direct)下仍按
授权列表拦截。现 FileManager 同步 host_execution_mode,direct 时与
run_command 语义对齐直接放行,sandbox 模式检查保持不变。
|
2026-08-12 11:23:27 +08:00 |
|
|
|
8da4a596eb
|
fix(frontend): 空对话与显式新建路由下 has_images/has_videos 不应用残留状态
status 中的值来自 terminal 残留的旧对话上下文,空对话语义上无图片/视频,
直接置 false,否则误拦 handleModelSelect 的图片/视频能力检查。
|
2026-08-12 11:23:06 +08:00 |
|
|
|
55e0dcfb4f
|
feat(modify-history): 新增文件修改留痕——编辑实时落盘 diff、开关与 prompt 注入
|
2026-08-12 02:20:40 +08:00 |
|
|
|
4d2fe0a91f
|
docs: AGENTS.md 约定视觉验证默认由用户完成
|
2026-08-12 02:20:30 +08:00 |
|
|
|
9a2469e3fb
|
chore(input): 输入栏类型切换器移除人形 SVG 图标改为纯文字
|
2026-08-12 02:20:17 +08:00 |
|
|
|
a33c3fa6af
|
fix(sidebar): 深色模式类型切换选中态配色,双类型常驻缓存修复切换动画
|
2026-08-12 02:20:03 +08:00 |
|
|
|
ee03b34c41
|
docs: AGENTS.md 设计规范新增大面积色块禁纯黑条款
|
2026-08-11 23:39:02 +08:00 |
|
|
|
492b738859
|
refactor(ui): 打勾框收敛为 FancyCheck 单一组件并修复残缺路径
- 新增 components/common/FancyCheck.vue 作为全局唯一打勾框实现(checked/size/accent-checked)
- 修复个人空间「编辑摘要实时显示」开关 d 路径中段缺失导致对勾渲染变长
- 38 处内联 SVG 全部改为组件引用,删除四处重复的 fancy 样式
|
2026-08-11 23:39:01 +08:00 |
|
|
|
79f8ffa368
|
feat(chat): 编辑摘要卡片弹窗改为锚定定位并修复深色近黑样式
- 弹窗水平相对编辑卡片居中,垂直优先锚定条目上方(空间不足自动翻到下方),高度吃满可用空间
- 行 hover 改用 --hover-bg(深色提亮),弹窗头部去近黑衬底改用分隔线
- 行高亮 is-active 仅钉住态挂载,修复 hover 消失延迟
|
2026-08-11 23:38:47 +08:00 |
|
|
|
56a0acdad2
|
feat(chat): 新增本次工作编辑摘要卡片——工作段末尾显示合并diff,支持显示时机设置
- write/edit 成功后以首次编辑前内容为基线重算净变化 diff,实时写入发起工作的 user 消息 metadata.edit_summary(含带行号上下文的 diff 行),随对话持久化,异常停止保留最后一刻状态
- 消息流工作段末尾渲染卡片(已编辑 N 个文件 + 各文件 +-),居中弹窗展示合并 diff(复用现有 diff 样式),桌面 hover 浮窗/点击钉住,移动端点击模态
- 个人空间新增「编辑摘要实时显示」开关(默认关闭=工作完成后才显示)
- edit_summary_updated 事件 socket + 任务事件流双通道实时更新
|
2026-08-11 21:05:06 +08:00 |
|
|
|
d4301a0f56
|
fix(sidebar): 修复收起时透明对话列表可误触切换、类型切换器未隐藏的问题
|
2026-08-11 19:03:38 +08:00 |
|
|
|
d3ec94e7e8
|
feat(sidebar): 分组模式统一顶部对话类型切换器,列表切换改推挤动画
- 分段控件(普通对话/多智能体)在分组模式下也显示在搜索框下方,移除工作区标题行单字切换按钮
- 列表切换移除 Transition out-in(消除空白期),改为同步推挤滑动:新面板绝对定位从侧边滑入顶出旧面板,去掉 opacity 淡入淡出
- 切换时重置列表滚动位置;同步更新 AGENTS.md 描述
|
2026-08-11 18:14:22 +08:00 |
|
|
|
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 |
|
|
|
b51b2597a8
|
fix(personalization): 修复拖选文字松开落在遮罩上误关抽屉的问题
- 个人空间抽屉与角色编辑弹窗的遮罩关闭由 click.self/mousedown.self
改为「按下与松开都发生在遮罩上」的成对判定
- 修复在输入框内拖选文字、松开落在遮罩上时被误判为点击遮罩,
导致抽屉/角色编辑器意外关闭、表单内容丢失
|
2026-08-11 11:21:30 +08:00 |
|
|
|
1c339d2e6f
|
refactor(conversation): 多智能体从全局模式重构为对话不可变类型属性
- 废除「多智能体模式」全局状态,多智能体改为对话创建时确定的不可变属性
- URL 统一为 /<conv_id>,旧 /multiagent/* 由前端 bootstrap 重定向到裸路径
- 前端拆分为三个语义单一状态:currentConversationType(当前对话类型)、
newConversationType(空对话待创建类型)、sidebarConversationType(列表过滤器)
- 输入栏底行 + 右侧新增对话类型选择器,发送时按类型选择创建接口
- 侧边栏新增类型切换 UI:平铺模式分段控件、分组模式单字切换按钮,
列表区域左右滑动过渡动画
- 清理跨文件主题补丁:_overlays.scss 中覆盖输入栏/对话区/侧边栏/右侧面板的
dark/light 变体(含 !important)全部删除(-363 行),按组件回迁到
_composer/_chat-area/_conversation/_right-panel 各自文件内的主题变体块
- AGENTS.md §11 同步重写为新模型并新增 11.0 前端对话类型模型说明;
§5.5 新增第 10 条「主题变体必须与基础定义同文件(禁止跨文件补丁覆盖)」
|
2026-08-11 11:21:16 +08:00 |
|
|
|
59a9f6ab62
|
feat(multi-agent): create_custom_agent 支持同 role_id 覆盖更新
- 同 role_id 重复创建时由报错改为覆盖式保存,结果中返回 overwritten 标记
- 覆盖仅影响之后新创建的实例,运行中实例 prompt 已快照冻结不受影响
- 工具 description 与结果格式化文案同步说明该语义
|
2026-08-11 01:51:22 +08:00 |
|
|
|
d5b1e2c3af
|
docs: 对话类型统一重构方案(消除多智能体模式全局状态)
|
2026-08-09 18:15:42 +08:00 |
|
|
|
165c771cc7
|
fix(server,static): 网络权限实例级快照与快捷窗口跨对话残留消闪
网络权限此前以进程级 os.environ 为唯一真相:每个 WebTerminal 初始化
都把 env 重置为默认值(切 full 后任何新 terminal 创建即失效),多实例
并发互相覆盖;后台指令与持久终端 shell 直接读 env,导致权限不生效或
跨工作区串扰。
- 唯一真相改为 WebTerminal 实例属性,init/set 不再写 env
- 后台 run_command: create_background_command 快照传入执行线程
- 持久终端 shell: 注入 network_permission_getter 实时取所属终端实例的值
- 快捷窗口: backgroundCommand/subAgent store 在 fetch 前同步剔除
conversation_id 不属于当前对话的残留记录,消除「旧对话数据闪一下
再清空」造成的“任务被停了”误解(后端任务实际一直在运行)
验证: py_compile 通过;冒烟 6 用例 OK;前端构建成功
|
2026-08-08 23:59:45 +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 |
|
|
|
045cc72c43
|
feat(ask-user): 弹窗新增「不回答」选项
- 弹窗 footer 新增「✕ 不回答」按钮,只跳过当前查看的问题,
其余问题保持待回答
- 后端 answer() 支持 dismissed 类型答案,跳过非空校验
- 模型侧工具结果返回「用户没有回答或不想回答这个问题,
请直接输出内容向用户提问」,引导模型改为在对话中提问
|
2026-08-07 14:31:05 +08:00 |
|
|
|
1cd3a742af
|
fix(agent): 修复工具结果system_message注入夹断tool序列导致的API 400
- execute_tool_calls 循环内改为收集 pending_tool_system_messages,
整轮工具结束后统一注入,避免并行 tool_calls 中途插入 user 消息
- terminate_sub_agent handler 摘除结果中的 system_message,
主智能体自行终结子智能体时不再注入冗余 user 消息
|
2026-08-07 14:11:22 +08:00 |
|
|
|
dd2f00276d
|
refactor(input): 移除多智能体模式切换的运行中任务限制
|
2026-08-07 11:54:45 +08:00 |
|
|
|
d2dd097248
|
fix(chat): 修复移动端运行期滚动脱锁失效,流式渲染分块防重建
- ChatArea: 新增触摸手势脱锁(手指下拉>8px 视为脱锁意图),与桌面端 wheel-up 同路径;嵌套滚动容器内触摸不解除外层锁定
- ChatArea: 展开锚定改为按条件跳过——仅贴底锁定中的运行态块交给逐帧追底,手动展开(含脱锁后历史块)走锚定,修复外框与内容移动不同步
- scroll: 脱锁标志重置改为严格贴底判定(<=4px),nearBottom 70px 容差与意图冷却期内不再误清脱锁标志,修复移动端第一次上滑必被拽回底部
- lifecycle: 移动端视口 watcher 提前到路由/对话加载前,避免加载期按桌面布局渲染
- MarkdownRenderer: 文本段按顶层块分片渲染+分段级缓存,流式期间已完成前缀块 DOM 不再重设,保护 show_file 卡片/表格/KaTeX 不被反复重建
- view_image: 工具结果携带 size,前端按 path 走 /api/file/content 加载原图,图片限高 480px 防长截图占满对话区
|
2026-08-07 11:32:20 +08:00 |
|
|
|
d2e4422c80
|
feat(chat): 文件卡片新增 HTML 全屏预览
- 抽取 showHtmlSandbox/showHtmlFullscreen 共享模块(CSP/守卫/srcdoc/overlay)
- ShowFileCard 对 .html/.htm 增加预览按钮,复用卡片全屏 overlay
- 全屏 payload 支持 title/notice,检测到外部资源引用时顶栏提示
|
2026-08-05 02:54:58 +08:00 |
|
|
|
ea232d6ac6
|
fix(sidebar): 修复移动端对话「...」菜单点击无反应
- 触屏首次 tap 只应用 hover(按钮显现)并吞掉 click:@media (hover: none) 下「...」按钮与工作区操作按钮常显
- 菜单 fixed 定位受 .mobile-panel-sheet 常驻 transform 影响相对面板错位、被 overflow 裁剪:三处菜单 Teleport 到 body,样式选择器提为顶层,z-index 提升至 2300(高于移动端遮罩 2000)
|
2026-08-05 02:10:34 +08:00 |
|
|
|
2db77fe663
|
feat(chat): show_html 卡片工具栏改为 ⋯ 菜单并新增全屏预览
|
2026-08-05 01:03:03 +08:00 |
|
|
|
79b916f44c
|
fix(chat): 修复 show_html 流式渲染回归并加固卡片沙箱
- renderMarkdownText 透传 isStreaming:恢复 js=off 实时渲染与 js=on 渲染中占位(回归根因:MarkdownRenderer 未透传流式标志)
- js=on 沙箱加固:srcdoc 强制注入 CSP meta(connect-src 'none' 等)与滚动守卫脚本(scrollIntoView/focus 内部化),iframe 加 allow="fullscreen 'none'"
- 卡片尺寸从 JS 内联像素改为 CSS min()+aspect-ratio 自适应:流式/历史宽度一致,resize 自动跟随
- 修复卡片 wrapper 叠加 margin 导致底部圆角被 overflow:hidden 裁切
|
2026-08-05 00:10:47 +08:00 |
|
|
|
677604b538
|
fix(chat): 运行中逐帧贴底锁,修复块外框与内容移动不同步
|
2026-08-03 23:18:49 +08:00 |
|