ae70e4902e
refactor(stop-button): 拆分停止按钮和后台任务控制
...
停止按钮现在只停主智能体,与后台任务无关。
- 后端 cancel_task 简化:移除两段式判断、force_stop参数、is_ma_mode分支
- 删除 _force_stop_multi_agent 方法
- 新增 /api/sub_agents/stop_all 接口(mode=terminate/soft_stop)
- 前端 stopTask 移除 forceStop 概念,只取消主智能体
- 取消期间不再二次点击终结子智能体
子智能体停止按钮:
- InputComposer state bar 加'x个子智能体运行中'按钮
- 独立浮层显示,不依赖 git 栏(参考 askuser 方案)
- 点击传统模式弹窗终结;多智能体弹窗软停止
- App.vue 新增 handleStopAllSubAgents 调 ui.confirmDialog
后台指令停止按钮:
- LeftPanel 后台指令标签右边加停止按钮
- 仅当 panelMode=backgroundCommands 且存在运行中后台指令时显示
- 调 backgroundCommandStore.stopAllCommands 无二次确认
showStopIcon 只看主对话 streaming 状态:
- 后台任务在跑但主对话空闲时显示发送按钮
- 多智能体 / 传统模式统一处理
子智能体 store 加 stopAllAgents(mode) action 调新 API
useLegacySocket task_stopped handler 简化:
- 移除 multi_agent_reloaded 重载
- 移除'再次按下停止按钮以结束后台任务'提示
- 保留 has_running_multi_agent/sub_agents 用于 taskInProgress 判定
清理调试日志:[TaskCancel][stop_debug], [STOP_DEBUG] 全部去掉
保留 ma_debug 框架用于多智能体调试
2026-07-14 18:34:56 +08:00
30bfb79cbd
wip(multi-agent): 停止按钮软停止链路调试日志+对话切换500修复+子智能体进度面板+多智能体软停止机制
2026-07-14 17:50:15 +08:00
05e8ea5e40
feat(frontend): 输入栏现代化重设计 + 配套高度/配色修复
...
- 输入栏由体育场形改为圆角矩形,输入区与按钮行分离
- +/发送按钮移至底部行(左下/右下),缩小尺寸、圆角 hover、同心圆角对齐
- 发送按钮去光晕:浅色黑底白三角、深色白底黑三角,仅留浅阴影
- logo 旁思考模式按钮去除扩散光晕,focus 仅留描边环
- 对话区预留高度基准 80→90 适配更高输入栏,欢迎语 padding 同步加大
- /菜单命令名配色:经典 accent 橙、浅/深色保留 state-info 蓝
- /菜单及深色 + 菜单 hover 统一为侧边栏同款 --theme-tab-active(修复深色全黑)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-06 18:25:20 +08:00
b4030c386e
refactor(frontend): 颜色 token 系统两层重构 + 三主题填色 + 去半透明
...
将前端配色从散落的硬编码/双命名体系(--claude-* / --theme-*)重构为
两层 token 结构(原始层 + 中性语义层),并按"经典抄 Claude、浅色抄
ChatGPT、深色自研"的定位完成三主题填色,同时建立 stylelint 防回退栏杆。
代码大量由 AI 生成的历史遗留配色问题(同语义多值、跨主题塌缩、强调色
撞文字色、fallback 第二真相源等)在此一并收口。
== 一、Token 结构重构(_tokens.scss)==
- 重写为两层:原始层 + 语义层;组件只引用中性语义名
(--surface-* / --text-* / --border-* / --accent* / --state-* 等)。
- --claude-* / --theme-* 降级为兼容别名(41 个转发),迁移完成后删除。
- 三主题(classic / light / dark)+ 首屏回退(:root:not([data-theme]),
与经典同值)全部补齐,结构对齐、不再缺项。
== 二、三主题填色 ==
- 经典 = Claude 官网亮色盘:暖奶油表面阶梯
canvas #faf9f5 < soft #f5f0e8 < card #efe9de < cream-strong #e8e0d2
< 纯白浮起;文字 #141413;hairline #e6dfd8;暖橙 primary #cc785c。
- 浅色 = ChatGPT 亮色盘:冷白 #ffffff / 侧栏 #f9f9f9 / 嵌套 #f3f3f3,
中性灰文字,近黑 primary #181818。
- 深色 = 自研中性灰阶,本轮完全不动(原样保留)。
- 修复塌缩 bug:强调色在 light/dark 原被误填成灰(CTA 失去品牌色),
现统一回品牌 primary;light 表面原全塌成 #ffffff(过于平面),
现按灰阶拉开层次。
- 强调色克制(CTA-only voltage):primary 仅用于发送按钮/logo 等极少
数处;hover / 选中 / 运行态一律走中性灰(运行态指示器从 amber 改灰)。
- 对话区背景从纯白改为暖奶油 canvas;个人空间下拉菜单、git 状态条、
二级菜单等收口到统一语义色。
== 三、全面去半透明 ==
- 所有实体面板/二级菜单背景改为不透明(surface token 由半透明白改实色,
--mobile-menu 三亮色主题改实色)。
- 移除已不透明面板上失效的 backdrop-filter 磨砂(移动端菜单、右键菜单、
模型模式下拉等)。
- 遮罩 scrim(--overlay-scrim)与刻意玻璃质感装饰保留半透明。
== 四、块展开底色统一 ==
- 思考/工具块展开区底色统一为对话背景色:.collapsible-block 及其 header
背景由 --surface-soft 改 transparent,与堆叠块(stacked-block)一致,
消除"单块奶油底 vs 多块透明"的不一致。
== 五、布局修复 ==
- 工作区隐藏后残留空白:.workspace-panel--collapsed 补 flex-basis:0 +
width/min-width:0,修正 flex-basis:auto 被子元素内容宽度撑开导致内联
width:0 失效、collapsed 后仍占 ~300px 的问题。
== 六、防回退栏杆(新增)==
- 新增 .stylelintrc.cjs:三条规则拦截裸 hex / rgb()|hsl() 字面色 /
var(--x, fallback) 兜底 / prefers-color-scheme;存量未清理文件用
BASELINE_EXEMPT 临时豁免(现仅剩 5 个 admin 页面,本轮按用户要求不处理),
清理一个移除一个、不再回退。
- package.json:build 脚本接入 stylelint(tsc → stylelint → vite),
新增 lint:css 脚本及 stylelint/postcss-scss/postcss-html 依赖。
- 修复 25 处 \!important 笔误(zsh 历史扩展污染导致的无效 CSS)。
== 七、辅助脚本(新增 scripts/)==
- lint_check.py:Node 环境不可用时的 stylelint 替身(复刻三规则 + 括号
校验,支持多行声明检测)。
- color_map.py:硬编码色 → token 反查,判定可映射/野色。
- strip_fallback.py:安全剥离已定义 token 的冗余 fallback。
== 八、文档 ==
- CLAUDE.md / AGENTS.md 前端设计规范更新:颜色规则扩写为三主题定位 +
两层 token + 表面层次 + 强调色克制 + color-mix 派生 + stylelint 栏杆;
新增"实体面板禁止半透明"规则;"禁止边缘光晕"补充"仅在用户明确允许
或要求时才可使用"。
注:前端构建验证(npm run build / lint:css)由用户本机完成;AI 工具
上下文 Node v24 段错误无法运行 node/npm/vite/stylelint。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-06 16:20:58 +08:00
03cb39924a
feat(host): support concurrent workspace conversations
...
Implement host-mode multi-workspace concurrency while preserving one active task per workspace. Host terminals are scoped by workspace id, host workspace switching no longer globally refreshes or blocks on tasks, and task APIs now expose workspace/conversation metadata for frontend coordination.
Update conversation navigation so creating/loading conversations during an active workspace task is view-only and does not mutate backend terminal context. This prevents running task output from being pushed into the currently viewed conversation after switching or creating a new conversation.
Add running task awareness to the frontend sidebar, composer, and polling flow. Running tasks can be shown across workspaces, current-workspace active conversations render inline loaders, completed unviewed tasks persist as check indicators across refresh, and completed tasks clear once viewed.
Restore running conversations correctly after switching workspace/conversation or refreshing during an active task. REST polling is rebound only for the matching conversation/task, stale poll responses are ignored, empty assistant placeholders are restored before first content, and completion clears loader/stop states without requiring page refresh.
Adjust host workspace UX so switching workspaces loads the active conversation if one is running, otherwise opens the new-conversation state. Other conversations in a busy workspace are view-only with disabled input instead of blocked navigation.
Validation: python3 -m py_compile server/auth.py server/context.py server/conversation.py server/status.py server/tasks.py; python3 -m unittest test.test_server_refactor_smoke; npm run build --silent 2>&1 | tail -n 12.
2026-05-29 17:54:11 +08:00
0b6b39f262
fix(ui): refine sidebar and personal space styling
2026-05-28 14:15:02 +08:00
ecba45da65
feat(ui): add sidebar list and workspace animations
2026-05-28 04:49:52 +08:00
3bc6f718eb
feat(ui): refine sidebar workspace and code blocks
2026-05-28 03:53:49 +08:00
cd82c6d658
fix(ui,runtime,search): merge runtime/frontend stabilization into main
2026-05-27 16:38:19 +08:00
8395cf8b4b
fix(prompt): merge disabled-tool notice into leading system prompts
2026-05-09 18:56:49 +08:00
b151f8ff71
feat: add host workspace manager, mcp-tool-config skill, and UI enhancements
2026-04-28 13:04:51 +08:00
34a6577f3a
feat: ship permission/approval UI with mobile support and context usage ring
2026-04-11 04:07:55 +08:00
4124faa040
feat(frontend): 优化聊天界面与监控交互体验
2026-04-10 14:34:18 +08:00
c88b3e9363
feat: inline workspace logo with theme adaptation and bump versions
2026-04-07 12:14:10 +08:00
1a3235be09
fix: add connection heartbeat and polish mobile tap feedback
2026-04-07 00:04:44 +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
b0941a247b
fix: reduce workspace scans in host mode
2026-02-06 17:09:19 +08:00
97da631e01
chore: refresh deep mode styling
2025-11-30 17:57:48 +08:00
87ceaad92b
feat: improve ui feedback
2025-11-30 00:09:05 +08:00
4563fad2d9
feat: enhance workspace toggle and mobile topbar
2025-11-27 18:42:08 +08:00
4cd4232c62
Revert "feat: restyle utility panel and streaming focus"
...
This reverts commit 931a0488cc .
2025-11-26 20:21:49 +08:00
931a0488cc
feat: restyle utility panel and streaming focus
2025-11-26 20:00:11 +08:00
b39d7cc795
chore: snapshot before tool ui fix
2025-11-26 18:07:52 +08:00
7cc91571de
feat: modularize frontend layout
2025-11-25 22:41:15 +08:00