From cc451f698d38d4a7441980f66152deac97577049 Mon Sep 17 00:00:00 2001 From: mesalogo Date: Thu, 1 Oct 2026 00:23:54 +0800 Subject: [PATCH] release: prepare Desktop 0.15.6 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Include the pending sidebar footer style correction and document frosted appearance, chat rendering, image previews, settings layout, and local MCP recovery. Record schema 52 backup guidance and 886 passing focused tests; Agent remains 0.15.1. Release note: 新增可选磨砂外观,改善聊天输入、图片预览和本地工具连接恢复,并整理设置与笔记布局。 --- FEATURES.md | 13 +++++- FEATURES.zh-CN.md | 5 ++- .../development/release-preparation-0.15.6.md | 33 +++++++++++++++ package-lock.json | 4 +- package.json | 2 +- resources/release-notes.json | 40 +++++++++++++++++++ src/renderer/src/application-center.css | 2 +- 7 files changed, 91 insertions(+), 8 deletions(-) create mode 100644 docs/development/release-preparation-0.15.6.md diff --git a/FEATURES.md b/FEATURES.md index b8f5f142..5f020b83 100644 --- a/FEATURES.md +++ b/FEATURES.md @@ -333,7 +333,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.1`, paired with the current Desktop release candidate `0.15.5`; formal + `0.15.1`, paired with the current Desktop release candidate `0.15.6`; 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 @@ -951,9 +951,18 @@ records are listed separately and do not introduce another feature status. ### Open source, builds, and releases -- The current Desktop candidate is `0.15.5`; published Agent `0.15.1` is unchanged, with +- The current Desktop candidate is `0.15.6`; published Agent `0.15.1` is unchanged, 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.6` adds optional, persisted frosted-glass header/checklist surfaces + (off by default, without OS desktop transparency), reduces repeated chat renders, + and supports direct previews for draft/queued images. Settings are grouped with + right-aligned switches, and note headers/editor spacing are tighter. + Local OpenCode retries explicit transient MCP transport failures once after + cleanup and retires uncertain names; it does not replay prompts or tool calls. + Redacted MCP diagnostics support feedback. Schema 52 adds execution-statistics + indexes; back up the database and notes before upgrading. + See the [preparation record](./docs/development/release-preparation-0.15.6.md). - Desktop `0.15.5` updates Smart heartbeat and incremental review, preserves cancelled-turn history, floats checklist details, and exits note editing after saving. It also adds manual note tags with AND filtering and rename/merge/delete, diff --git a/FEATURES.zh-CN.md b/FEATURES.zh-CN.md index b4617b25..cb2f01f8 100644 --- a/FEATURES.zh-CN.md +++ b/FEATURES.zh-CN.md @@ -52,7 +52,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.1`,配套 Desktop 候选为 `0.15.5`;详细运行边界和 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.1`,配套 Desktop 候选为 `0.15.6`;详细运行边界和 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。 @@ -156,7 +156,8 @@ ### 开源、构建与发布 - Desktop `0.15.3` 修复本地直连手动压缩和请求有效期间的工具授权,区分取消与失败并去除重复提示,优化侧栏搜索、注册成功后的快捷键提示及笔记操作布局,减少启动和存储中的重复处理,并精简重复依赖及开发文件。不宣称整体渲染性能已显著提升;Office 实时编辑仍为设计。证据见[0.15.3 发布准备](./docs/development/release-preparation-0.15.3.md)。 -- 当前 Desktop 候选为 `0.15.5`,已发布 Agent 保持 `0.15.1`,OpenCode 固定为 `1.18.29`、Continue 为 `1.5.47`;正式发布状态以独立发布渠道为准。 +- 当前 Desktop 候选为 `0.15.6`,已发布 Agent 保持 `0.15.1`,OpenCode 固定为 `1.18.29`、Continue 为 `1.5.47`;正式发布状态以独立发布渠道为准。 +- Desktop `0.15.6` 增加默认关闭、可保存的顶栏与清单磨砂外观,不透出系统桌面;减少聊天重复渲染,草稿与队列图片支持直接预览,设置分组及开关右对齐,笔记标题和编辑间距更紧凑。本地 OpenCode 在清理后对明确暂时性 MCP 传输错误最多重试一次,作废结果不确定的名称,不重放 Prompt 或工具调用;反馈包含脱敏连接诊断。schema 52 增加执行统计索引,升级前备份数据库和笔记。详见[发布准备](./docs/development/release-preparation-0.15.6.md)。 - Desktop `0.15.5` 更新智能心跳与增量回顾,保留中断轮次历史,执行清单改为浮层,笔记保存成功后退出编辑;自动评论不重新打开编辑器,失败保留草稿。新增手动笔记标签、AND 筛选及重命名/合并/删除,双栏笔记与全宽概览,固定工作区文件操作栏,缓存 OpenCode 终端依赖并缩短 MCP 名称。schema 51 增加标签存储,同时迁移旧待确认记忆为待处理约定;升级前备份数据库与相邻笔记。证据见[发布准备](./docs/development/release-preparation-0.15.5.md)。 - Desktop `0.15.4` 增加 Runtime/模型分层选择及独立系统任务用量,减少 Runtime 指令和历史重复。schema 49 迁移项目与会话选择,回退须恢复完整升级前数据库和相邻笔记备份。Agent `0.15.1` 要求 Desktop `0.15.4`,修复远程 Continue 历史重复封装,Runtime 锁版本不变。证据见[0.15.4 发布准备](./docs/development/release-preparation-0.15.4.md)。 - Desktop `0.15.1` 已完成六平台原生打包及 GitHub/OSS 发布。Desktop `0.15.2` 新增 Story Graph 只读工具和完整可编辑的监督讨论消息,简化笔记采集并补充退出诊断;远程图谱读取需配套 Agent `0.15.0`。主机与云环境管理应用仍为待实现规划,当前候选证据见[0.15.2 发布准备](./docs/development/release-preparation-0.15.2.md)。 diff --git a/docs/development/release-preparation-0.15.6.md b/docs/development/release-preparation-0.15.6.md new file mode 100644 index 00000000..8cdd43fa --- /dev/null +++ b/docs/development/release-preparation-0.15.6.md @@ -0,0 +1,33 @@ +# Desktop 0.15.6 发布准备 + +日期:2026-10-01。用户授权提交当前未提交改动并继续双远端推送与发布, +如 Agent 实际受影响可升补丁版本;另明确本轮仅标准六平台,不含 LoongArch。 + +## 候选范围 + +基线 `v0.15.5` 为 `3be55348a215f4343326b1950a69529247cbae6a`, +六个新增提交截止 `9cc5dc124464a67ed93014c53cbc93f96764caa2`。 +初始未提交改动仅 `application-center.css` 一行选择器: +侧栏底部仅对第二个直接子元素文字 span 禁止伸缩,避免影响其他 span。 +已核对并纳入本轮,未包含凭据、日志或临时产物。 + +新增内容包括磨砂外观、输入/缓存会话切换渲染优化、直接图片预览、设置与笔记布局、 +本地 MCP 恢复及不确定名称退役、诊断和执行统计索引。 +双语说明和功能矩阵按实现更新,不将已有开发记录中的全量失败记为成功。 + +Agent 保持 0.15.1:相对其发布标签,daemon 与锁文件无变化。 +本地 OpenCode 的 HTTP 注册恢复属于 `OpenCodeRuntime`,远端使用 +`RuntimeAcpBackend`/`AgentImageToolMcp`,不经过这条 HTTP 注册路径。 +没有据此声称远程恢复得到同样改进,也没有新发布 Agent 包。 + +## 数据与验证 + +已读数据库迁移指南。schema 52 在事务内增加任务事件部分索引,不转换消息正文, +不执行 VACUUM;建立索引的耗时受历史规模影响,本轮未测真实大库升级。 +升级前关闭应用并备份数据库和相邻 `notes/`,降级需要完整升级前备份。 + +- 当前源码 17 个定向文件、886 项通过,包含真实 OpenCode + HTTP 网关合成服务的 + MCP 故障恢复和晚到初始化回归,数据库/统计、诊断、设置、App、图片附件和真实 + Electron 磨砂、笔记布局、工作栏设置布局。 +- `npm run typecheck`、`npm run lint` 通过;本轮新增付费模型调用 0 次。 +- 完整测试和生产构建等待精确候选 CI,不运行本地生产构建、打包或安装包探针。 diff --git a/package-lock.json b/package-lock.json index 09bd2c65..d2a5251b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "goodbuddy", - "version": "0.15.5", + "version": "0.15.6", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "goodbuddy", - "version": "0.15.5", + "version": "0.15.6", "license": "0BSD", "dependencies": { "@agentclientprotocol/sdk": "0.25.1", diff --git a/package.json b/package.json index 3bf3f19d..2507227a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "goodbuddy", - "version": "0.15.5", + "version": "0.15.6", "private": true, "description": "Secure desktop AI workspace with controlled Agent Runtimes", "desktopName": "GoodBuddy", diff --git a/resources/release-notes.json b/resources/release-notes.json index 50eb19f4..fa59e6c7 100644 --- a/resources/release-notes.json +++ b/resources/release-notes.json @@ -1,6 +1,46 @@ { "formatVersion": 1, "releases": [ + { + "version": "0.15.6", + "releasedAt": "2026-10-01", + "notes": { + "zh-CN": { + "highlights": [], + "features": [ + "**可选的透明磨砂外观**:在外观设置中开启“透明磨砂特效”,聊天内容可滚动经过顶栏背后,执行清单浮层也使用磨砂背景。默认关闭,选择会保存并在重启后恢复;效果只作用于应用内部,不透出操作系统桌面。" + ], + "fixes": [ + "**改善本地 OpenCode 工具连接恢复**:明确的暂时性 MCP 传输故障会在清理成功后最多重试一次,超时或取消后结果不确定的连接名称不再复用,避免晚到初始化覆盖新连接。鉴权、协议和未知错误不会自动重试,Prompt 与工具调用不会重放;该修正不代表远程 Agent 新增恢复能力。", + "**减少输入和切换会话时的重复处理**:输入时未变化的消息历史及任务条不再反复渲染,切换已缓存会话时复用稳定的消息回调。实时输出、滚动位置、草稿和异步附件归属保持不变,执行统计索引也减少了轮询时对事件记录的扫描。", + "**草稿和队列图片可直接放大预览**:点击图片缩略图即可打开共享查看器,无需先执行 OCR。队列附件保持只读,不再展示解析来源和设置入口;草稿仍可显式提取文字。", + "**整理设置导航与笔记间距**:设置按分组排列,持久开关统一右对齐,侧栏底部文字布局一并修正。笔记列表、详情和评论方向栏的标题对齐,文字编辑工具栏与输入区域减少多余留白,保留画布间距。", + "**补充本地 MCP 故障诊断**:反馈诊断可包含连接阶段、错误类别及关联摘要,帮助定位初始化和清理问题。诊断不记录令牌、服务地址、请求正文或原始错误内容。" + ], + "notices": [ + "首次启动升级到 schema 52,为任务事件增加执行统计索引;历史较多时建立索引可能需要更长时间。升级前请关闭应用并备份完整数据库及相邻 `notes/` 目录;旧客户端不能打开升级后的数据库,降级需恢复升级前备份。", + "本轮只更新 Desktop,Agent 保持 **0.15.1**,无需更新 Agent 包。仅提供标准六平台产物,不包含新的 LoongArch 预览。" + ] + }, + "en-US": { + "highlights": [], + "features": [ + "**Optional frosted-glass appearance**: Enable the effect in Appearance to let chat content scroll behind the header and give execution-checklist panels a frosted background. It is off by default and your choice persists across restarts; the effect is internal to the app and does not reveal the operating-system desktop." + ], + "fixes": [ + "**Improve local OpenCode tool connection recovery**: Explicit transient MCP transport failures receive at most one retry after successful cleanup, and names with uncertain timeout or cancellation outcomes are retired so late initialization cannot replace a live connection. Authentication, protocol, and unknown errors are not retried, and prompts or tool calls are not replayed; this is not a new remote Agent recovery capability.", + "**Reduce repeated work while typing and switching conversations**: Unchanged message history and task strips avoid repeated renders during typing, with stable callbacks reused across cached conversation switches. Streaming, scroll positions, drafts, and asynchronous attachment ownership remain intact, while execution-statistics indexes reduce event scans during polling.", + "**Preview draft and queued images directly**: Click an image thumbnail to open the shared viewer without running OCR first. Queued attachments remain read-only and no longer show parsing-source or settings entries; drafts retain explicit text extraction.", + "**Organize settings and tighten note spacing**: Settings navigation is grouped, persistent switches align to the right, and sidebar footer text layout is corrected. Note-list, detail, and comment-direction headers align, with excess gaps removed around text editing controls while preserving canvas spacing.", + "**Add local MCP failure diagnostics**: Feedback diagnostics can include connection phases, error categories, and correlation digests to help identify initialization and cleanup failures. They do not record tokens, service addresses, request bodies, or raw error content." + ], + "notices": [ + "First launch upgrades to schema 52 and adds task-event indexes for execution statistics; building indexes may take longer with large histories. 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.", + "This is a Desktop-only update; Agent remains **0.15.1**, with no Agent package update required. Only the six standard targets are released, with no new LoongArch preview." + ] + } + } + }, { "version": "0.15.5", "releasedAt": "2026-09-30", diff --git a/src/renderer/src/application-center.css b/src/renderer/src/application-center.css index 7f7a7618..2b1a75f9 100644 --- a/src/renderer/src/application-center.css +++ b/src/renderer/src/application-center.css @@ -212,7 +212,7 @@ justify-content: center; white-space: nowrap; } -.sidebar-footer--applications > .nav-item > span { +.sidebar-footer--applications > .nav-item > span:nth-child(2) { flex: 0 0 auto; } .sidebar-footer__divider {