oudecheng
|
985904b95e
|
perf(topics): 新建/删除/重命名话题同样走 spawn_blocking 统一提速
- 抽取 list_topic_summaries_blocking 公共 helper(list_topics + build_topic_summaries 在 blocking 线程池执行)
- create/delete/rename 三个话题命令返回侧边栏刷新列表时统一走 helper,DB 查询不再阻塞 tokio worker
- 结合增量统计列,四个话题命令的列表构建均从 O(全部消息) 降为 O(话题数)
|
2026-08-18 23:06:19 +08:00 |
|
oudecheng
|
f711948902
|
fix(chat): 修复图片放大与工具详情浮层被覆盖及定位错乱
图片放大(ImageLightbox)与工具详情(ToolDetailModal)渲染在虚拟化消息行内,行元素的 transform 成为 fixed 后代的包含块,导致遮罩只覆盖行区域、工具栏定位偏移、其他内容叠在其上。
改用 createPortal 渲染到 document.body,并将 z-index 提升到 z-[10000] 超过下拉浮层 z-[9999],恢复视口级覆盖与右上角按钮定位。
|
2026-08-18 23:00:16 +08:00 |
|
oudecheng
|
e2841ce791
|
perf(topics): 话题列表刷新提速——token 统计增量维护列替代全表聚合
- topics 表新增 stat_* 增量列,append 时同事务累加(排除 sub:% 子代理消息)
- batch_topic_token_stats 从 messages 全表 SUM+MAX(seq) 聚合改为读 topics 列,刷新耗时与消息总量解耦
- 变更路径重算自愈:delete_by_ids/replace_topic/compact_topic 按 topic 重算,replace_active/compact_active 按 session 重算,clear_messages 归零
- backfill_topic_usage_stats 一次性回填老数据(user_version=4 守卫,仅首启执行)
- list_topics handler 移入 spawn_blocking,不再阻塞 tokio worker
- 修复既有 bug:压缩/替换路径的 INSERT SQL 漏写 cached_tokens 列
- 新增 5 个测试:增量维护、子代理隔离、删除/清空重算、替换重算、回填迁移幂等
|
2026-08-18 22:59:01 +08:00 |
|
oudecheng
|
6037c79b9c
|
perf(log): 会话消息投递成功日志降级为 debug
文本/附件投递成功的 info 日志降级为 debug,减少每条消息的运行噪音;失败路径的 warn 日志不变。
|
2026-08-18 22:12:48 +08:00 |
|
oudecheng
|
725efe3f85
|
docs(changelog): 0.4.3 补充 fix(chat) 滚动位置修复并修正 commit 数量为 14
|
2026-08-18 15:37:35 +08:00 |
|
oudecheng
|
3cef9da443
|
chore(release): 0.4.3——max_run_secs 默认改为不限制
max_run_secs 默认值由 3600(60 分钟)改为 0(不限制),避免长任务被单次执行时间上限中断;需要时可在 config.json 的 agents 段显式配置。同步版本号提升至 0.4.3 并更新 CHANGELOG。
|
2026-08-18 15:35:22 +08:00 |
|
oudecheng
|
028f60557e
|
fix(chat): 修复视图切换滚动位置丢失与顶部按钮无法滚到首条消息
动态行高缓存按消息 id 键控,避免子智能体视图高度污染主视图;恢复后两帧 rAF 内不回写保存位置。
顶部按钮链式贴顶:动画落定显式续链,分页 prepend 时贴到新顶部,直到真正首条消息;关闭 virtualizer 行高修正的 scrollTop 自动补偿。
用户滚动输入/回底/待办高亮/视图切换/分页耗尽时清除贴顶意图。
|
2026-08-18 15:33:59 +08:00 |
|
oudecheng
|
6ac653bf51
|
fix(review): 对抗性审查修复——spawn 竞态窗口、max_run_secs 配置化、删除计数一致性
- 子代理 spawn 顺序调整为先注册 cancel_registry 再写 DB running 记录,消除 reap 误杀刚启动子代理的微秒级竞态窗口
- max_run_secs 接入 AgentConfig 配置项(config.json agents 段),不再硬编码;From 透传 + 全部字面构造点补齐
- delete_messages_by_ids 删除后按活 COUNT 重算 sessions/topics 的 message_count,修复计数列漂移
- cli init 修改 agent 路径保留既有 max_run_secs 而非重置默认
|
2026-08-18 09:46:21 +08:00 |
|
oudecheng
|
452c5ad0ef
|
fix(gateway): 修复长会话后新消息无响应——僵尸子代理清理、panic 兜底与运行预算
- 发送 ExecutionCompleted 前惰性清理僵尸 running 子代理(DB running 但执行任务已消失),解除 pending 阻塞
- processor panic 路径补发 error 通知 + ExecutionCompleted,防止前端永久 loading
- agent 单轮增加墙钟预算 max_run_secs,超时优雅退出释放 topic 串行锁
- topic 串行锁等待增加 info/warn 日志,长等待可观测
- sanitize 清理结果回写 DB(delete_messages_by_ids),消除每次加载的重复修复
- storage 新增 keyset 分页与按 ID 批量删除的单元测试
|
2026-08-18 09:33:07 +08:00 |
|
oudecheng
|
a629486ad3
|
perf(chat): 长话题历史分页——messages 按 seq keyset 增量加载
后端新增 load_messages_for_topic_page(seq < cursor + limit 分页,走 (session_id, seq) 索引替代 OFFSET 深翻页),ChatMessage 增加 seq 游标;历史批次消息带 topic_id 下发,前端以 seq+topic_id 双重判定批次归属,规避切话题瞬间在途旧批次污染。
前端触顶增量加载:批次缓存在 pendingHistoryRef,收到 topic_history_end 一次性去重 prepend,scrollTop 按新增高度补偿锚定原头部消息;不足一屏自动补页,loading 超时 10s 自愈;流式输出中加载历史不清空流式累加器,避免已流出文本丢失。
|
2026-08-18 07:51:31 +08:00 |
|
oudecheng
|
0159227828
|
perf: 第二批性能修复——blocking 线程池隔离、HTTP 客户端复用、前端 memo 与流式节流
- 同步阻塞操作(附件处理、历史加载、scheduler/memory_search 的 SQLite 调用)
移入 spawn_blocking,避免占用 async worker
- LLM Provider reqwest::Client 按超时配置缓存复用,减少 TLS/连接开销
- agent loop:图片过滤加廉价预判避免全量深拷贝;请求克隆改借用;工具定义 Arc 化
- 定向 COUNT/LIMIT 1 查询替代全量加载计数(wait_coordinator、task session 重建)
- 前端:面板/侧栏/聊天组件 memo 化;merged_tool 对象按值复用缓存;
流式 delta rAF 节流批量 flush;useMemo 缓存分组排序结果
|
2026-08-18 06:55:21 +08:00 |
|
oudecheng
|
e7deac6950
|
perf: 第一批性能修复——HTTP 超时、SQLite 写入优化、流式限长、前端减少无效重跑
后端:
- 飞书通道 HTTP client 增加 connect/全局超时,token 刷新与 reaction 叠加紧超时,消除无限挂起风险
- SQLite WAL 下设置 synchronous=NORMAL(per-connection with_init),6 处批量写入循环改用 prepare_cached 复用预编译语句
- web_fetch 复用长生命周期 HTTP client,响应体改为流式限长读取(上限=字符限额x4,封顶 32MB),替代全量读完再截断
前端:
- App.tsx effect/callback 依赖由 subAgentView 对象改为 subAgentTaskId 原始值,修复子代理流式期间 token 统计 500ms 定时器被每帧重置永不触发的问题
- MessageBubble/ToolDetailModal 的 ReactMarkdown components 与 remarkPlugins 提升为模块级常量,避免流式渲染期间每帧重建
|
2026-08-17 22:29:14 +08:00 |
|
oudecheng
|
accdfeed3b
|
fix(gateway): 禁用 Windows 控制台 QuickEdit 并改为非阻塞日志,修复终端输出卡住需按回车的问题
|
2026-08-17 20:16:44 +08:00 |
|
oudecheng
|
b0c24d64f0
|
fix(storage): 清理旧版本遗留的空 cli 会话并降级会话列表日志
- 早期版本每次 WebSocket 连接都会新建一个 cli 通道空会话(CLI Session xxxxxxxx),长期运行积累大量空壳记录,导致会话列表冗长、网关日志逐条刷屏
- 新增 user_version=3 一次性迁移:删除无消息/话题/待办/技能事件的 cli 空会话,有真实内容的会话不受影响(事务包裹,含回归测试)
- ws.rs 会话列表逐条日志由 INFO 降级为 debug,仅保留条数汇总
|
2026-08-17 18:02:43 +08:00 |
|
oudecheng
|
c666c48f09
|
feat(web): 设置页字段提示改为问号图标悬停气泡
- Field 的 hint 由输入框下方段落改为 label 旁问号图标,鼠标悬停显示提示气泡,覆盖所有设置 Tab
|
2026-08-17 17:52:31 +08:00 |
|
oudecheng
|
d5c0b50e63
|
fix(storage): 归一化历史前缀累积污染的会话 ID(一次性迁移)
- 早期版本重复拼接通道前缀产生 websocket:websocket:<uuid> 一类的污染会话记录,会话列表因此出现多条前缀逐层累积的重复会话
- 新增 user_version=2 迁移:子表数据改指归一化 ID,污染会话并入既有会话或重命名,seq 按时间重编号,整体事务保证原子性
- 新增回归测试覆盖合并、重命名、seq 连续性与幂等重跑
|
2026-08-17 17:52:30 +08:00 |
|
oudecheng
|
5a292d60ec
|
fix(providers): Anthropic 型 provider max_tokens 留空兜底提高至 8192
- max_tokens 未配置时兜底值由 1024 调整为 8192,避免长回复被过早截断
- 同步设置页提示:留空则不传该字段(Anthropic 型 provider 回退为 8192),并移除 Temperature 的误导性占位符 0.7
|
2026-08-17 17:52:28 +08:00 |
|
oudecheng
|
2ab9c2d404
|
fix(providers): 模型未配置 Temperature 时请求体不再携带该字段
- AnthropicRequest.temperature 增加 skip_serializing_if:留空时不再序列化出 temperature:null,而是完全省略该键,交由模型服务端使用默认值(OpenAI 型 provider 此前已是该行为)
- 新增两个序列化回归测试:temperature 为 None 时请求体不含该键,为 Some 时正常输出
- 同步设置页提示文案:Temperature 留空不传该字段;Max Tokens 留空不传(Anthropic 型 provider 回退为 1024)
|
2026-08-17 16:45:12 +08:00 |
|
oudecheng
|
27160ef560
|
fix(web): 回到顶部改用 rAF 自驱动动画,修复消息多时平滑滚动被 virtualizer 纠正写入打断停在半路
|
2026-08-17 16:41:01 +08:00 |
|
oudecheng
|
af344b7087
|
perf(mcp): 增加 tool 调用全链路往返耗时 debug 日志
记录 roundtrip_ms(含 stdio 传输 + server 派发 + 工具执行 + 回传),
与 server 侧 duration_ms 对比可定位慢在哪一段。
|
2026-08-17 15:52:34 +08:00 |
|
oudecheng
|
8a4799656c
|
chore: 升级版本号至 0.4.2 并更新 CHANGELOG
|
2026-08-17 09:59:56 +08:00 |
|
oudecheng
|
5e2bdaf757
|
perf(web): 子代理 stream_delta rAF 批处理 + 消息槽 memo 化 + base64 分块解码
- useSubAgentView 镜像主视图:delta 累加到 ref,rAF 批量一次 setState,避免逐 token 重渲染
- 所有非 delta 消息处理前同步落盘 pending delta,保证顺序与内容完整性
- MessageList 消息 ID 映射 useMemo,稳定回调引用减少重渲染
- MessageBubble base64 下载改分块解码(32K),大附件峰值内存从数百 MB 降为单块级
|
2026-08-17 09:55:11 +08:00 |
|
oudecheng
|
52f858bfb4
|
perf(tools): bash 输出增量匹配消除 O(n^2) + 缓冲上限,http_request 复用 Client + 流式限长
- bash 增量窗口扫描 pending 短语,不再全量重扫;输出缓冲设上限(头尾保留)
- 修复 wait 分支 stdout_buf 重复锁导致的 tokio Mutex 自死锁(此前正常命令挂到超时)
- shell_session 沿用 cap_output_buffer 上限并修复截断后偏移兜底
- http_request 复用长生命周期 Client;响应体改为流式限长读取,防超大响应耗尽内存
|
2026-08-17 09:55:03 +08:00 |
|
oudecheng
|
4517e4a724
|
perf(db): 热路径同步 SQLite 操作改 spawn_blocking 并定向查询
- processor/session 热点 DB 调用放到 blocking 线程池,避免阻塞 tokio worker
- 定向查询 topic 首条用户消息(DB 侧 LIMIT 1),不再全量加载历史
- 新增 first_user_message_content 访问方法
|
2026-08-17 09:54:54 +08:00 |
|
oudecheng
|
f2fc5e97ac
|
feat(security): 部署安全加固(排除 token 项)
- 安全响应头中间件:nosniff / X-Frame-Options DENY / Referrer-Policy / CSP / Permissions-Policy,最外层覆盖所有响应
- loopback CORS 由 mirror_request 改为 loopback origin 白名单(原实现会回显任意 Origin,允许恶意网页跨域读取本地网关)
- 新增 gateway.allowed_origins 配置:非 loopback 部署可收紧 CORS,未配置时保持 permissive 并打 warn
- loopback 免认证模式强制 Host 头为 loopback,阻断 DNS rebinding
- loopback 免认证模式 WS Origin 必须为 loopback 来源,防跨站 WebSocket 劫持(CSWSH)
- WS 消息/帧大小显式上限 80MiB/16MiB(顺带修复 50MB 附件 base64 超 tungstenite 默认 64MB 上限的问题)
- HTTP 请求体显式限制 2MB(DefaultBodyLimit)
- 前端 HTTPS 页面自动使用 wss://,避免混合内容拦截 WebSocket
- 新增 10 个安全相关单元测试(host/origin loopback 判定、WS Origin 校验)
|
2026-08-17 06:47:35 +08:00 |
|
oudecheng
|
1019dbe8cc
|
refactor(code-quality): 清理 clippy 存量告警(unwrap/clone/redundant 等)
- 移除无用克隆与冗余引用,减少不必要内存分配
- 规范 unwrap/expect 使用,修复可提前失败路径
- 修复 anthropic provider llm_timeout_secs 死代码并补全超时日志
- cargo fmt 统一格式
|
2026-08-16 23:22:22 +08:00 |
|
oudecheng
|
3faefc74b9
|
fix(web): npm audit fix 修复 4 个高危依赖漏洞(vite/postcss/undici/nanoid)
|
2026-08-16 19:43:27 +08:00 |
|
oudecheng
|
78e2ff7180
|
fix(deps): 升级 quinn-proto 0.11.14 -> 0.11.16 修复 RUSTSEC-2026-0185 远程内存耗尽漏洞
|
2026-08-16 19:43:25 +08:00 |
|
oudecheng
|
692cc93075
|
fix(ws): 历史加载时对账 task running 占位,修复刷新/切话题后子代理卡片永远显示运行中
DB messages 表的 task tool_result 固化在 spawn 时刻的 running 状态,完成信号只更新
pending_subagents 表;send_topic_history 原样发送导致刷新后卡片退回黄色运行中。
新增 reconcile_running_in_messages:发送前按 pending_subagents 实际状态替换发送副本,
复用 session.rs 提取/格式化函数(改为 pub(crate)),不落库且幂等,无占位时零查询。
|
2026-08-16 17:27:55 +08:00 |
|
oudecheng
|
867b7df409
|
chore: 升级版本号至 0.4.1 并更新 CHANGELOG
|
2026-08-16 14:04:52 +08:00 |
|
oudecheng
|
0f60b02ede
|
chore(log): 缩减 INFO 日志量,高频诊断日志降级/删除
1. 删除缓存诊断日志 4 处(openai.rs):排查已完结,字段已补齐,每次 LLM 调用都刷屏。
2. 删除 AgentPromptProvider 模型配置日志(agent_prompt_provider.rs):排查遗留,每次请求刷。
3. AgentFactory 创建日志 info→debug(agent_factory.rs):每轮对话刷,降级保留供偶发排查。
4. Calling tool / Tool calls detected info→debug(agent_loop.rs):每次工具调用都刷,全量参数打印开销大,tracing 在未启用级别时不评估字段。
5. LoadTaskMessages 3 条日志 info→debug(load_task_messages.rs):每次前端 trigger 都刷,一次 3 条。
6. 旧结果诊断日志 info→debug(execution.rs):每条消息首次 agent 迭代都触发。
7. pending subagents 日志 info→debug(processor.rs):子代理运行期高频率重复触发。
8. Updating current_session_id 仅变化时打(ws.rs):old==new 时每条消息都刷,无信息量。
编译通过,测试全绿。
|
2026-08-15 23:10:39 +08:00 |
|
oudecheng
|
ca7dcabbde
|
fix(protocol): TopicTokenStats 补齐 cached_tokens 字段,修复前端缓存占比恒为 0
根因:command 层与 protocol 层存在两个同名 TopicTokenStats 结构体,websocket 适配器做 JSON 往返时 protocol 版缺 cached_tokens 字段,serde 反序列化静默丢弃。后端解析/存库/聚合均正常(DB 实测 8832/13916 命中),仅传输层断链。补字段并加往返回归测试固化两结构体对齐不变量。
|
2026-08-15 21:02:29 +08:00 |
|
oudecheng
|
011b23b54e
|
feat(provider): 缓存命中诊断日志与两种 usage 缓存格式解析测试
排查平台有缓存命中但前端占比为 0 的问题:set_usage/非流式/回退三处输出 cache diagnostics 日志;新增 DeepSeek 顶层与 OpenAI 嵌套缓存字段解析回归测试
|
2026-08-15 20:17:30 +08:00 |
|
oudecheng
|
b26a2c2512
|
feat(token): 新增缓存占比统计,聚合查询收敛到共享列清单
- 解析: OpenAIUsage 支持 DeepSeek prompt_cache_hit_tokens + OpenAI prompt_tokens_details.cached_tokens fallback;Anthropic 接入 cache_read_input_tokens
- 存储: messages 表新增 cached_tokens 列(幂等迁移),贯穿 INSERT/SELECT/聚合
- 解耦加固: 抽取 MESSAGE_LOAD_COLUMNS 收敛 6 处消息加载 SELECT;抽取 USAGE_SUM_COLUMNS + read_usage_sum_row 收敛 topic/session 两份重复 SUM 聚合
- 协议: SessionTokenStats/TopicTokenStats 新增 cached_tokens 字段
- 前端: 面板新增缓存命中行 + 缓存命中率进度条(命中率越高越绿,与 ctx 占用方向相反)
|
2026-08-15 19:21:51 +08:00 |
|
oudecheng
|
82b6a882a2
|
test(scheduler): 调度器非阻塞派发与并发容量回归测试
- 慢执行器(400ms sleep)双任务:process_tick 必须立即返回且两任务并发完成(串行需 >=800ms,断言 <700ms)
- worker_queue_capacity=1:槽位耗尽时多余到期任务被推迟(保持 Scheduled),槽位释放后下个 tick 正常派发
- 执行完成后状态机验证:回到 Scheduled、status=ok、next_fire_at 推进
|
2026-08-15 19:04:54 +08:00 |
|
oudecheng
|
9b8c64bd21
|
refactor(scheduler): 任务执行移出 tick 循环,worker_queue_capacity 并发约束生效
原 process_tick 内联 await execute_job:长耗时 agent 任务(可达数分钟)会串行阻塞整个调度循环,拖后所有其他 job 的触发;worker_queue_capacity 配置项从未被使用。
- 到期 job 的执行与事后状态写入移入 tokio::spawn 后台任务,tick 循环只做派发
- 新增 worker_semaphore(容量=worker_queue_capacity):槽位耗尽时 job 保持 Scheduled 留待下个 tick,形成有界背压
- job 派发前置为 Running 状态,is_due 要求 Scheduled,天然防止重复派发
- after_execution 状态推进失败时回退为 Scheduled,避免 job 永久卡在 Running
- execute_job 拆分为 execute_job_inner(不依赖 &self,可移入后台任务)
|
2026-08-15 18:50:40 +08:00 |
|
oudecheng
|
4b93c84447
|
test(gateway): 定时任务 topic 补齐与消息送达回归测试
- 新增捕获请求的 mock OpenAI server,直接断言任务 prompt 进入 LLM 输入
- 静默任务按生产默认 fresh_session=true 连续执行两轮,验证清空-重建时序下 prompt 仍送达、topic 自动创建并持久化、系统提示词含送达提示
- ensure_topic_for_chat 幂等性与全新 chat 默认 topic 创建测试
- append_persisted_message 无 topic 回退 chat_id 键内存历史测试
- SessionManager/SessionLifecycleService 暴露 get_scheduler_session 供测试断言
|
2026-08-15 18:17:29 +08:00 |
|
oudecheng
|
cbe2ff1339
|
feat(gateway): 静默定时任务增加主动送达提示,避免结果静默丢失
silent_agent_task 的最终响应发往 scheduler/ 虚拟会话、被出站分发器跳过,成功时用户收不到任何消息,只能依赖 agent 主动调用 send_session_message。
- 定时任务系统提示词仅对 scheduler/ 虚拟会话追加送达提示(避免普通 agent_task 重复发送)
- scheduler_manage 工具描述新增 Silent Mode Delivery 指引:用户期望收到结果时,prompt 必须要求用 send_session_message 交付
|
2026-08-15 18:17:07 +08:00 |
|
oudecheng
|
508806a408
|
fix(gateway): 定时任务执行前自动补齐 topic,修复 agent 空历史执行
scheduler/ 虚拟会话从不经用户消息分配 topic,导致定时任务的系统提示词与任务 prompt 只落库、不进内存历史(append_persisted_message 在 topic=None 时跳过内存写入),agent 以空历史执行,任务实际未运行、消息无法送达会话。
- Session 新增 ensure_topic_for_chat:内存无 topic 时从 DB 恢复最近活跃 topic,无则自动创建(先确保持久会话以规避外键约束)
- prepare_and_execute_scheduled_task 捕获 topic 前调用 ensure,保证 original_topic_id 恒为 Some
- append_persisted_message 无 topic 时回退到 chat_id 键内存历史,兜底所有无 topic 路径
|
2026-08-15 18:16:50 +08:00 |
|
oudecheng
|
73c25e5a20
|
feat(web): Task 卡片差异显示子代理模型名 + 子代理完成状态转发修复
- Task/tool 卡片头部在子代理模型与主代理不同(model 或 provider 任一不同)时显示模型徽章
- useChat 放行带 subagent_task_id 的 execution_completed 消息,更新卡片 running→completed 状态
|
2026-08-15 15:35:32 +08:00 |
|
oudecheng
|
53e2fb6dc6
|
feat(web): per-topic 输入草稿记忆(切换暂存/恢复 + localStorage 持久化 + 删除清理)
- 文本草稿 debounce 持久化到 localStorage(key 按 topicId),附件仅存内存
- 切换话题时暂存当前草稿并恢复目标话题草稿,组件卸载时补齐落盘
- 删除话题时同步清除其持久化草稿,避免孤儿 key
|
2026-08-15 15:35:07 +08:00 |
|
oudecheng
|
8f59b6b93a
|
feat(web): 话题级模型选择前端(ModelSelector topicId 化 + 竞态防护)+ 专家系统开关隐藏
- ModelSelector 支持按 topicId 读写话题级选择(topic 优先,session 兜底)
- 快速切换话题时用递增令牌丢弃过期响应,防止乱序覆盖
- ChatContainer 透传 topicId,向后端双写新话题默认模型
- ExpertSelector 依据后端 experts_system_enabled 隐藏选择器并清除已选专家
|
2026-08-15 15:34:38 +08:00 |
|
oudecheng
|
dc693fa80b
|
feat(model): 主代理/子代理模型解析链 topic>session>expert>config + TaskToolResult 附带实际模型
- 主代理解析链新增 topic 级选择(最高优先级),session 级首命中时物化固化为话题选择
- 子代理解析链共享 helper:def frontmatter > 话题级 > session 级 > 全局基础配置
- TaskToolResult 携带子代理实际使用的 provider/model,供前端差异展示
|
2026-08-15 15:34:18 +08:00 |
|
oudecheng
|
414105d419
|
feat(model): 话题级模型选择持久化与 API(topics 表加 provider/model 列 + 双写内存缓存)
- topics 表迁移新增 provider/model 列,记录话题级显式模型选择
- storage 层新增 update_topic_model / list_topic_model_selections
- 新增 POST /api/topic/select-model 与 GET /api/topic/selected-model
- 双写 key 取 topic 行自带 session_id(不信任请求体,防污染其他会话)
- 清除时同步清 session 级选择,避免'重置为默认'被物化逻辑重新覆盖
|
2026-08-15 15:33:58 +08:00 |
|
oudecheng
|
9e503f2672
|
feat(web): 工具卡片统一格式,子智能体显示 '工具名 · 任务描述' 并移除下方徽章与时间
|
2026-08-15 09:32:16 +08:00 |
|
oudecheng
|
f705536fb1
|
feat(web): 通道/会话切换移至设置页 ConnectionTab,修复通道失效回退;连接状态上移 Logo 行并支持窄侧栏 compact 降级
|
2026-08-15 08:38:12 +08:00 |
|
oudecheng
|
eaee29841d
|
feat(web): 对齐 deepseek-harness 设计语言,重构前端视觉与三栏布局
- 设计 token 重映射为 DeepSeek 调色板(深浅双主题),正文改无衬线字体栈,全面去霓虹化
- 移除顶部 Header,控件迁入左栏(Logo/连接/通道/会话/tabs/底部操作区),左右栏支持拖拽调宽并持久化,折叠为图标 rail
- 对话区对齐 DeepSeek 聊天风:hero/docked 状态机、736px 居中列、用户右对齐柔和气泡、助手无气泡平铺、composer 卡片与反差发送键;子智能体点击导航完整保留
- 全功能区同步换肤:侧栏列表、右栏面板、ConfigPage、弹窗、选择器等
- fix: 修复 virtual-core 3.17.x 陈旧行高导致消息行重叠(宽度变化/滚动停止后强制 resizeItem 重测)
- fix: 修复 ConfigPage/Modal 引用不存在的 fadeIn/scaleIn keyframes 致入场动画失效
|
2026-08-14 19:15:45 +08:00 |
|
oudecheng
|
4c21add43b
|
chore: 同步 Cargo.lock 版本号至 0.4.0
|
2026-08-14 16:39:11 +08:00 |
|
oudecheng
|
2dead61697
|
chore: 升级版本号至 0.4.0 并更新 CHANGELOG
|
2026-08-13 23:20:44 +08:00 |
|
oudecheng
|
f05f09b636
|
docs: 异步子代理设计文档
记录 v8 设计方案的三个核心不变量、wait 模式、取消机制与崩溃恢复策略
|
2026-08-13 22:13:00 +08:00 |
|