chore: prepare desktop 0.15.10 release
Cross-platform packages / Validate source (push) Canceled after 0s
Cross-platform packages / Authorize desktop packaging (push) Canceled after 0s
Cross-platform packages / linux arm64 (push) Canceled after 0s
Cross-platform packages / macos arm64 (push) Canceled after 0s
Cross-platform packages / windows arm64 (push) Canceled after 0s
Cross-platform packages / linux x64 (push) Canceled after 0s
Cross-platform packages / macos x64 (push) Canceled after 0s
Cross-platform packages / windows x64 (push) Canceled after 0s
Cross-platform packages / Publish GitHub and OSS release (push) Canceled after 0s
GoodBuddy Agents / Validate Agent source (push) Canceled after 0s
GoodBuddy Agents / Build darwin arm64 Agent (push) Canceled after 0s
GoodBuddy Agents / Build linux arm64 Agent (push) Canceled after 0s
GoodBuddy Agents / Build linux x64 Agent (push) Canceled after 0s

Document unified navigation, Supervisor controls, activity and desktop performance changes. Keep Agent 0.15.3 and record schema 58 backup requirements, NORMAL durability tradeoffs, and bounded real Host evidence.
This commit is contained in:
mesalogo
2026-10-04 11:33:33 +08:00
parent 74efbcdc17
commit 273a7fa7a5
6 changed files with 131 additions and 7 deletions
+15 -2
View File
@@ -345,7 +345,7 @@ records are listed separately and do not introduce another feature status.
failure, Agent `SIGKILL`/restart, and recovery from a reopened Desktop SQLite
database. Successful tool START/END events appear exactly once, with no
Prompt, provider, or tool replay observed. The current Agent source lock is
`0.15.3`, paired with the current Desktop release candidate `0.15.9`; formal
`0.15.3`, paired with the current Desktop release candidate `0.15.10`; formal
publication status follows the separate Agent and Desktop
release channels. Previous macOS validation covered native package installation,
detached lifecycle, Attach, real Ask/Execute, and cancellation of tools in
@@ -978,9 +978,22 @@ records are listed separately and do not introduce another feature status.
### Open source, builds, and releases
- The current Desktop candidate is `0.15.9`; Agent candidate `0.15.3` requires Desktop `0.15.9`, with
- The current Desktop candidate is `0.15.10`; published Agent `0.15.3` requires Desktop `0.15.9`, with
OpenCode pinned to `1.18.29` and Continue to `1.5.47`. Publication status follows the independent
Desktop and Agent release channels.
- Desktop `0.15.10` unifies project/conversation navigation with ten recent
conversations, adds independent Supervisor model selection and a default-on
per-conversation Story Graph switch. Indexed activity paging and complete
summaries, document Workers, lazy startup, narrower render subscriptions,
windowed lists, terminal batching and old Runtime cache cleanup reduce repeated
work without promising universal speedups. Schema 58 requires a pre-upgrade
database and notes backup. Frequent local writes use NORMAL and can lose a
recent suffix on power/system failure; remote acknowledgments, channel delivery
and task lifecycle writes retain FULL. Agent stays at 0.15.3. Four real Host
model requests and a 1,000-line Unicode SSH terminal check passed; exact-source
CI and six native packages remain release gates, and reported remote resume
failures are not claimed fixed. See the
[preparation record](./docs/development/release-preparation-0.15.10.md).
- Desktop `0.15.9` adds shared review progress, stories, experiences, and spiral
graph navigation, with schema 56 backup/rollback requirements and possible
model costs. Conversation/message windowing, Markdown caching, read-only
+3 -2
View File
@@ -53,7 +53,7 @@
- [x] **高效直连模型工作区工具**:直连模型使用随包 ripgrep 的原生参数发现文件和搜索内容,按行分页读取大型 UTF-8 文件,并在 Execute 中应用多文件补丁。Ask 限于工作区只读搜索和读取,Execute 按当前账号权限搜索;用户无需另行安装 ripgrep。搜索保留原生输出与退出码,大结果通过 `output_read` 完整续读,可处理的参数错误允许模型调整后继续。
- [x] **长上下文与工具输出分页**:历史消息、长回复和文档解析文本不再采用旧的固定截断限制。直连模型可分页续读已保存的搜索、命令和 Subagent 输出;所选模型的上下文窗口及传输边界仍然有效。
- [x] **OpenCode 与 Continue**:使用隔离子进程、环境变量白名单、统一配置、取消、启动与控制请求时限、有界流式输出和活动记录;共享进程回收逻辑保留 Windows 完整进程树终止,并对采用独立进程组的 POSIX 子进程执行组回收。聊天状态检查使用一次性探测 Runtime 并在返回后立即回收,不进入按模型与项目隔离的执行 Runtime 缓存;本机 GoodBuddy 管理的 OpenCode 在该被动检查中只确认所选路径和模型凭据,不启动用后即毁的 Server,设置中的显式连接测试和原生能力清单仍执行完整启动及健康检查,原生能力清单随后与首次实际请求复用同一个执行 Runtime,不再重复冷启动;执行 Runtime 仍按项目复用,但 OpenCode 配置依赖和按内容摘要生成的 Skill 快照在所有本机项目间全局复用,会话数据、工具输出及请求级 MCP 状态继续隔离。本机 GoodBuddy 管理的 OpenCode 只对同一会话内的请求保持顺序,不同会话即使属于同一项目也可并行,不同项目同样可并行;请求级动态 MCP 通过默认通配禁用和当前请求精确放行保持隔离。托管的本机和远端 OpenCode 跳过界面未使用的自动 Git 快照,避免同步差异计算拖住会话,文件工具、子代理与工作区 Git 差异保留;Continue 持续排空不用展示的宿主 stdout,防止控制台输出填满管道。这些调整随新启动的 Runtime 生效,不改写外部 OpenCode Server 配置。OpenCode 与 Continue 不再按固定工具调用数或活动数中止单次运行,已观察到的工具与 Subagent 活动全部保留在本地会话,不再在原生任务继续执行时丢弃后续详情。交互提问只由前台对话回答,定时任务、远程通道和委派等后台执行遇到提问时会立即失败并提示改为前台运行,避免无限等待。本机 OpenCode 启动时直接使用已选择的绝对路径,不预先检查文件或运行 `--version`,路径失效时由实际启动返回错误;托管 Linux ARM Host 激活 Runtime 时复用准备阶段已验证的 registry 和 manifest,不重新哈希或检查完整 OpenCode 二进制。
- [x] **托管 SSH OpenCode 与 Continue**:该能力由“设置 > 平台功能”中的独立“远程项目”页签控制并默认关闭;关闭时不影响本地项目、普通桌面功能或桌面发布。支持 Linux x64、Linux arm64 和 macOS arm64 Host,不支持 Intel Mac;通过 SSH 按需启动 detached Agent,不要求开机服务。Ask 在 Runtime 工具边界保持只读,Execute 使用所选 SSH 账号的完整权限。Agent 持有 Prompt、模型和工具轮次、Runtime 进程及语义 transcript,Desktop 断开后重新 Attach 原操作而不重发 Prompt;模型凭据仅在当前操作内存中使用,不写入 Renderer、SSH 参数、环境或磁盘。当前 Agent 可以常驻,更新替换的旧 Agent 排空活动任务后退出。任务完成后回收空闲 Runtime,共享进程仍有任务或待答问题时保留;下一轮重建 Runtime 并恢复对话历史。设置页按平台和架构显示包状态,用户显式下载、更新或导入/导出包含 Agent、固定 Node、OpenCode 和 Continue 的签名 `.gbagent`;三个目标共用一个签名 catalog,继续校验签名和 SHA-256。Continue 需要更新后的联合包与配套 Desktop。首次发布混合 catalog 前需先升级 Desktop,旧版 Linux-only 目录读取器无法解析包含 Darwin 的目录。历史 macOS OpenCode 原生安装、生命周期、Attach、真实 Ask/Execute 和独立进程组工具取消已在真实 Host 验证,不代表 Continue 的同等实机覆盖。当前 Agent 源码锁为 `0.15.3`,配套 Desktop 候选为 `0.15.9`;详细运行边界和 Linux 历史回归证据见[远程主机技术设计](docs/features/remote-host/technical-design.md),正式发布状态以独立发布渠道为准。
- [x] **托管 SSH OpenCode 与 Continue**:该能力由“设置 > 平台功能”中的独立“远程项目”页签控制并默认关闭;关闭时不影响本地项目、普通桌面功能或桌面发布。支持 Linux x64、Linux arm64 和 macOS arm64 Host,不支持 Intel Mac;通过 SSH 按需启动 detached Agent,不要求开机服务。Ask 在 Runtime 工具边界保持只读,Execute 使用所选 SSH 账号的完整权限。Agent 持有 Prompt、模型和工具轮次、Runtime 进程及语义 transcript,Desktop 断开后重新 Attach 原操作而不重发 Prompt;模型凭据仅在当前操作内存中使用,不写入 Renderer、SSH 参数、环境或磁盘。当前 Agent 可以常驻,更新替换的旧 Agent 排空活动任务后退出。任务完成后回收空闲 Runtime,共享进程仍有任务或待答问题时保留;下一轮重建 Runtime 并恢复对话历史。设置页按平台和架构显示包状态,用户显式下载、更新或导入/导出包含 Agent、固定 Node、OpenCode 和 Continue 的签名 `.gbagent`;三个目标共用一个签名 catalog,继续校验签名和 SHA-256。Continue 需要更新后的联合包与配套 Desktop。首次发布混合 catalog 前需先升级 Desktop,旧版 Linux-only 目录读取器无法解析包含 Darwin 的目录。历史 macOS OpenCode 原生安装、生命周期、Attach、真实 Ask/Execute 和独立进程组工具取消已在真实 Host 验证,不代表 Continue 的同等实机覆盖。当前 Agent 源码锁为 `0.15.3`,配套 Desktop 候选为 `0.15.10`;详细运行边界和 Linux 历史回归证据见[远程主机技术设计](docs/features/remote-host/technical-design.md),正式发布状态以独立发布渠道为准。
- [x] **SSH Host 手动环境准备源码链路**:Host Key、认证和系统探针成功后先保存 Host,并只读探测共享 Agent/Runtime;保存 Host、打开项目都不自动安装。Host 卡片只有一个按版本事实显示“安装远程环境”“更新远程环境”或“重新安装”的主按钮,次级 SegmentedControl 选择默认且不持久化的“自动”、Host 下载或 GoodBuddy 传输;“版本匹配”badge 不等同环境健康。自动模式只在 operation/prepare 前探测并择一,显式选择保持有效,任何 prepare、commit 或 adoption 失败都不跨 acquisition 自动 fallback。两种方式把同一签名 compound `.gbagent` 交付到固定 staging 后,共用 control-plane prepare、commit、Agent activate/health、Runtime activate、finalize 与显式 cleanup。GoodBuddy 路径可在同一次操作下载并验证缺失候选、缓存并取得 lease,再有界流式 SFTP 上传一个归档和其中已验证的 bootstrap Node,不把约 294 MiB 整包读入 Main `Buffer`;Host 在解包时完成一次完整 payload 校验。未完成操作只记录暂存 cleanup 所需的 operation ID;下次更新尽力清理旧暂存后重新 prepare,不保存远端 metadata 副本,也不让 cleanup 失败阻塞新更新或回滚健康环境。已有项目在实际使用 Workspace/Runtime 时按需解析 Host current identity 并执行固定 `attach-or-bootstrap`,注册后的 health、capabilities 和 prompt 启动不扫描完整 payload。详见 [设计说明](./docs/features/remote-host/environment-provisioning-technical-design.md)。
- **SSH Host 环境准备验证记录**:当前源码已在隔离 Linux x64 环境通过包安装、Ask/Execute、原生子代理工作区外写入、重连及 stop/bootstrap。现有记录未覆盖 Host 卡片的完整 GitHub、北京镜像、Linux x64/arm64、取消和离线 GoodBuddy 传输矩阵,候选 CI/原生打包与系统休眠唤醒也尚未验证;开发记录不代表版本已经发布。
- [x] **远程工作区与长任务更新**:Agent `0.11.23` 新增远程文件/Git 管理和可选模型限额,随包 Runtime 不再施加固定十分钟 Prompt 时限;无限请求时长仍保留独立连接超时。请先升级 Desktop 至 `0.12.11`,再下载并更新 Host 上的 Agent。
@@ -158,7 +158,8 @@
### 开源、构建与发布
- Desktop `0.15.3` 修复本地直连手动压缩和请求有效期间的工具授权,区分取消与失败并去除重复提示,优化侧栏搜索、注册成功后的快捷键提示及笔记操作布局,减少启动和存储中的重复处理,并精简重复依赖及开发文件。不宣称整体渲染性能已显著提升;Office 实时编辑仍为设计。证据见[0.15.3 发布准备](./docs/development/release-preparation-0.15.3.md)。
- 当前 Desktop 候选为 `0.15.9`,Agent 候选为 `0.15.3`、最低要求 Desktop `0.15.9`,OpenCode 固定为 `1.18.29`、Continue 为 `1.5.47`;正式发布状态以独立发布渠道为准。
- 当前 Desktop 候选为 `0.15.10`,已发布 Agent 为 `0.15.3`、最低要求 Desktop `0.15.9`,OpenCode 固定为 `1.18.29`、Continue 为 `1.5.47`;正式发布状态以独立发布渠道为准。
- Desktop `0.15.10` 统一项目/会话菜单并显示十个最近会话,增加独立监督模型选择及默认开启的会话 Story Graph 开关。活动索引分页与完整汇总、文档 Worker、延迟启动、窄渲染订阅、列表窗口化、终端批次和旧 Runtime 缓存清理减少重复工作,不承诺通用提速比例。schema 58 要求升级前备份数据库及笔记;高频本地写入改用 NORMAL,断电/系统崩溃可能丢失最近部分写入,远程确认、通道投递和任务生命周期仍用 FULL。Agent 保持 0.15.3;四次真实 Host 模型请求及 1000 行 Unicode SSH 终端检查通过,精确候选 CI 与六平台打包仍为发布门槛,不宣称已修复尚未定位的远程恢复错误。见[发布准备](./docs/development/release-preparation-0.15.10.md)。
- Desktop `0.15.9` 增加共享回顾进度、故事经验与时间螺旋,schema 56 要求升级前备份,相关模型整理可能增加费用。会话与消息窗口化、Markdown 缓存、只读 Worker、活动差量保存及远程 checkpoint 批次落库减少重复工作,不承诺所有机器相同比例提速;页内查找不覆盖未挂载行,快速滚动可能显示占位,Worker 不可用时同步回退。Execute 配置修改取消重复原生确认,Electron 为 44.5.1。当前源码四次真实 Host 模型请求通过,仍需精确候选 CI 与打包验证,见[发布准备](./docs/development/release-preparation-0.15.9.md)。
- Desktop `0.15.8` 与 Agent `0.15.2` 支持 Execute 模式保存会话图片到本机或 Host 绝对路径,覆盖需明确指定,不支持转换为 WebP。MCP 设置列出图像工具,不代表所有模式均可用。笔记增加新记录取消、编辑焦点返回及可用内容全宽;缺少浏览器和磨砂设置时默认开启,已保存选择不变。schema 仍为 52。真实 Linux x64 Host 工具层证据与待完成的精确候选 CI、打包验证分别记录在[发布准备](./docs/development/release-preparation-0.15.8.md)。
- Desktop `0.15.7` 复用已完成的流式 Markdown 块与会话派生值,不改默认流式节奏。运行记录进入时读取、可见时每 15 秒刷新,也可手动刷新;本地自定义 MCP 发现故障按服务隔离。受管模型下载源移至模型连接中的确认弹窗,设备共享改为显式启用的测试功能。schema 仍为 52,仍需精确候选 CI 与打包验证,组件测量不等同完整 App 结果。详见[发布准备](./docs/development/release-preparation-0.15.7.md)。
@@ -0,0 +1,68 @@
# Desktop 0.15.10 发布准备
日期:2026-10-04。基线 `v0.15.9`,冻结已提交源码
`74efbcdc1703e6893764dbb2c48e3d1c47b21fce`,35 个提交。
仅纳入已提交实现和发布准备,保留并排除工作区中的导航、文档处理等并行修改。
标准六平台 Desktop,不含 LoongArch;Agent 保持已发布的 0.15.3。
## 范围与兼容性
- 统一项目与会话菜单、当前/全部范围、活动及十个最近会话、悬停预览。
- 监督者独立文本模型选择及默认开启的会话 Story Graph 开关。
- 活动差量保存、索引分页与完整汇总,schema 57 保留历史并迁移排序;
schema 58 增加启动恢复候选消息索引。升级前关闭应用并备份完整数据库
和相邻 notes 目录,旧客户端回退须恢复升级前备份。
- 文档解析 Worker、依赖延迟加载、本地工具环境后台准备、Composer 和
路由等渲染边界、笔记/文件树/知识文档窗口化、滚动和焦点保留。
- 终端 Main 合并与 xterm 帧批次,远程事件 16ms 定时 flush;
checkpoint 前落库、事务顺序和回放去重保留。
- 旧 Runtime 缓存按明确版本和布局命名清理,跳过符号链接;
保留当前布局、运行记录、会话和配置。工作栏间距及操作修复。
- 高频本地写入临时切换 NORMAL 并恢复原 PRAGMA;嵌套事务由外层决定。
保留应用崩溃原子性,但断电/系统崩溃可能丢失最近部分本地写入。
远程确认、通道投递和任务生命周期继续 FULL,后台 PASSIVE checkpoint
不代表已经验证破坏性断电恢复。
- Agent 守护进程只有测试变更,Continue host-v7 仅提取常量,协议和部署
行为未变,因此不发布新 Agent。Electron/Node/OpenCode/Continue 锁不变。
不承诺通用提速比例。窗口化未挂载行不支持页内查找,快速滚动可显示占位;
只读 Worker 失效可同步回退。开发报告中的 stable controller generation resume
及 Runtime 未到终态错误仍是调查项,本轮不声称修复。
## 本轮真实 Host 验证
中断前已针对 `e89db96` 源码使用固定 Host 身份与既有凭据存储,
在隔离测试目录经生产 Agent、模型桥、远程 ACP、RemoteEventBatcher
和 SQLite 持久化入口执行。后续 `74efbcd` 仅修改工作栏 CSS 间距,
不改变已验证的远程实现。OpenCode 探针显式使用已有 Continue 模型配置,
不是产品静默回退;未构建生产安装包。
**4 次真实模型请求,4 次 HTTP 200**:
| Runtime / 模式 | 批次 | 事件 | checkpoint |
| --- | ---: | ---: | ---: |
| OpenCode Ask | 3 | 4 | 2 |
| OpenCode Execute | 22 | 42 | 21 |
| Continue Ask | 3 | 4 | 2 |
| Continue Execute | 21 | 40 | 20 |
checkpoint 前落库、完整已保存流再次写入返回已存在、Runtime 重建后历史恢复,
本轮拥有进程清零。生产 SSH 连接池与终端会话另输出 1000 行 Unicode,
13 个输出事件;CRLF 归一化后内容完全一致、序号递增、输出先于退出。
最初终端探针选错 Host 路由,发生在模型请求前,真实调用数为零;
随后复用成功固定的路由完成。临时 Electron 缓存警告非致命,不算产品修复。
这些证据不是完整 Renderer、已安装 Agent 升级或全部断线恢复矩阵,
也没有验证所有消息投影恢复分支。开发阶段其他模型调用不计入本轮四次。
## 发布门槛
按用户持续授权,直接提交、推送并跟进 CI 和发布,不逐步询问。
不运行本地测试套件、类型检查、lint 或生产构建;完整验证和构建由精确候选
main CI 执行,通过后才创建新的不可变 Desktop 标签。双语说明与 FEATURES
同时更新;Agent 不打新标签。开发文档记载的未通过测试不能视为已解决,
由此次精确候选 CI 决定,失败须定位修复。
最终需核验六平台打包、macOS 签名与公证、GitHub Latest 和 20 项资产、
北京 OSS 索引一致性与网站 12 种下载选择。不下载或启动安装包,
不将候选或推送成功称为发布完成。
+2 -2
View File
@@ -1,12 +1,12 @@
{
"name": "goodbuddy",
"version": "0.15.9",
"version": "0.15.10",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "goodbuddy",
"version": "0.15.9",
"version": "0.15.10",
"license": "0BSD",
"dependencies": {
"@agentclientprotocol/sdk": "0.25.1",
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "goodbuddy",
"version": "0.15.9",
"version": "0.15.10",
"private": true,
"description": "Secure desktop AI workspace with controlled Agent Runtimes",
"desktopName": "GoodBuddy",
+42
View File
@@ -1,6 +1,48 @@
{
"formatVersion": 1,
"releases": [
{
"version": "0.15.10",
"releasedAt": "2026-10-04",
"notes": {
"zh-CN": {
"highlights": [],
"features": [
"**在一个菜单中切换项目与会话**:左上角统一入口按本地、远程和通道组织项目,可切换当前项目或全部项目范围,并查看活动会话及最近十个会话。悬停可预览,重新进入项目会恢复本次应用会话中最后打开的会话;离开确认和恢复入口保留。",
"**单独选择监督模型和会话图谱使用方式**:监督者可从已有文本模型连接中独立选择模型,不必与聊天模型相同。启用监督者后,可在会话中关闭默认开启的 Story Graph 使用开关,限制该会话的图谱工具发现与调用;模型调用仍按所选提供方计费。"
],
"fixes": [
"**减少大活动历史的加载与保存负担**:活动历史按变化保存、按页读取,界面只保留已加载页面,汇总不再局限于前 5000 个会话。记录仍完整保存在数据库,可继续翻页查看,不以删除历史换取响应速度。",
"**减少启动、文档处理与界面更新中的等待**:文档解析、分块和哈希移到 Worker,部分依赖及本地工具环境按需或后台准备,聊天输入区与工作区减少无关刷新。笔记、文件树和知识文档列表只挂载附近内容并保留选择、焦点与滚动位置;未挂载行不支持页内查找,效果因设备和内容而异。",
"**改善终端输出和远程事件的呈现节奏**:终端合并短时间内的输出再交给界面,远程事件缩短定时批次等待,并保留 checkpoint 前落库、顺序和回放去重。SSH Unicode 输出与真实模型流已做限定场景验证,不代表所有断线恢复问题均已解决。",
"**清理旧 Runtime 缓存并调整工作栏操作**:启动后在后台清理匹配既定命名的旧版本缓存,保留当前布局、会话、日志和配置,跳过符号链接。工作栏分隔间距收窄,滚动箭头避开关闭按钮,输入区明确 DSH 操作并使用就地停止确认,恢复跳到底部的平滑滚动。"
],
"notices": [
"首次启动升级到 schema 58,迁移活动历史排序并增加分页和启动恢复索引。请先关闭应用,备份完整数据库及相邻 `notes/` 目录;旧客户端无法打开升级后的库,降级需恢复升级前备份。",
"为减少磁盘同步等待,高频本地写入使用 SQLite NORMAL,并在后台执行 WAL checkpoint。应用进程崩溃仍保留事务原子性,但断电或系统崩溃可能丢失最近部分本地写入;远程确认、通道投递和任务生命周期写入继续使用 FULL。",
"Agent 保持 0.15.3,本轮不发布新的 Agent 包;Electron、Node、OpenCode 和 Continue 的固定版本不变。"
]
},
"en-US": {
"highlights": [],
"features": [
"**Switch projects and conversations from one menu**: The top-left entry groups local, remote, and channel projects, with current-project or all-project scopes, active conversations, and the ten most recent conversations. Hover to preview, and return to a project's last-opened conversation within the current app session; leave confirmations and recovery entries remain available.",
"**Choose a separate Supervisor model and conversation graph access**: Supervisor can select an existing text-model connection independently of the chat model. When Supervisor is enabled, each conversation offers a default-on Story Graph switch that can disable graph tool discovery and calls for that conversation; model requests remain billable through the selected provider."
],
"fixes": [
"**Reduce loading and saving work for large activity histories**: Activity records save incrementally and load in pages, the UI retains only loaded pages, and summaries are no longer limited to the first 5,000 conversations. Complete records remain in the database and can be paged through rather than deleting history to improve responsiveness.",
"**Reduce waiting during startup, document processing, and UI updates**: Document parsing, chunking, and hashing run in a Worker, some dependencies and the local tool environment initialize on demand or in the background, and the composer and workspaces avoid unrelated updates. Notes, file trees, and knowledge document lists mount nearby content while preserving selection, focus, and scroll positions; in-page find excludes unmounted rows, and results vary by device and content.",
"**Improve terminal output and remote event pacing**: Terminal output is coalesced over short intervals before reaching the UI, and remote event batches wait less before timed flushes while retaining persistence before checkpoints, ordering, and replay deduplication. Bounded real-model stream and SSH Unicode output checks passed; this does not establish that every reconnection issue is resolved.",
"**Clean old Runtime caches and refine workbar controls**: Background cleanup after startup removes older caches matching defined naming patterns while retaining current layouts, sessions, logs, and configuration and skipping symbolic links. Narrower dividers leave more room, scroll arrows avoid close buttons, composer controls clarify DSH actions with inline stop confirmation, and jump-to-bottom scrolling is smooth again."
],
"notices": [
"First launch upgrades to schema 58, migrating activity history ordering and adding paging and startup recovery indexes. Close the app and back up the complete database and adjacent `notes/` directory first; older clients cannot open the upgraded database, so downgrading requires a pre-upgrade backup.",
"To reduce disk synchronization waits, frequent local writes use SQLite NORMAL with background WAL checkpoints. Application-process crashes retain transaction atomicity, but power loss or an operating-system crash can lose a recent suffix of local writes; remote acknowledgments, channel delivery, and task lifecycle writes continue to use FULL.",
"Agent remains at 0.15.3 with no new Agent package in this release; pinned Electron, Node, OpenCode, and Continue versions are unchanged."
]
}
}
},
{
"version": "0.15.9",
"releasedAt": "2026-10-03",