Releases: AvroraCL/CETUS-Desktop
Releases · AvroraCL/CETUS-Desktop
Release list
v0.4.0 · 侧边浏览器解锁 + 死锁与安全修复 + 可达设置
v0.4.0 发布说明
版本号从 0.3.x 跳到 0.4.0:本版包含四个审计轮次沉淀的大量健壮性与体验修复,
变更面广,值得一个次要版本号。
重点
- 侧边浏览器可以打开 GitHub、必应等此前"拒绝访问"的网站(CETUS 在网络层剥除嵌入限制头)
- 全局快捷键、开机自启等设置在 DSH 离线时依然可用(新增托盘「CETUS 设置…」原生对话框)
- 修复二次启动可能永久无响应的死锁、iframe 网页伪造设置消息的安全漏洞
健壮性(两轮深度审计,24 项发现全部闭环)
- 二次启动的管道转发改为全同步,消灭"双击图标无响应"的 UI 线程死锁
- iframe 任意网页不再能伪造设置消息(发送方 ORIGIN 校验),关闭开机自启劫持
- 页面卡死时脚本执行 10 秒超时,不再无限期挂起"打开工作区/聚焦会话"
- 转发的目录不存在时窗口前置 + 可点击气泡提示(原来只有 8 秒气泡且无窗口)
- 启动期间的连续工作区请求改为队列,不再互相覆盖
- 后台清理、保留清理、磁盘写入等全部异常隔离,磁盘满不再导致崩溃退出
体验
- 新增托盘「CETUS 设置…」原生对话框:DSH 离线也可管理全部开关
- 全局快捷键注册失败时气泡说明原因(原来静默弹回)
- 剪贴板被占用时诊断复制有容错与反馈
- 更新下载前检查磁盘空间,不足时提前提示
- 关闭公告通知后 1 小时内不再重弹同一版本
- Jump List / 快捷方式支持带空格的工作区路径
- DSH 端口说明统一为"保存后自动重连"(与实际行为一致)
升级提示
- 0.3.6+ 用户:静默自动更新即可升级(下载链路自 0.3.6 起已修复)
- 更早版本用户:直接运行安装器覆盖安装,设置与数据自动保留
CETUS v0.3.10
CETUS v0.3.10 修复更新源限流导致的自动升级失败。
- GitHub API 达到匿名请求限额或发生网络错误时,更新器改从公开发布页确认最新版本与指定版本,继续下载并校验安装包。
- GitCode 只有版本标签、尚未发布对应安装包时,不再把该标签报告为可更新版本。
- 仍会校验 SHA256SUMS.txt;两个来源均不可用时继续显示具体失败原因。
验证:dev.ps1 check(267 通过,1 跳过);独立 profile 的便携包冒烟通过,退出后 Node 与端口已回收。
从 v0.3.6 升级时,如旧版更新器仍遇到 GitHub API 403,可直接下载本页安装器覆盖安装。
CETUS v0.3.9
更新内容
- 修复自动更新与手动检查重叠时可能重复下载或安装的问题。
- 修复备用更新源成功后未正确记录来源,以及开发运行版可能触发自动升级的问题。
- 修复便携升级异常时旧版本文件未完整恢复的问题。
- 修复侧边网页响应占用内存过多的问题。
- 改进安装器隔离烟测,缩短发布验证时间并保护已安装的 CETUS 快捷方式。
校验
下载后请使用 SHA256SUMS.txt 校验安装器或便携包。应用内更新也会在安装前校验 SHA-256。
CETUS v0.3.8
更新内容
- 升级内置 DeepSeek Harness 至
0.1.7-alpha.1。 - 将办公文档转换依赖固定到已修复的
fflate 0.8.3,修复恶意 ZIP64 文件可能导致转换卡死的问题。 - 修复安装器烟测的进程等待逻辑,并验证重复安装会重建运行时目录。
校验
下载后请使用 SHA256SUMS.txt 校验安装器或便携包。CETUS 的应用内更新也会在安装前自动校验 SHA-256。
v0.3.6 · 自动更新下载修复 + 健壮性加固
v0.3.6 发布说明草稿
关键修复
- 静默自动更新现已真正可用:此前更新包下载沿用了 10 秒的检查超时,大体积安装包/便携包的下载必然在十秒处被中止——自动更新从未能完成下载。下载现在使用独立的 30 分钟长超时客户端(含进度与校验,逻辑不变)
- DSH 页面脚本执行增加 10 秒超时:页面卡死时不再无限期挂起"打开工作区/聚焦会话"操作
健壮性
- 任务完成通知的事件派发改为逐订阅者独立调用:单个订阅者异常只会被记录(
cetus-*.log),不再中断通知链路和后台轮询 - 设置与最近工作区的原子写入在最终改名失败时清理临时文件
- 激活命名管道限制为当前用户(
CurrentUserOnly),其他本地会话无法伪造"唤起/打开工作区"消息
可维护性
MainWindow(曾超 1100 行)按职责拆分为Diagnostics/Workspaces/Maintenance三个 partial 文件,主文件只保留生命周期、更新与主题逻辑
升级提示
- 0.3.1–0.3.5 用户:直接运行本页安装器覆盖安装(会自动沿用原目录并重建 runtime),或让已安装版本的"检查更新"完成下载——本次修复后下载不再被中止
- 便携版用户:运行安装器会自动识别并原地升级便携副本(记录自 0.3.1 起由应用自动维护)
CETUS鲸鱼座 v0.3.5
更新内容
修复 DSH 侧边栏浏览器打不开网页
- 之前 Cetus 会取消所有离开 DSH 地址的 iframe 导航,而 DSH 自带的侧边栏浏览器正是用一个指向外部网址的 iframe 实现的,因此那个面板永远加载不出内容
- 现在帧导航放行
http/https;只保留对"能碰到本机而非网络"的目标的拦截(file:、javascript:、data:、about:以及外部协议处理器) - 顶层导航仍然严格限制在 DSH 回环地址(网页无法替换掉整个界面),
window.open依旧交给系统浏览器打开 - 更新提示卡片会自动避开右侧边栏,不再压住侧边栏内容
内部改进
- 注入到页面的桥接脚本改为独立文件并以资源方式内嵌,新增测试会把它放在最小 DOM 垫片上真实执行,断言更新卡片渲染、按钮消息与设置项文案;该测试在本次开发中确实抓到两处真实缺陷
- 新增导航边界回归测试,同时钉住"帧可以上网"与"顶层不能离开 DSH 源"两侧,防止以后修一边破坏另一边
验证
- Release 与 Debug 构建各跑一遍测试套件,240 项全部通过
Windows x64;内置 Node.js v24.14.0 与 @deepseek-ai/dsh 0.1.6-alpha.2。
CETUS鲸鱼座 v0.3.4
更新内容
更新提示直接显示在 DSH 界面里
- 发现新版本时,不再弹托盘气泡,而是在 DSH 页面右下角显示更新卡片:
当前 0.3.3 → 新版本 0.3.4、更新说明摘要,以及「立即更新」和「查看发布说明」两个按钮 - 下载过程中卡片显示百分比进度,按钮置灰不可重复点击
- 点右上角 × 可忽略该版本;忽略后通用设置里的那一行会持续显示「新版本 0.3.4」,点一下即可让卡片重新出现
- 页面每次加载都会主动向 CETUS 请求更新状态,所以刷新或切换会话后提示不会丢
更新不再自动安装
- 过去启动时的静默更新会在下载完成后自行安装并重启 CETUS,等于强制中断正在运行的 agent 任务
- 现在必须由你在卡片上点「立即更新」才会下载和安装;没有你的确认,更新不会结束任何任务
附带修复
- 手动「检查更新」若已有可用新版本,会直接把卡片调出来,不再重复请求更新源
- 检查完成但仍是最新版本时,页面按钮会从「检查中…」恢复为「检查更新…」
验证
- Release 与 Debug 构建各跑一遍测试套件,224 项全部通过(新增 7 项覆盖卡片载荷契约)
- 页内卡片是注入到 DSH 页面的 JavaScript,C# 单测覆盖不到,因此新增
tests/bridge/:把桥脚本从源码中抽出,在最小 DOM 垫片上真实执行并断言渲染结果、按钮消息、忽略行为与设置行文案;该测试在开发中确实抓到过一处真实缺陷
Windows x64;内置 Node.js v24.14.0 与 @deepseek-ai/dsh 0.1.6-alpha.2。
CETUS鲸鱼座 v0.3.3
更新内容
修复 DSH 主机被误判死亡而反复重启
- 健康探针不再把「主机在回话但拒绝会话 Cookie」(401/403)当成死亡:这类情况只记录诊断信息,永不终止主机;启动阶段则按端口被占处理,自动改用空闲端口
- 放宽致死判定:探针超时 2 秒→5 秒、检查间隔 2 秒→3 秒、连续失败 3 次→10 次,并在终止前追加一次复核探测;就绪等待 60 秒→90 秒
- 主机忙时(长任务、编译占满 CPU)不再因 6 秒内的超时被误杀,正在运行的 agent 任务不会因此丢失
修复启动后立刻「重启一次」
- 新增宿主归属记录:只有能证明归属进程仍存活时才复用端口上的 DSH,避免认领上一次 Cetus 遗留、注定随旧 Job Object 死亡的宿主
- 修复陈旧失败重放:启动失败期间挂起的失败不再遗留到下一次启动,不会把刚就绪的主机立刻杀掉重启
修复日志刷屏与托盘通知失效
- 修正 session/list 调用参数形状(
{}→_request),消除每 10 秒一条的调用失败日志,恢复「任务完成」托盘提醒 - 修复打开工作区/Jump List 后运行时停在「正在加载界面」导致托盘「重试连接 DSH」变灰的问题
更新流程抗回滚循环
- 便携更新健康预算 90 秒→180 秒(覆盖端口宽限 + 就绪等待 + WebView2 初始化)
- 升级失败回滚后记录失败版本,旧版本启动时跳过该版本的静默安装,避免「回滚→重启→再装→再失败」循环
- 凭据写入改为原子替换,并保证
.credentials.yaml始终带version:头,避免 DSH 解析失败无法启动
其它
CETUS_DSH_HOME覆盖下浏览器 Cookie 与探针来源一致- 退出时重复停止的竞态保护
- 测试全程隔离到临时目录,不再向真实用户目录写入运行日志与归属标记
验证
- Release 与 Debug 构建各跑一遍测试套件,217 项全部通过(新增 22 项覆盖探针三态、鉴权被拒不杀主机、残留宿主不认领、归属记录校验、更新版本黑名单与会话参数契约)
- 手动实测:真实 DSH 端点 401/200 行为、
session/list参数修正后的返回、并发压测下探针延迟(1–13 ms)
Windows x64;内置 Node.js v24.14.0 与 @deepseek-ai/dsh 0.1.6-alpha.2。
v0.3.2 · 稳定更新与安全回滚
更新内容
- GitHub 与 GitCode 并发检查,选择最高版本;下载时按同版本自动回退,并只在校验成功后记录实际来源
- 便携版升级加入受管文件清单、启动健康检查和自动回滚,保留安装目录中的用户文件
- 修复 DSH 会话轮询超时后通知永久停止的问题,增加节流故障日志与恢复记录
- 修复中文、空格和 emoji 便携路径的安装器原地升级兼容性
- 阻止静默检查与手动检查并发启动重复下载或安装任务
验证
- Release 构建与 195 项测试通过
- 便携包启动、Node 进程及端口回收烟测通过
- 安装器中文/emoji 路径双次安装、runtime 重建与卸载烟测通过
Windows x64;内置 Node.js v24.14.0 与 @deepseek-ai/dsh 0.1.6-alpha.2。
v0.3.1 · 窗口缩放修复 + 便携原地升级 + 品牌更新
v0.3.1 发布说明草稿(未发布——由用户决定时机)
修复
- 窗口化状态下无法缩放窗口:WebView2 子窗口此前覆盖了 6px 缩放边框并截获鼠标命中,现已在两侧与底部留出原生缩放边框,还原态可正常拖拽缩放
- DSH 频繁重启:覆盖安装导致的新旧 Node 依赖混杂会让 DSH 反复崩溃重启;安装器现在每次安装前重建
runtime目录(已通过二次安装实跑验证),从根源消除 - 更新公告改为在 CETUS 内置窗口中打开(不再跳转系统浏览器;WebView2 不可用时自动回退)
- 新增运行日志(
logs\cetus-*.log):记录 DSH 启动/退出/恢复全过程,便于诊断启动类问题
改进
- 端口对话框输入被占用端口时实时警告
- 诊断面板适配深色主题
- 窗口恢复位置自动钳制在当前虚拟屏幕内(拔掉副屏后窗口不再"消失")
- 托盘悬停提示显示当前版本号
- 后台内存优化:隐藏到托盘约 5 分钟后挂起 WebView2 渲染器,唤起即恢复
- 启动后自动清理:日志保留最近 10 个(30 天上限),更新缓存清理超过 7 天的安装包
- 激活命名管道限制为当前用户
0.3.0 以来的其他内容(如未随 0.3.0 发布则一并列出)
- 更新下载自动测速选源;便携版支持应用内自动升级(整目录镜像替换)
- 安全模式诊断页 + 托盘「导出诊断…」
- 任务完成托盘通知点击直达对应会话;窗口位置/尺寸跨重启保持;更新下载任务栏进度
- DSH 显式绑定
127.0.0.1并在就绪后校验;凭据文件 ACL 收紧;诊断导出永不包含凭据 - DSH 版本查询(npm dist-tags)