2fcd241d94
fix(frontend): 移除历史消息加载时action-item的入场动画,仅流式输出时保留动画
2026-06-09 10:27:48 +08:00
4807c0b9f1
fix(frontend): 重构堆叠块高度引擎,根治鬼畜抖动并统一动画
...
StackedBlocks 旧实现每帧用 getBoundingClientRect 读正在过渡的块高度,
叠加 360ms runSync 轮询 + ResizeObserver + animateMoreToggle 三个驱动源
互相触发,形成不收敛的测量-回写反馈环 = 高频上下抽搐;且新块出现/展开
收起无外框动画(瞬间赋值且无 transition)。
高度引擎重构:
- 改测真实 DOM 稳定值(header.offsetHeight + content-inner.offsetHeight
+ border)算每块高度。content-inner 自身高度不受父级 collapsible-content
的 max-height 过渡/overflow 裁切影响,是稳定目标态值,杜绝读动画中间帧。
- 删除 runSync 轮询、animateMoreToggle JS lerp、逐帧 getBoundingClientRect。
measureAndCompute 仅在状态变化时测一次。
- ResizeObserver 只观察 content-inner(流式增长源),不观察被 transition 的
元素,断开写→RO→写回环。
- shell/viewport/inner 三者同一条 height/transform 260ms transition 同步过渡,
外框增高、传送带上移、展开收起、收起裁切全平滑。
单块路径统一(修 1→2 块重建鬼畜):
- splitActionGroups 阈值 >=2 改 >=1,单个 thinking/tool 也走 StackedBlocks,
消除 single↔stack 路径整体切换导致的组件重新挂载(表现为外框瞬间塌扁再展开)。
- 单块用 isSingle + .stacked-shell--single 还原原 single 外观(12px 圆角+透明底)。
首次/后续进场动画区分:
- ChatArea 传 conversation-running + is-latest-message。
- animated(运行中+最新) 控 TransitionGroup :appear/:css(块进场动画);
ready(首次 measure 后一次性) 控 shell/viewport/inner/collapsible-content
的 transition:初始挂载/历史批量加载高度直接到位不跳动,之后启用使展开/
收起在历史对话里也平滑。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-09 10:05:28 +08:00
0d4f6c9e56
fix(frontend): 修复对话压缩后页面抽搐、重复显示与滚动重置
...
三管齐下,消除 in-place 压缩触发的多余重载:
1. handleTaskEvent: _rebuildingFromScratch 重放时跳过
compression_finished/compression_state/shallow_compression,
打破 restoreTaskState 重放 → 再次触发压缩完成的无限循环。
2. handleCompressionFinished + compressConversation:
in-place 压缩(对话 id 不变)跳过 loadConversation +
restoreTaskState + loadConversationsList,
避免 resetAllStates 重置滚动状态和清空消息列表。
3. useLegacySocket conversation_loaded:
同对话 clear_ui 跳过 resetAllStates + fetchAndDisplayHistory,
避免后端 Socket.IO 推送触发二次重置。
2026-06-08 14:14:19 +08:00
66261e91c6
feat: 添加语音输入按钮,位于发送按钮左侧
...
- SVG线条图标风格,只用hover交互,不做边框
- 图标路径:static/icons/mic.svg
- 测试页面:static/voice_test.html
2026-06-08 14:14:19 +08:00
b6818bc0d0
fix: edit_file diff 显示修复 — 多行替换排序 & 行间间隙
2026-06-07 23:48:08 +08:00
84336b1802
fix(input): 重构消息队列动画 — 去掉容器外框、纯位移FLIP同步动画
2026-06-07 23:20:57 +08:00
d639278182
fix(overlay): 修复手机端图片/视频本地选择兼容性问题
...
- 将 local-files 事件类型由 FileList 改为 File[],避免 WebView 中 FileList 在 input 清空后失效
- 屏蔽文件选择器关闭后 500ms 内的 backdrop click,防止 touch 穿透误关 overlay
- 延迟 200ms 清空 input value,避免国产手机 WebView 异步填充 files 被截断
2026-06-07 17:19:53 +08:00
7c08031413
fix(android): 修复国产手机 WebView 中本地图片/视频选择无效的问题
...
- 将 .file-input-hidden 从 display:none 改为 opacity:0 + position:absolute
国产手机(华为/小米/OPPO/vivo)WebView 对 display:none 的 input[type=file]
选择后不会填充 files 属性,导致 change 事件触发但 files 为空
- 在 ImagePicker/VideoPicker 的 change 事件中增加空文件警告日志
- 在 upload.ts handleLocalImageFiles/handleLocalVideoFiles 中增加空文件
时的 Toast 提示,避免静默失败
2026-06-07 16:56:55 +08:00
5723da8eb1
fix(android): 修复 App 内本地图片/视频选择无效的问题
...
- AndroidManifest.xml 补充 READ_MEDIA_IMAGES / READ_MEDIA_VIDEO 权限(Android 13+ 必需)
- 将已废弃的 startActivityForResult 替换为 registerForActivityResult(Activity Result API),解决 Android 13+ 文件选择器回调丢失
- 同步更新 versionCode 24 / versionName 1.0.22
2026-06-07 16:34:26 +08:00
180fb9bfbd
chore(deps): add sherpa-onnx for voice/ASR support
2026-06-07 16:23:33 +08:00
78544cb205
refactor: remove run_python tool, consolidate all execution to run_command
2026-06-07 16:23:01 +08:00
4bf0733907
feat: add minimal tool reel animation
2026-06-07 14:59:44 +08:00
a1dd97d5f1
fix(ui): align composer status controls
2026-06-07 03:41:27 +08:00
f50d87fc79
feat(chat): render streaming code blocks
2026-06-07 03:34:00 +08:00
f383b0ec71
fix(ui): refine dark code block styling
...
Remove stray borders, outlines, shadows, and token backgrounds from markdown code content in dark mode to avoid the visible white frame around code text.
Adjust code block body padding so code content sits closer to the block edge while staying visually aligned with the language label.
2026-06-07 02:57:58 +08:00
8617304fd4
refactor(prompt): freeze system prompts and update personalization modes
...
Freeze all leading system prompt blocks per conversation, including the main prompt, skills, workspace context, recent conversations, personalization, AGENTS.md, custom system prompts, and disabled-tool notices. Tool schemas remain dynamically generated outside the frozen prompt path.
Remove obsolete prompt injection files and code paths for thinking mode, deep thinking mode, sub-agent guidelines, and todo guidelines so prompt assembly stays simpler and cache-friendly.
Add personalization-controlled conversation_continuity with high/medium/low levels, rename the UI copy to 对话连续性, and wire it through backend sanitization, prompt generation, manage_personalization, frontend settings, and tool result rendering.
Add auto communication style support via prompts/auto_style.txt, matching the existing separate-file pattern used by human_like_style.txt.
2026-06-07 02:52:00 +08:00
d095531bb8
refactor(frontend): unify chat content rail alignment
...
Normalize the chat content rail around the input composer as the width baseline. This introduces shared rail variables, compensates message content for the actual scrollbar gutter, and separates mobile/webview behavior so desktop, mobile web, and app shell layouts stay centered consistently.
Align assistant text, markdown blocks, tables, minimal-mode summaries, expanded minimal steps, slash/runtime/git floating UI, and brief-message separators to the same horizontal rail. Remove the collapsed right resize handle and mobile menu glow while preserving the intended percentage widths for floating composer affordances.
Validation: npm run build --silent 2>&1 | tail -n 5
2026-06-07 01:55:20 +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
e34e2c965c
fix(frontend): 多行输入时保持光标可见
...
adjustTextareaSize 重算高度会打乱 scrollTop,导致多行输入时光标被滚出视野。
新增 keepEditorSelectionVisible:高度重设后,聚焦态用编辑器 coordsAtPos 算出
光标位置并滚回可视区(上下留 lineHeight*0.3 padding),非聚焦态恢复原 scrollTop。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-05 23:33:48 +08:00
9be775d346
feat(personalization): 简略消息显示改为持久化到配置文件
...
原来「简略消息显示」只存浏览器 localStorage(experiments),换设备/清缓存即丢。
现迁移到后端 personalization.json,与主题/默认隐藏工作区一致即时保存:
- 后端新增 compact_message_display 字段(默认 full)及清洗(仅 full/brief,
容错大小写空格,非法回退 full)
- store: PersonalForm 加字段;setCompactMessageDisplay 写 form + 即时 POST;
加载时同步进旧 experiments 镜像,并一次性迁移本地遗留 brief 回写配置文件
- 抽屉下拉与 ChatArea 改读 form.compact_message_display,experiments 作兜底
- 保留 localStorage 镜像保证向后兼容,老用户首次加载自动迁移偏好
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-05 23:31:06 +08:00
9399d3f41e
fix(models): preserve session model selection
2026-06-02 20:36:51 +08:00
779140ef59
fix(frontend): 新建对话时重置 token 统计
...
新对话流程(resetNewConversation)清空消息时一并调用 resetTokenStatistics,
避免上一对话的 token 统计残留到新对话。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-01 21:09:00 +08:00
469e804e38
fix(frontend): 工具块展开内部滚动条样式统一,滚动槽透明
...
- MinimalBlocks 思考内容(.thinking-content)补全自定义滚动条
- ToolAction 结构化显示三类滚动区(content/diff/code/output pre)统一样式
- 参考 git 状态侧边栏滚动条:10px 圆角胶囊滑块、半透明主题色
- 滚动槽(track)设为透明,贴合工具块灰色底色,避免明显槽体
- 颜色走 --claude-*/--theme-* 变量,三模式自适应
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-01 21:07:11 +08:00
548455f127
feat(frontend): 状态栏 +/- 行数变化加数字滚筒动画
...
新增 RollingNumber.vue:逐位纵向滚筒,值变大下面顶上来、变小上面压下来,
高位先动(38ms 错开),一次变化两格直达不路过中间数字。接入 InputComposer
状态栏的 +additions / -deletions 两处。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-01 19:15:30 +08:00
04cdf964af
fix(deps): 声明 httpx[http2] / h2,修复干净环境缺包启动失败
...
utils/api_client.py 用 httpx.AsyncClient(http2=True) 发请求,需要 h2 包。
旧 requirements 只写了 httpx,未声明 http2 extra;开发机碰巧已装 h2 所以
未暴露,干净 release 环境启动即报错:
Using http2=True, but the 'h2' package is not installed.
- requirements.txt: httpx -> httpx[http2]
- requirements.lock.txt: httpx[http2]==0.28.1,并显式锁 h2==4.1.0
- scripts/gen_requirements_lock.py: 升级为可解析 extras,自动锁定 extra
引入的传递依赖(如 httpx[http2] -> h2),避免以后重生 lock 丢失 h2;
通用于任意 extra
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-01 17:49:00 +08:00
582f292114
feat(release): 新增开箱启动脚本 setup.sh / start.sh(P4 第一步)
...
为 release 开箱即用提供入口,把首启向导串进启动流程。Python/Node 均
依赖系统已装运行时(不内置解释器),便携包只带源码 + venv 创建逻辑。
- _bootstrap.sh: 共享引导逻辑(被 source)
- ensure_python_env: 系统 python 建/复用 .venv,装 requirements.lock.txt
- ensure_node_env: 系统 node 装 easyagent 依赖 + 前端构建(缺失才装)
- has_env_file: 首启判断
- setup.sh: 初始化入口 → 备好环境 → 跑 python -m scripts.setup 向导
- start.sh: 启动入口 → 备好环境 → 无 .env 自动跑向导 → python -m server.app
(透传参数给 server.app,如 --thinking-mode)
- CLAUDE.md: Build & Run 增加开箱方式(./setup.sh / ./start.sh)与
requirements.lock 说明
验证:bash -n 语法通过;_bootstrap 函数逻辑(ROOT 定位 / 选系统 python /
has_env_file / node_modules 已存在时跳过)实测正确;setup 向导在系统
Python 3.9 下端到端跑通(含写文件),确认 from __future__ annotations
使新式类型注解在 3.9 兼容。
注:实际「建 venv + 联网装依赖 + 解压验证」需在本机网络环境执行;
沙箱内仅做了不联网的逻辑校验。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-01 17:19:45 +08:00
1d3703b0e5
build(deps): 固化 Python 依赖版本,新增 lock 与生成脚本
...
为便携 release 打包与可复现安装做准备(P3 依赖固化)。
- 新增 requirements.lock.txt:锁定 9 个运行时直接依赖的精确版本
- requirements.txt 顶部加注释,说明与 lock 文件的分工(宽松 vs 精确)
- 新增 scripts/gen_requirements_lock.py:从已验证环境一键重生 lock,
避免手工对照版本出错
调查结论(已核实):
- 项目源码真实第三方依赖与 requirements.txt 完全一致,无遗漏
- tiktoken 已不再使用(token 统计改用 API usage 字段),无需纳入
- 三个 node 项目的 package-lock.json 均已存在并被 git 追踪,npm ci
可直接用,node 端无需改动
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-01 17:10:28 +08:00
b8a51c1c63
refactor(config): 移除硬编码模型残留,部署级配置外置到 ~/.agents
...
## 模型逻辑清理
早期把模型 API 端点/密钥/模型 ID 硬编码的残留(AGENT_API_* / THINKING_* /
TITLE_* 三件套)已彻底移除。模型配置统一由 config/custom_models.json
(经 model_profiles 解析为档案)描述,运行时通过 apply_profile 注入;
没有任何可用模型时按既定行为报错。
- config/api.py: 删 9 个三件套符号,仅保留 DEFAULT_RESPONSE_MAX_TOKENS
- utils/api_client.py: client 改为空配置起步,移除三件套 import
- server/chat_flow_helpers.py: 删死 import(TITLE_* 符号)
## 部署级配置外置(按"决策权归谁"分类)
config/*.json 不再一概锚定源码树:
- 程序能力(docker_risk_markers / skill_hints)留源码树,随版本演进
- 部署者自定义(custom_models / host_workspaces / auto_approval /
goal_review / forbidden_commands / host_sandbox_policy)外置到
~/.agents/<mode>/config/
新增统一解析机制(config/paths.py):
- DEPLOY_CONFIG_DIR(默认 ~/.agents/<mode>/config,可用环境变量覆盖)
- resolve_deploy_config():只读,回退链 部署目录→源码树.json→源码树.example
(开发环境不必先跑 setup 也能用源码树种子)
- deploy_config_path():写回用,稳定指向部署目录
6 个加载点改用上述解析;顺带修复 approval_agent / goal_review_agent 的
DEBUG_TRANSCRIPT_DIR 仍指旧源码树 logs/ 的漏迁问题。
## 安全与运维
- 含密钥/机器特定的 5 个文件停止 git 追踪(git rm --cached,本地保留)
并加入 .gitignore,仓库仅留 .example 种子;forbidden_commands 保留
追踪作默认黑名单
- scripts/setup.py: 模型配置写到部署目录(用与 paths 一致的独立推导,
不 import config 以免过早锁定路径)
- scripts/migrate_runtime_data.py: 新增 config/*.json → 部署目录迁移
(备份 + 不覆盖已存在)
## 关联:P1 配置收敛 + P2 首启向导
- config/server.py: Web 端口/监听地址/debug/NODE_BIN/PYTHON_BIN 单一事实源
- 消灭 8091 多处重复定义(state.py 死代码、app_legacy、main.py 各读各的)
- 修复 sub_agent_manager 命令数组硬编码 "node" → NODE_BIN(便携包内置
Node 的前提)
- scripts/setup.py: 终端首启向导(模式/端口/管理员/密钥/模型)
## 测试
test_config_paths_resolution 更新以反映新行为(host_workspaces 锚定部署
目录、新增 DEPLOY_CONFIG_DIR 用例);全部离线用例通过。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-01 16:59:34 +08:00
eaa5e3bee9
refactor(runtime): 运行态数据迁出源码树到 ~/.agents,日志默认关并加轮转,清理实验残留
...
将运行态数据(对话/用户工作区/日志等)默认迁出源码树到 ~/.agents/<mode>,
对齐 ~/.claude、~/.codex 惯例;同时为日志加上开关与轮转,并归档/清理仓库内
长期堆积的实验残留与误产生文件。
## 路径变量重写(核心)
- 重写 config/paths.py:运行态根按模式分流,host -> ~/.agents/host,
其它(默认 docker/web)-> ~/.agents/web。
- 三级解析优先级(高→低):
1) 具体目录变量 DATA_DIR / LOGS_DIR / USER_SPACE_DIR / API_USER_SPACE_DIR
2) 模式根变量 AGENTS_HOST_HOME / AGENTS_WEB_HOME
3) 兜底 ~/.agents/<mode>
- 导出变量名保持不变,20+ 处消费方零改动;统一 config/sub_agent.py 重复的
路径解析逻辑,将 sub_agent 任务目录/状态文件收编进 DATA_DIR;
SUB_AGENT_PROJECT_RESULTS_DIR 仍随工作区(有意保留)。
- config/*.json、prompts/、agentskills/ 属配置/资源,仍锚定源码树。
## 日志止血
- 新增 utils/log_rotation.py:按大小轮转(默认 20MB×3 份)+ 按份清理
(dump 默认保留最近 30 个),阈值可由 AGENT_LOG_ROTATE_MAX_BYTES /
AGENT_LOG_ROTATE_BACKUPS / AGENT_DUMP_KEEP 覆盖。
- utils/api_client.py:API 请求体 dump 默认关闭(AGENT_API_DUMP_ENABLED 开启),
收编两处写死的 logs/ 硬编码路径改用 LOGS_DIR;dump 关闭时 request_dump 安全置空。
- utils/host_workspace_debug.py、server/utils_common.py(chunk/conn_diag 等)、
utils/logger.py(TaskLogger/ErrorLogger)统一接入轮转。
## 迁移与运维脚本
- scripts/migrate_runtime_data.py:源码树 -> 运行态根,复制+备份+校验+可回滚+幂等,
logs 丢弃不迁;import config 复用程序同一套路径解析(模式由 .env 决定),
覆盖 data/users/api 及 sub_agent/tasks(-> data/sub_agent_tasks)。
- scripts/cleanup_misplaced_web.sh:清理误迁到 ~/.agents/web 的副本(带 chflags 兜底)。
## 测试
- 重写 test/test_config_paths_resolution.py:覆盖默认分流、模式切换、模式根变量覆盖、
具体目录变量最高优先级、相对路径锚定 repo root、源码树配置项不随迁移等 6 个用例。
## 仓库清理
- 删除旧版子智能体目录 sub_agent/(逻辑已统一在 easyagent/)。
- 删除误产生/垃圾文件:误敲命令生成的 "ystemctl status ..."、空文件 .zhouyanbo /
testfile_from_ai、运行态日志/pid、test_playwright.png、test_system_message.py 等。
- 实验残留与历史文档(BUG_FIX/POLLING 变更日志、SUB_AGENT 文档、翻译资料、
model_tests、compact_result、奇奇怪怪的bug、截图、goal_research)归档到
本地 _experiments/,并从版本控制移除(已加入 .gitignore)。
- .gitignore:新增 api/、_experiments/,清理已失效的 sub_agent/* 条目与冗余项。
## 文档
- CLAUDE.md / AGENTS.md:补充数据目录与路径变量、日志策略、迁移流程,
更新目录结构(移除 sub_agent、新增 _experiments/scripts),调试日志路径改为 ~/.agents/<mode>/logs/。
2026-06-01 13:17:32 +08:00
be08026fca
fix(runtime): preserve mode change notice source
2026-06-01 00:02:43 +08:00
ad20853965
fix(server): isolate session cookie per port to prevent login conflicts across instances
2026-05-31 23:36:22 +08:00
f2d7d8f3b1
fix(ui): refresh git summary while idle
2026-05-31 23:28:10 +08:00
2f0e269788
fix(ui): adjust composer status layering
2026-05-31 22:14:57 +08:00
0815625cfd
docs: 前端改动不强制本地构建(沙箱无法跑 build)
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-05-31 17:55:03 +08:00
75594aa2aa
fix(ui): 修复 write_file 内容在 diff grid 下被挤成多行
...
.diff-line 改为 grid 三列布局后,write_file 仍输出裸文本,整段
被塞进 5ch 宽的首列竖排折行。改为与 edit_file 一致的行号/标记/内容
三 span 结构,内容落在 1fr 列正常换行。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-05-31 17:51:31 +08:00
a224537618
docs: add precise reading guideline
2026-05-31 17:28:51 +08:00
6f78277a03
feat(ui): add project git status panel
2026-05-31 17:27:24 +08:00
6d5630c820
feat(file-edit): support batched replacements
2026-05-31 13:15:37 +08:00
5bdc60006d
fix(auth): allow custom session cookie name
2026-05-31 11:40:44 +08:00
fc70179b02
feat(web): 统一前端设计风格并重写回顾/版本管理弹窗
...
- 将 8 条前端设计风格原则写入 CLAUDE.md 与 AGENTS.md
- 重写对话回顾弹窗:扁平化去圆角套娃、移除彩色光晕、固定高度、
自定义关闭按钮、滚动条隐藏、颜色全走三模式变量
- 回顾弹窗改用独立列表 state,加载更多改为追加不刷新、不复位滚动,
按钮样式对齐侧边栏(全宽/文字靠左/固定高度)
- 后端 get_conversation_list 新增 non_empty 参数,回顾弹窗仅显示
有内容的对话且分页数量一致(侧边栏不受影响)
- 重写版本管理弹窗:原生 select/checkbox 换自定义下拉与开关、
拆圆角套娃、固定高度、颜色走变量(diff 红绿语义色保留)
- 版本管理开关旁文字随状态显示开启/关闭
- icons 注册 refreshCw 键
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-05-31 11:30:08 +08:00
3154cd8bc6
chore(config): raise goal review timeout to 600s
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-05-31 09:32:30 +08:00
59a79b0063
fix(web): align slash menu spacing, corners, and scroll step
...
- Add bottom padding so the last option has a gap below it
- Size max-height for 5 rows + 6 gaps (incl. border) so all 5 show
- Equalize side/row gaps at 5px and make first-item corners concentric
- Read row height + gap from CSS vars in scroll logic instead of hardcoded 41px
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-05-31 09:30:46 +08:00
50310a1bf8
feat(web): expand slash command menu
2026-05-31 00:06:48 +08:00
39328cf6a9
fix(web): use tiptap mention for skill input
2026-05-30 23:31:13 +08:00
72c2b2af2a
merge: feat/deep-compression-inplace
2026-05-30 22:19:51 +08:00
8fddf0d1ed
fix(frontend): refine personal space copy
2026-05-30 22:19:41 +08:00
bb44120087
fix: apply personalization after workspace switch
2026-05-30 22:18:24 +08:00
dc0149f134
fix: refresh disabled custom tools
2026-05-30 22:13:12 +08:00
9f37479272
chore: remove autosaved presentation
2026-05-30 22:10:45 +08:00