Skip to content

Releases: Yongchu-Yitao/Cyrene

v0.6.1

Choose a tag to compare

@github-actions github-actions released this 01 Jul 08:51

[0.6.1] - 2026-07-01

0.6.1 是 0.6.0 之后的正式维护版本,重点补齐浏览器自动化能力、桌面 Quick Chat 常驻体验、文档站与若干运行时稳定性修复。本版本为稳定 release,不是 beta / prerelease。

Added

  • 浏览器自动化工具扩展 — 新增按坐标点击、按元素引用点击、按文本点击、按元素引用输入、等待、网络日志、结构化快照与多标签页管理等工具;Workbench / Legacy UI 中的浏览器实况说明与工具注册同步更新。
  • 桌面 Quick Chat 常驻入口 — 增强 Electron 后台驻留、托盘入口、窗口复用和主进程消息契约;补充托盘图标资源与背景运行测试。
  • 文档站资源 — 新增 docs/web 静态文档站、Logo、交互脚本和样式,方便发布包外独立浏览项目说明。

Changed

  • 元素交互更稳 — Electron / BrowserTabManager 的元素操作改为更可靠的页面级交互路径,减少受页面自定义 JS click 限制影响的失败。
  • Chat-only 流式回复路径简化 — 流式请求不再额外发起一次 final reply LLM 调用,直接复用 phase-1 回复并保留用量统计,降低延迟与 token 消耗。
  • 行为学习遥测后台化 — 工具执行后的 record_action 记录改为后台任务,不再阻塞工具结果返回;失败只记录 debug 日志。
  • 发布版本元数据统一 — Python 包、Electron 应用、lockfile、README、文档站、WeChat client 标识、WebUI cache-busting 参数与前端断言统一到 0.6.1

Fixed

  • 命令行生成的交付物提示 — Workbench 任务提示词明确要求 Bash / shell 生成最终文件后也必须调用 send_file,避免文件已生成但不进入「产物」面板。
  • 地图 pin 视觉 — Leaflet pin 改为自定义可主题适配的地图标记,修复默认 marker 资源在部分打包场景下不稳定的问题。
  • 设置页侧栏交互 — 调整设置浮层 tab 的 hover、active 与 focus-visible 样式,降低视觉抖动并改善键盘焦点反馈。
  • 测试环境依赖 mock — Quick Chat 和 runtime tests 对 PIL / pypdf 的处理更稳,避免真实依赖存在时被 MagicMock 污染。

Tests

  • 新增 / 更新浏览器会话、Quick Chat、托盘图标、后台驻留、行为学习、更新器平台匹配、Workbench 初始化计划、运行时修复与前端 cache-busting 等测试。

v0.6.0

Choose a tag to compare

@github-actions github-actions released this 29 Jun 11:30

[0.6.0] - 2026-06-29

首个正式版本,汇总自 v0.5.1 以来的累积更新。0.6.0 的主线是全新的 Workbench 工作台——以项目为中心的桌面工作环境,以及围绕它的可恢复任务执行、并发对话、记忆 / 知识体系,加上大量提示词缓存与稳定性优化。本版本把 feat/workbench 分支的全部工作合并进 main,并将版本号正式定为 0.6.0

0.6.0-beta.* 预发布的逐版本明细见下方 beta 段。

🏗️ Workbench 工作台(全新)

  • 以项目为中心的工作台 — 全新桌面 UI:每个项目独立的看板、日程、知识、记忆、对话与个人资料页,与经典单 agent UI 并存、共享后端。
  • 诚实的逐步任务执行 — 计划基于工作区实况生成(计划模式提交前可只读预探索),任务按步骤推进、可跟随可干预、可中途修订并保留进度;意图分流(问题 / 指令 / 任务)与「任务完成」收尾(finalize)。
  • 可恢复的对话运行 — Chat 运行由进程级运行管理器持有,断线、切页或网络抖动后 agent 仍在后台继续并持久化结果,前端经独立只读接口重连追上;支持并发多会话。
  • 对话编辑与分叉 — 可编辑已发送消息并从该点分叉新对话(原对话保留、标注 Forked),也可从任意位置重新生成回复(事务式替换,失败不丢旧回复)。
  • SQLite 事务存储 — 以 SQLite 为单一真相源(BEGIN IMMEDIATE + 三方合并 + WAL),并发消息 / 会话 / 通知 / 记忆互不覆盖,取代旧的整文件 JSON 读改写。
  • 工作区隔离与安全 — 每个项目限定到自身 workspacePath(主 agent 与 subagent 一致),新建项目走空工作区引导;workspace 路径安全校验防穿越。
  • 产物与文件变更 — Artifact 一键下载(服务端校验不逃逸 workspace);即使非 Git 仓库也能记录有界文本快照生成统一 diff;send_file 显式产物信号优先于 git 推断。
  • 上下文可视化 — 上下文分段 token 仪表 + 手动压缩对话;Settings 浮层、平台感知的全局快捷键管理器、subagent 状态 / 载荷面板。

💬 Quick Chat 全局快捷对话(全新)

  • 全局快捷键唤起Ctrl/Cmd+Shift+Space 任意界面呼出浮动窗口,支持活跃窗口截图粘贴、独立窗口复用、常驻托盘生命周期。
  • 完整对话体验 — 与主对话页共享运行管理器与消息卡片:工具调用轨迹、生成附件、实时思考卡片;运行服务端持久化,关窗后 agent 仍在后台继续。

🧠 记忆与知识

  • 三层记忆 + 退场 — 上下文 → 短期跨会话摘要 → 长期 SOUL.md;短期与项目记忆均可按精确 ID 退场(retire_short_term_memory / retire_project_memory),退场条目留档但不再注入与召回。
  • 记忆分类重构 — 区分 habit(如何做事)/ conversation(如何沟通)/ preference(静态喜好),新增内部 reflection 分类(agent bookkeeping,不在用户页显示);多词记忆召回支持分词 OR 匹配。
  • 检索工具 — 新增 RecallConversation(按关键词 / session / 日期检索历史对话)与 search_project_memory(项目内记忆搜索);RecallMemory 为每条短期记忆返回稳定 memory_id
  • 知识库ListKnowledgeDocuments 枚举文档与索引状态;Workbench 步骤摘要自动归档进项目知识库供后续检索;按 workspace 隔离;支持图片 vision 索引。
  • 实体优先 — 涉及任务 / 计划 / 待办 / 决策的回答先查实体、以记录为准,执行计划前先拉取活跃事务与决策以复用。

🌐 浏览器自动化

  • 实时直播不堵流 — 画面经 /ws/browser 以二进制 JPEG 帧传输,SSE 只走轻量元数据,避免 base64 截图挤占事件流。
  • 面板内实时控制 + 登录接管 — 用户可在直播面板内经 CDP 注入鼠标 / 键盘 / IME 直接操作 headless 页面(agent 动作自动让位);遇登录墙 / 验证码 / 2FA 可经 browser_request_takeover 或切换有头窗口完成,再回到同一已登录会话继续;Workbench 自动打开浏览器侧栏。

⚙️ Agent 运行时与提示词缓存

  • 提示词缓存优化 — 静态系统块前缀化(static_system_extra)、run 级上下文前置于用户消息(fixed_ephemeral_system)、temporal 上下文移到尾部、统一 phase1/2 工具集、quit(reply=) 直接交付(消除收尾重建——曾占缓存 miss 约 53%),显著提升前缀缓存命中。
  • 运行打断 — 跟踪当前运行任务,打断时连同在跑的 subagent 一并取消。
  • 稳定性 — LLM 瞬时错误有限重试、蒸馏上限与压缩阈值预检、SSE 心跳保活;DSML 流式工具标记抑制,防止泄露到 UI。
  • 跨平台 Shell 与破坏性操作确认 — 自动识别 Shell 类型并调整执行策略;rm / git reset --hard / dd 等高危命令即使 full/auto 模式也强制二次确认,外发文件纳入不可逆副作用确认。

📦 平台、打包与更新器

  • Windows on ARM — CI 同时构建 ARM64 与 x64 安装包;Release 默认捆绑 Workbench UI。
  • 运行时目录治理 — 新增 cyrene.app_paths 统一解析数据 / 缓存 / 临时目录,打包后不再把运行时数据写入只读资源或系统临时目录。
  • 更新器 — 按平台 / 架构正确匹配安装包(修复 Windows 被推 macOS .dmg)、读取 release asset 的 sha256 校验、可选 beta 更新通道、后台检查并在工作台提示新版本与体积。
  • 启动不阻塞 — 知识迁移 / vision 索引后台化,修复打包桌面端 30s 启动超时;修复更新重启的 launch guard。

🔒 安全

  • HTML artifact 隔离 — 用户生成的 HTML 仅在沙盒 srcDoc iframe 预览,不允许在继承后端 session 的子窗口打开。
  • 路径校验与敏感信息脱敏 — workspace 路径穿越防护;错误文本中的 token / 密钥自动脱敏。

✅ 测试

  • 全周期新增 / 更新数十个测试套件,覆盖 Workbench 任务 / 计划 / 对话 / 记忆 / 知识 / 存储并发、Quick Chat、浏览器接管与实时控制、更新器平台匹配、提示词缓存、Shell 守卫与破坏性操作确认等。前端 cache-bust 断言与各处版本元数据统一为 0.6.0

v0.6.0-beta.16

v0.6.0-beta.16 Pre-release
Pre-release

Choose a tag to compare

@luciano1810 luciano1810 released this 29 Jun 06:03

[0.6.0b16] - 2026-06-29

Added

  • 应用路径集中管理 — 新增 cyrene.app_paths,统一解析安装资源目录、用户数据目录、缓存目录和应用临时目录。打包运行时写入 Application Support / %APPDATA% / XDG data,临时与缓存产物写入平台缓存目录,避免把运行时数据混入安装资源。
  • 破坏性操作二次确认 — Bash / SendShell / StartShell 现在会识别 rmgit reset --hardgit clean -fddtruncate、强制覆盖等高风险命令;即使处于 full access 或 auto 模式,也必须由用户确认。外发 WebUI / Telegram / WeChat 文件也纳入不可逆副作用确认。
  • Workbench 浏览器侧栏 — Workbench Chat 会在浏览器自动化或登录接管时自动打开 Browser 侧栏,并允许直接在侧栏点击“我已完成登录”继续任务。

Fixed

  • 打包应用运行时目录污染 — 配置、数据库、workspace、备份暂存、代码格式化暂存、技能安装暂存、通知脚本、SearXNG 日志、浏览器截图和更新下载现在都使用统一的用户数据 / 临时目录,减少 macOS / Windows 打包后写入只读资源目录或系统临时目录残留的问题。
  • 浏览器直播不再堵塞 SSEbrowser_frame SSE 事件改为只发送 URL、title、action、target 等轻量元数据;实时画面通过 /ws/browser 发送二进制 JPEG 帧,前端用 object URL 渲染并及时释放,避免 base64 截图挤占共享事件流。
  • 更新重启启动保护 — 修复更新重启路径的 launch guard,避免重启后误判已有实例或丢失启动状态。

Changed

  • 静态资源缓存版本统一 — WebUI 所有 JS/CSS cache-busting 参数统一为 beta16
  • 版本元数据统一 — Python 包、Electron 应用、Electron lockfile、README badge、WeChat client 标识与 uv.lock 统一到 beta16。

Tests

  • 新增/更新 test_app_pathstest_browser_sessiontest_runtime_fixestest_workbench_frontend_logic,覆盖平台路径解析、临时产物清理、二进制浏览器帧传输、登录接管确认和破坏性操作确认。
  • 前端 cache-bust 断言同步到 beta16。

v0.6.0-beta.15

v0.6.0-beta.15 Pre-release
Pre-release

Choose a tag to compare

@luciano1810 luciano1810 released this 28 Jun 12:35

[0.6.0b15] - 2026-06-28

Added

  • Workbench 无 Git diff 捕获 — Workbench 运行前后现在会记录有界 UTF-8 文本快照;即使项目目录不是 Git 仓库,也能为新增、修改、删除文件生成统一 diff,并把 diff 写入 run、step related files 与 artifact,避免后续查看文件变化时只能看到“整文件快照”或空 diff。
  • Workbench 会话召回进入项目 workspaceRecallConversation 在 Workbench 任务/聊天上下文中优先搜索当前项目 conversations/*.md,返回 scope=workbench_workspace、session id 和 source file,避免跨项目或 legacy archive 召回不相关对话。

Fixed

  • quit(reply=...) 历史不再丢失最终回复 — 直接通过 quit(reply=...) 收尾的回答现在会同步写入 assistant history content,确保用户可见 transcript 与下一轮 LLM 读取的会话历史一致。
  • 多词记忆召回过窄RecallMemory 与 Workbench 项目记忆搜索支持空格分词 OR 匹配并按短语/term 命中排序,像“照片 人物 头像 识别”这类查询不再要求整段完全连续命中。
  • 文件 diff 查看更稳 — Workbench diff API 会优先使用 recorded diff;Git diff 为空时补查 staged diff,对无内容变化的 timestamp-only 变动返回记录原因,避免误导性地把当前整文件当作变更。

Changed

  • 静态资源缓存版本统一 — WebUI 所有 JS/CSS cache-busting 参数统一为 beta15
  • 版本元数据统一 — Python 包、Electron 应用、Electron lockfile、README badge、WeChat client 标识与 uv.lock 统一到 beta15。

Tests

  • 新增/更新 test_quit_replytest_runtime_fixestest_workbench_init_plantest_workbench_memory_language 覆盖 quit reply 持久化、workspace conversation recall、记忆 OR 查询和 Workbench diff 记录。
  • 前端 cache-bust 断言同步到 beta15。

v0.6.0-beta.14

v0.6.0-beta.14 Pre-release
Pre-release

Choose a tag to compare

@luciano1810 luciano1810 released this 27 Jun 19:04

[0.6.0b14] - 2026-06-28

Fixed

  • Electron 30s 启动超时(知识迁移阻塞)migrate_default_project_knowledge 现在以 asyncio.create_task 后台化运行,不再在 lifespan startup 钩子里同步等待。迁移涉及逐文档的 vision/embedding LLM 调用,耗时无上界;之前它阻塞 uvicorn 全部 startup 事件,PORT= 迟迟无法打印,桌面端因超 30s 超时无法启动。现在服务器立即就绪,迁移在后台继续进行。
  • Vision 候选链顺序反转_resolve_vision_candidates 修复:视觉专属模型(用户配置的视觉端点)现在排在候选链首位,文本主模型(如 DeepSeek)作为兜底降级。此前文本主模型被先尝试,每张图片必然 400 失败一次再回落视觉模型,在大批量文档分析时累积拖慢启动。
  • 反思记忆污染 fact bucket — goal loop 反思产生的 excluded_paths(死路)和 promising_directions(有效方向)现在写入内部 reflection 分类,而非 fact,不再虚增用户记忆页的"事实信息"计数,且不在记忆页展示。反思条目仍注入每次 agent run(跨 session 传递学习成果)。

Changed

  • 记忆分类体系重构conversation 分类从"对话记忆"重定义为"对话习惯"(用户希望 agent 如何与其沟通的重复偏好,例如"用中文回复"、"直接给结论"),现在会注入每次 agent run(之前因认为高噪低价值而被排除)。新增内部 reflection 分类(agent bookkeeping 专用,不在用户页显示)。_EXTRACT_PROMPTsave_project_memory 工具描述同步重写,区分 habit(如何做事)、conversation(如何沟通)、preference(对产物/工具的静态喜好),提示模型选到最精确的分类。
  • Agent 实体查询铁律 — 提示词新增明确约束:"任何涉及用户任务 / 项目 / 待办 / 决策 / 日程的回答,一律先查实体、以记录为准,不得凭记忆或印象作答。"同时新增规则:生成或执行项目任务计划前,先 list_entities(status="active") + 相关 query_entities 拉活跃任务与决策,复用已有结论、避免与既有事务冲突。
  • Cyrene 品牌按钮 — Workbench 顶栏 Cyrene Logo 按钮由跳转任务页改为打开"设置 → 关于"页。

Tests

  • 前端 cache-bust 断言同步到 beta14。

v0.6.0-beta.13

v0.6.0-beta.13 Pre-release
Pre-release

Choose a tag to compare

@luciano1810 luciano1810 released this 27 Jun 17:45

[0.6.0b13] - 2026-06-28

Added

  • Workbench 项目共享上下文(workbench_task_context — 新模块,专为 Workbench 任务 session 提供项目级共享上下文。sharedContext 字段挂载在 project 对象上,记录任务描述、最终目标和当前成果(currentOutcome)。主 agent 运行时自动注入项目固定块 + session 任务/计划/验收标准;子代理(subagent)同样获得项目上下文,并在完成后把最终回复追加到 currentOutcome.entries 供同一项目下所有 session 共享。
  • 计划模式预探索 — 计划模式下,主 agent 在提交计划前现在可以调用只读探索工具(读文件、搜索项目记忆、查询外部信息),完成后再调用 enter_plan_mode。规划器接收到压缩后的工具调用摘要(_history_context_text),计划将真正基于工作区实际状态生成,而不再是纯推断。
  • 项目记忆 Session 基线快照 — Session 启动时记录当前记忆 ID 集合作为固定前缀(cache-stable),Session 期间新增的记忆条目自动进入 volatile 尾部独立渲染,不影响已缓存的固定前缀。下一个新 Session 开始时再次快照,把 volatile 条目提升为固定块。

Fixed

  • 对话分段渲染 — 多文件交付顺序_reorder_tool_produced_replies 修复:同一回合内多个文件分段交付时,每段交付回复现在都能正确排列到其对应工具卡片之后(而不仅限于单文件场景)。
  • 知识 workspace 隔离_resolve_workspace_id 修复:默认项目记忆不再跨项目泄漏;新增启动事件将默认项目知识从旧版共享数据库中解耦,写入项目专属存储。
  • Subagent 收尾超时 — goal loop 等待 subagent settle 时现在带超时,不再因 subagent 意外挂起而无限阻塞。

Changed

  • Prompt 缓存优化 — fixed_ephemeral_systemrun_agent / coordinator / _run_main_agent 新增 fixed_ephemeral_system 参数。Run 级上下文(Workbench 任务简报、项目记忆快照、temporal context、conversation identity)现在插入到当前用户消息之前,而非 prompt 尾部;工具回合通过纯 append 演进,前一轮请求是下一轮请求的完整前缀,缓存命中显著提升。原 ephemeral_system 仅保留给真正需要每轮变化的 volatile 尾部内容。
  • Phase 1 首轮也使用完整工具集 — 移除首轮使用轻量 phase1 工具集的例外:常规对话的第一轮 Phase 1 decision 现在与后续轮次一样使用 wire_tool_defs,利用 DeepSeek 工具敏感前缀缓存,首轮不再因工具集差异导致额外 cache miss。
  • 记忆注入 API 增强render_memory_for_injection 新增 include_idsexclude_idspreserve_id_orderheader 参数,支持精确控制哪些记忆条目注入、以什么顺序、使用什么标题头部;新增 memory_injection_ids 辅助函数返回当前可注入的 ID 有序列表。
  • macOS 流量灯间距修复 — Workbench UI 在 macOS 上正确保留 traffic light 按钮空间,避免布局重叠。
  • 静态资源缓存版本统一 — WebUI 所有 JS/CSS cache-busting 参数统一为 beta13
  • 版本元数据统一 — Python 包、Electron 应用、Electron lockfile、README badge、WeChat client 标识统一到 beta13。

Tests

  • 新增 test_workbench_task_context(共享上下文构建与 outcome 写入)、test_workbench_chat_plan(计划模式预探索与修订)、test_cache_fixes(fixed ephemeral 注入位置、首轮 phase1 工具集)。
  • 更新 test_runtime_fixes;前端 cache-bust 断言同步到 beta13。

v0.6.0-beta.12

v0.6.0-beta.12 Pre-release
Pre-release

Choose a tag to compare

@luciano1810 luciano1810 released this 26 Jun 19:32

[0.6.0b12] - 2026-06-27

Added

  • Quick Chat 升级为完整对话体验 — 快捷对话窗口改用与主对话页相同的共享运行管理器(WorkbenchChatRuntimes)和消息卡片渲染。回复现在带工具调用轨迹(trace)、生成的文件附件,以及实时“思考 / 调用工具”卡片,与主界面完全一致,不再是简化的文本气泡。运行在服务端持久化:关闭或重新唤起快捷窗口只停止本地流消费,Agent 仍在后台继续执行,进度可在主窗口查看。
  • Quick Chat 窗口尺寸与滚动优化 — 空闲时保持紧凑但留足上方权限 / 命令菜单空间;首次发送后窗口一次性增高到对话所需高度,之后用户可自由调整、布局随之自适应。滚动具备粘性:仅在贴近底部时跟随最新消息,向上翻阅历史不再被拽回底部。

Fixed

  • 默认项目记忆数显示为 0 — 记忆页用项目 dataKey 作 workspace,但记忆按项目 id 存储;旧版默认项目两者不同(dataKey = defaultid = project_…),仅按 id 匹配会落空到空的 “default” store。现先按 id、再按 dataKey 解析,任一标识都能命中同一项目记忆库。
  • WebUI / Workbench 通道误报“已发送微信文件” — 当前通道不具备 send_file 能力时不再向模型暴露 send_wechat_file 工具,避免一次必然失败的调用、浪费一个回合并留下误导性的“已发送”卡片。
  • send_file 把整段回答塞进 caption — 明确 send_filetext 只是文件旁的简短说明,模型仍需另写完整最终回复,避免一回合塌缩成裸 “Done.”。
  • 心跳间隔被强制为 60 的倍数 — 设置项允许输入任意秒数(step 改为 1),不再在输入时强制取整或回退默认值。

Changed

  • Agent 事务追踪:主动检索 — Agent 现在会在对话涉及用户个人事务、计划、项目时主动调用 list_entities/query_entities 获取当前状态再作答,而非等待用户明确要求查询。新增五条具体触发规则:首轮个人话题自动扫描活跃事务、指代词/项目名触发关键词检索、延续性工作开始前先确认待办、更新事务前先检索 ID、记录前去重检查。
  • Prompt 缓存优化 #7quit(reply=)quit 工具新增 reply 参数承载最终回复文本。模型收尾时把答案写进 reply 直接交付,省去原先 tools=None 的“收尾重建”调用——该调用因 tools 数组不在前缀最前端,与主链零共享缓存、需重处理整段历史,是此前缓存 miss 的头号来源(约占 53%)。各阶段 prompt 与工具定义同步更新,引导模型把完整答案写进 reply
  • 对话分段渲染改进 — 中途“让我查一下…”这类既有正文、又调用工具的回合现在单独成块呈现(此前正文被丢弃);失败的工具调用在 trace 卡片中以 ✕ 标记;send_file / send_wechat_file 交付的文件回复被重排到其工具卡片之后,渲染顺序固定为 [工具卡片] → [交付文件]。
  • Chat 流式渲染性能 — 回复增量(reply delta)的重渲染按 requestAnimationFrame 合并,每帧最多一次;已完成消息的 Markdown 解析做记忆化,实时消息仅在文本变化时重解析,避免长回复每帧 O(n²) 重新解析整段会话。
  • 静态资源缓存版本统一 — WebUI 所有 JS/CSS cache-busting 参数统一为 beta12
  • 版本元数据统一 — Python 包、Electron 应用、Electron lockfile、README badge、WeChat client 标识统一到 beta12(并补齐 beta.11 遗漏的 README badge 与 uv.lock)。

Tests

  • 新增 test_quit_reply(quit reply 直接交付、跳过收尾重建)、test_workbench_chat_segments(中途前导语成块、失败 trace 标记、交付回复重排序)、test_workbench_memory_resolve(默认项目按 id / dataKey 双重解析)。
  • 更新 Quick Chat 契约测试以匹配共享 run-manager 架构;前端 cache-bust 断言同步到 beta12;WebUI 42 个 JSX 全量编译通过。

v0.6.0-beta.11

v0.6.0-beta.11 Pre-release
Pre-release

Choose a tag to compare

@luciano1810 luciano1810 released this 26 Jun 09:24

[0.6.0b11] - 2026-06-26

Added

  • 全局快捷键快速对话(Quick Chat) — 新增 Ctrl+Shift+Space(macOS Cmd+Shift+Space)全局快捷键,任意界面一键呼出浮动 Quick Chat 窗口。支持截图粘贴、独立窗口复用、常驻系统托盘的 app 生命周期(Electron)。由独立 window.WbcComposer 实例渲染,与主 Workbench 互不干扰。
  • Quick Chat 截图支持 — 快捷键唤起后自动捕获活跃窗口截图并粘贴到输入框;可粘贴多条后续截图,按发送自动清空。
  • 更丰富的思考短语列表 — Agent 思考状态从 20 条扩展到 25 条随机短语,覆盖 more deliberate / 系统性推理表达。

Fixed

  • Quick Chat 首轮消息带失效的先决条件is_quick_chat 标记与 scene = 'quick_chat' 对齐,确保初轮消息不走 workbench project 锚定路径。
  • Quick Chat 重复 target 匹配/api/quick-chat/targets 端点对同 socket 的去重返回,避免浮动窗口重复初始化。

Changed

  • 版本号更新至 0.6.0-beta.11 — Python 包、Electron 应用、lockfile、前端 cache-busting 参数统一更新。
  • 静态资源缓存版本统一 — WebUI 所有 JS/CSS cache-busting 参数统一为 beta11

Tests

  • 新增 Quick Chat targets 端点测试、全局快捷键前端测试覆盖。

v0.6.0-beta.10

v0.6.0-beta.10 Pre-release
Pre-release

Choose a tag to compare

@luciano1810 luciano1810 released this 24 Jun 15:09

[0.6.0b10] - 2026-06-24

Added

  • 可恢复的 Workbench Chat 运行 — Chat Agent 运行由进程级 ChatRunManager 持有,不再依赖单个 HTTP 流的生命周期。浏览器断线、切换页面或短暂网络中断后,Agent 仍会继续执行并持久化结果;前端通过独立只读重连接口恢复事件流。
  • 手动压缩对话上下文 — Workbench Chat 概览新增“压缩对话”操作,可在自动阈值前显式执行现有上下文折叠流程,并显示压缩前后的 context 占用比例。
  • 项目记忆退役工具 — 新增 retire_project_memory,Agent 可按精确 memory ID 将错误、过时或已被取代的项目记忆标记为 retired。记录仍可在 Memory 页面恢复,但不会继续注入 Agent 上下文或出现在普通搜索结果中。
  • 回复期间继续编辑草稿 — Agent 回复期间输入框保持可编辑,用户可提前准备下一条消息;发送仍被锁定,停止当前运行后才可提交。

Fixed

  • 新消息被错误当作运行重连而静默丢弃POST /messages 现在只负责创建新运行;已有运行时统一返回 409 chat_run_in_progress。重连改走独立 GET /run-stream,从协议层区分“发送新消息”和“恢复旧事件流”。
  • 非流式请求可绕过单聊天运行锁 — 流式与非流式 Chat 请求现在都先在同一个运行注册表中原子占位,防止同一聊天并发启动多个 Agent、覆盖状态或打乱 transcript 顺序。
  • 重试失败会删除旧回复 — 重新生成改为事务式替换:旧回复在新回复持久化前保持不动;模型调用失败时恢复原 Agent state,只有成功或进入 awaiting-user 状态后才提交截断。
  • 重复附件上传导致当前会话文件失效 — Knowledge Base 内容去重不再删除 Chat transcript 正在引用的上传路径;缺失的 canonical KB 路径可由新的同内容文件恢复并重新索引。
  • 附件缺失后误扫本机文件系统AnalyzeAttachment 对文件缺失返回终止型结构化错误,提示重新上传,并明确禁止使用 Glob/Grep/Bash/find 扫描设备寻找替代文件。
  • 图片附件预览破图与溢出 — Composer 和历史消息中的图片加载失败时自动降级为文件 chip,预览容器限制溢出。
  • 系统主动轮次可能调用 ask_user — proactive/system-initiated 轮次不再暴露或执行 ask_user,必须自主完成检查或静默结束。
  • 未知 context window 时按消息数丢历史 — 无法确定模型上下文窗口时不再执行有损的固定条数裁剪;仅在 token budget 可确定时压缩。
  • 短期记忆提取长期停留在最早消息 — 记忆压缩窗口改为最近 20 条用户/助手消息,并过滤 retired 条目。
  • 内部 task report 污染 Memory 页面和全局搜索task_report 继续作为内部规划上下文保存,但不再计入用户可见记忆列表、统计、来源图和 Workbench 搜索。

Changed

  • 静态资源缓存版本统一 — WebUI 所有 JS/CSS cache-busting 参数统一为 beta10,确保升级后加载同一版本的完整前端资源。
  • 版本元数据统一 — Python 包、Electron 应用、Electron lockfile、README badge、WeChat client 标识统一到 beta 10。

Tests

  • 新增 Chat 运行断线继续执行、显式重连、非流式运行注册、重试回滚、重复附件保留、缺失附件终止、手动上下文压缩、记忆退役、内部记忆隐藏和 proactive 工具限制等回归测试。
  • WebUI JSX 全量编译通过;相关 Python 测试覆盖 session persistence、runtime、knowledge、Workbench chat/memory/search 和前端逻辑。

v0.6.0-beta.9

v0.6.0-beta.9 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 23 Jun 03:59

[0.6.0b9] - 2026-06-23

Added

  • Workbench API 封装层(workbench_chat_runs.py — 新增独立模块封装 chat run 生命周期:创建/恢复 run、sse 心跳、中止、轮次历史与 run 元数据路由。前端通过 workbench-api.jsx 统一客户端调用,替换原先散落在 workbench-chat.jsx 里的 fetch 调用,降低耦合。
  • Chat 心跳(Heartbeat) — Workbench Chat 流式响应新增 SSE 心跳帧,保持长连接活跃、防止中间代理/网关因空闲超时断流;前端在心跳到达时更新「正在思考」指示而不写入消息。
  • LLM 蒸馏上限与阈值预检call_llm.py 引入压缩块蒸馏最大尝试次数,防止增量压缩无限重试;新增 exceeds_compaction_threshold 预检,仅在消息上下文真正超过压缩阈值时才触发蒸馏。
  • LLM 瞬时错误重试 — 对 LLM 调用中的瞬时服务器错误加入有限次数自动重试,超限后才失败;新增针对瞬时错误与重试行为的测试。
  • Workbench 初始化任务优先级指示 — 初始化 UI 增加任务管理与优先级视觉指示,更清晰展示 init 阶段任务队列。

Fixed

  • Workbench Chat 代码块语法高亮与复制按钮丢失 — marked v5+ 移除 highlight 选项后 highlight.jsx 沦为死代码,代码块不再带 hljs span。改用 marked v13 正确的渲染器经 marked.use 输出完整 <pre><code> 块(含行号与语言标签)。actions.jsx 原先只扫描 .msg-list(legacy chat),复制/编辑按钮无法触达 workbench 的 .wbc-thread;现同时监听 .msg-list.wbc-thread.wbc-side-body,并在 SPA 导航后以 2s 轮询重新挂载观察器。highlight.css 选择器由 .msg-body-only 扩展到 .wbc-msg-body.markdown,行号、语言标签、操作栏与 hljs 主题在 workbench 全部生效。渲染器顶层 try/catch 在 hljs 失败时回退为纯转义文本,避免 marked.parse 崩溃。
  • Workbench Profile 仪表盘统计数据不实时刷新 — Profile 页消费 DATA.dashboard(KPI、活跃度热图、insights、top tools),但该数据仅在 bootstrap 时获取一次,SSE 事件总线与 15s 轮询均未触及。新增轻量 GET /api/dashboard?tz= 路由只返回 _build_dashboard,避免重建完整 ui-datarefreshDashboard() 带请求序列守卫与 JSON 指纹跳过无变化重渲,经 3s 防抖订阅 SSE 事件并纳入 15s 全局轮询。
  • 默认 Workbench 项目可被删除DELETE /api/projects/{id} 端点对默认项目(dataKey === "default")缺少守卫,会清空其 sessions、chats、memory。现对默认项目返回 400 default_project_protected,前端隐藏默认项目的删除按钮并在调用失败时给出友好提示。

Changed

  • Workbench 路由 JSON 响应与错误分类routes.py 统一处理 JSON 响应格式,并对解析失败加入错误分类,便于前端区分瞬时错误与永久错误。

Tests

  • 新增 tests/test_call_llm_candidates.py 瞬时服务器错误用例 — 覆盖重试行为与失败处理。
  • 更新 tests/test_workbench_api_validation.py — 覆盖默认项目删除保护(default_project_protected)。
  • 更新 tests/test_workbench_init_plan.py — 覆盖 init 任务管理与优先级指示。

Docs

  • README / .gitignore 与项目状态同步 — Quick Start 切换到 uv(lock file 已提交)并附 pip 回退;补充 WebUI JSX 预编译步骤(compiled/ 被 gitignore、由 index.html 加载)与 Node.js 20+ 前置;列出 browser/dev 可选 extras、细化 Testing 限制说明,tech stack 加入 uv + Ruff。.gitignore 不再忽略 uv.lock,新增 .ruff_cache/backups/ 与根锚定 /db.sqlite3[-*];移除误提交的根 db.sqlite3(真正运行时 DB 在 store/cyrene.db)。