From ed47e2c2a515ec5edfaa78482f20e4e51bbac5df Mon Sep 17 00:00:00 2001 From: mesalogo Date: Tue, 29 Sep 2026 22:10:20 +0800 Subject: [PATCH] chore: prepare desktop 0.15.4 and agent 0.15.1 releases Document layered Runtime and model selection, separate system-task usage, and Continue history handling. Record schema 49 backup requirements and current-source Host validation with explicit failed-provider attempts. Release note: Desktop 0.15.4 supports layered Runtime/model choices and separate system-task usage; update Desktop before Agent 0.15.1 to receive the remote Continue history fix. --- FEATURES.md | 28 ++++++++++---- FEATURES.zh-CN.md | 9 +++-- agent-runtime-lock.json | 2 +- .../development/release-preparation-0.15.4.md | 38 +++++++++++++++++++ package-lock.json | 4 +- package.json | 2 +- resources/agent-release-notes/0.15.1.md | 23 +++++++++++ resources/release-notes.json | 38 +++++++++++++++++++ 8 files changed, 129 insertions(+), 15 deletions(-) create mode 100644 docs/development/release-preparation-0.15.4.md create mode 100644 resources/agent-release-notes/0.15.1.md diff --git a/FEATURES.md b/FEATURES.md index 64876348..169d8435 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.0`, paired with the current Desktop release candidate `0.15.3`; formal + `0.15.1`, paired with the current Desktop release candidate `0.15.4`; 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 @@ -472,10 +472,14 @@ records are listed separately and do not introduce another feature status. indicators and send/stop behavior remain unchanged. Cancellation and failure retain existing replies and use a single status; cancellation is neutral, and Edit again appears only when input can be restored. -- [x] **Simplified Runtime selection**: Conversation and project menus no - longer enumerate every Runtime/model combination. Configure Runtime models - in system settings; saved fixed project selections remain usable and - explicitly display their fixed model. +- [x] **Layered Runtime and model selection**: Resolve Runtime and model per + field through conversation, project, and global defaults. The two-column + composer picker shows sources and supports overrides or restoring project + defaults; project and channel settings share the same rules. Main resolves + each request again, including queued dispatch. Deleted or incompatible + connections fall back, while missing credentials remain explicit errors. + Schema 49 migrates stored choices. Purpose-specific models remain planned; + see the [selection design](./docs/features/model-connections/runtime-selection-design.md). - [x] **Role-bound model connections**: Each role can inherit the default model or select an independent text-model connection. Invalid connections safely fall back to the default; the synthesis role always inherits the default. @@ -767,7 +771,11 @@ records are listed separately and do not introduce another feature status. model and normalizes the different OpenAI-compatible and Anthropic Messages cache-reporting semantics when showing cache hit rate. Project and conversation usage groups show collapsed totals by default and expand to Runtime/model child - rows; model grouping remains flat. Activity is grouped + rows; model grouping remains flat. A separate System tasks tab groups + background usage by source, with manual refresh and updates when usage is + recorded. Supervisor reviews, image regeneration, graph extraction, and remote + embeddings feed usage records; missing historical/provider data is not reconstructed. + Activity is grouped by conversation and collapsed by default so long histories do not fill the page. - [x] **Compact conversation tool records**: Expand individual tool records @@ -930,9 +938,15 @@ records are listed separately and do not introduce another feature status. ### Open source, builds, and releases -- The current Desktop candidate is `0.15.3`; published Agent `0.15.0` is unchanged, with +- The current candidates are Desktop `0.15.4` and Agent `0.15.1`, 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.4` introduces layered Runtime/model choices and separate + system-task usage, and reduces duplicate Runtime instructions and history. + Schema 49 migrates project/conversation choices; rollback requires the complete + pre-upgrade database and adjacent notes backup. Agent `0.15.1` requires Desktop + `0.15.4` and fixes remote Continue history wrapping without changing locked + Runtime versions. See the [0.15.4 preparation record](./docs/development/release-preparation-0.15.4.md). - Desktop `0.15.3` restores local direct-model manual compaction, retains tool authorization for the request lifetime, clarifies cancellation and sidebar/note controls, avoids redundant startup/storage work, and trims duplicated package diff --git a/FEATURES.zh-CN.md b/FEATURES.zh-CN.md index cf26f7dd..44e8c629 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.0`,配套 Desktop 候选为 `0.15.3`;详细运行边界和 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.4`;详细运行边界和 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。 @@ -69,7 +69,7 @@ - [x] **OpenCode 事件连接回收**:聊天与原生上下文压缩在结束事件迭代前关闭各自订阅,覆盖完成、失败、取消和消费方提前结束,不取消其他并行会话。 - [x] **准确的消息底部状态**:区分请求准备、等待重试、开始重试、工具活动、待回答和终态;本机 OpenCode 使用原生重试次数和计划时间,直连模型显示自身退避阶段。消息底部状态点保持静态,未接入的 Runtime 重试不编造提示,会话列表闪点及发送、停止行为不变。 - [x] **直连模型命令工作目录**:Execute 命令可通过绝对路径、相对路径或符号链接使用工作区外目录;工作区仍为默认目录和相对路径基准,Ask 保持只读。 -- [x] **简化 Runtime 选择**:会话与项目菜单不再枚举每个 Runtime 与模型的组合,Runtime 模型在系统设置中配置;已保存的项目固定模型仍可使用,并明确显示其固定模型。 +- [x] **Runtime 与模型分层选择**:按会话、项目、全局逐字段解析 Runtime 和模型。会话双栏选择器显示来源,可覆盖或恢复项目默认;项目与通道设置共用规则,Main 在每次请求及排队派发时重新解析。已删除或不兼容的连接会回退,缺少凭据仍明确报错。schema 49 迁移已保存选择,用途模型仍为规划,详见[选择设计](./docs/features/model-connections/runtime-selection-design.md)。 - [x] **角色绑定模型连接**:每个角色可继承默认模型或选择独立文本模型连接,失效连接安全回退默认模型,综合角色始终继承默认模型。 - [x] **多协议模型配置**:支持 Anthropic Messages、OpenAI Responses、OpenAI Chat Completions、OpenAI Images 和无认证本机模型;新用户默认连接为本机 Ollama 兼容地址,不预置第三方云模型服务。升级时只替换从未配置凭据且仍完全等于旧内置值的历史默认连接,用户显式保存或加密凭据的连接保持不变;已有部署仅使用兼容环境变量提供凭据时继续沿用对应的历史连接参数,通用模型环境变量仍优先。“保存并测试模型”会发送有界的真实文本或图片生成请求并校验生成结果,而不是只检查 HTTP 连通性,因此可能产生少量服务商用量费用。 - [x] **模型请求定制**:每个 LLM 连接可填写有界 JSON 自定义请求头和顶层请求体。直连与 Continue 支持两者;本地 OpenCode 和 DeepSeek Harness 只使用各自原生支持的请求头,受管 SSH OpenCode 模型网关支持两者。Runtime、协议和认证字段始终优先,这些普通连接设置不能用于保存 API Key 或其他密钥。详见[模型连接请求定制](./docs/features/model-connections/README.md)。 @@ -116,7 +116,7 @@ ### 工作管理、长期协作与工作流 -- [x] **任务、活动与成果**:集中管理任务状态、审计活动和独立成果文件;普通聊天回复只保留在会话中,不再自动复制到成果栏,已有重复聊天 Markdown 从成果列表隐藏但不物理删除。运行记录改由 Main SQLite 保存,不再受旧 Renderer 的 500 条、单详情 4,000 字符或约 2 MB 上限影响,页面按批继续显示;不再常驻旧缓存截断警告,但不会恢复此前已丢失的历史。Token 用量按 Runtime 与模型归类,并针对 OpenAI 兼容与 Anthropic Messages 的不同上报口径归一化展示缓存命中率;用量按项目或会话分组时默认收起并显示汇总,展开后显示 Runtime / 模型子行,按模型分组时保持平铺;活动按会话分组并默认收起,避免长历史占满页面。 +- [x] **任务、活动与成果**:集中管理任务状态、审计活动和独立成果文件;普通聊天回复只保留在会话中,不再自动复制到成果栏,已有重复聊天 Markdown 从成果列表隐藏但不物理删除。运行记录改由 Main SQLite 保存,不再受旧 Renderer 的 500 条、单详情 4,000 字符或约 2 MB 上限影响,页面按批继续显示;不再常驻旧缓存截断警告,但不会恢复此前已丢失的历史。Token 用量按 Runtime 与模型归类,并针对 OpenAI 兼容与 Anthropic Messages 的不同上报口径归一化展示缓存命中率;用量按项目或会话分组时默认收起并显示汇总,展开后显示 Runtime / 模型子行,按模型分组时保持平铺。独立“系统任务”页签按来源汇总后台用量,支持手动刷新和记录更新后刷新;监督回顾、图片重新生成、图谱提取和远程嵌入补充用量记录,不补算缺失的历史或供应商数据。活动按会话分组并默认收起,避免长历史占满页面。 - [x] **紧凑会话工具记录**:逐项展开工具记录即可查看和复制结果、错误及输入参数;会话与子任务进度使用简洁行,减少重复 Runtime 摘要。OpenCode、Continue、DeepSeek Harness 和直连模型可显示已有文件路径、命令或搜索摘要,并在工具完成和会话重载后保留。 - [x] **Task 与定制任务体验**:每个产品级 Task 只关联一条 Conversation,一条 Conversation 可承载多个 Task;左侧会话列表通过行首展开按钮显示带共享状态点的 Task 子项,父会话行不重复任务标签,UI 只展示到 Task,不暴露 Job/Run 层级。新建定制任务可关联当前或新 Conversation,默认 Execute 并沿用 Runtime、工具和审批边界;重复触发复用同一 Task,文本结果回写 Conversation,独立文件和图片保留为成果。普通消息与到期 Scheduled Task 共用 Conversation 级持久发送队列,同一会话一次只执行一项;当前回复期间仍可继续发送,队列按顺序续跑,并允许删除或“立即中断并插入”。Task Center 继续作为完整索引,不建设独立 Automation Center。当前计划触发支持单次、每日和每周;高级时区、Cron、事件触发与重试治理仍按 PRD 逐步实现。详见 [Task Center PRD](./docs/features/task-and-job/task-center-prd.md) 和 [Scheduled Task PRD](./docs/features/task-and-job/scheduled-task-prd.md)。 - [x] **记忆与智能心跳**:当前提供周期回顾、建议记忆、洞察、后续任务和可审计运行轨迹。 @@ -155,7 +155,8 @@ ### 开源、构建与发布 - Desktop `0.15.3` 修复本地直连手动压缩和请求有效期间的工具授权,区分取消与失败并去除重复提示,优化侧栏搜索、注册成功后的快捷键提示及笔记操作布局,减少启动和存储中的重复处理,并精简重复依赖及开发文件。不宣称整体渲染性能已显著提升;Office 实时编辑仍为设计。证据见[0.15.3 发布准备](./docs/development/release-preparation-0.15.3.md)。 -- 当前 Desktop 候选为 `0.15.3`,已发布 Agent 保持 `0.15.0`,OpenCode 固定为 `1.18.29`、Continue 为 `1.5.47`;正式发布状态以独立发布渠道为准。 +- 当前候选为 Desktop `0.15.4` 与 Agent `0.15.1`,OpenCode 固定为 `1.18.29`、Continue 为 `1.5.47`;正式发布状态以独立发布渠道为准。 +- 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)。 - Desktop `0.15.1` 承接未发布的 `0.15.0` Obsidian 接入、会话采集到魔法笔记和预览中的本地原生客户端,并修复知识库、监督者与界面操作。schema 48 新增会话来源元数据,回退旧客户端需使用升级前完整备份。Agent `0.15.0` 要求 Desktop `0.15.2`,保留 Node `24.19.0`,补齐远程遥测关闭配置及 Continue 跳过已关闭的更新检查,不新增远程客户端快捷入口。 - Desktop `0.13.15` 承接未发布的 `0.13.14`,改善监督者分页回顾与续跑、ripgrep 原生搜索、待办布局和远程结果未知后的显式续聊。数据库升级至 schema 47,回退旧客户端需使用升级前完整备份。 diff --git a/agent-runtime-lock.json b/agent-runtime-lock.json index 77d4b2da..ef9966cd 100644 --- a/agent-runtime-lock.json +++ b/agent-runtime-lock.json @@ -1,6 +1,6 @@ { "formatVersion": 1, - "agentVersion": "0.15.0", + "agentVersion": "0.15.1", "protocol": { "major": 2, "minor": 0 diff --git a/docs/development/release-preparation-0.15.4.md b/docs/development/release-preparation-0.15.4.md new file mode 100644 index 00000000..899d10ad --- /dev/null +++ b/docs/development/release-preparation-0.15.4.md @@ -0,0 +1,38 @@ +# Desktop 0.15.4 与 Agent 0.15.1 发布准备 + +日期:2026-09-29。用户确认两个补丁版本,提交并推送两个远端; +候选 CI 和生产构建成功后自动打标签发布,不构建 LoongArch。 + +## 范围与说明 + +- Desktop 已发布基线为 `v0.15.3`(`3c9229ac7a57071fc955adb1095c499ffdfd006a`)。 + 本轮源码截止 `9c88ca20f3c62ca29b9aca179dc191b460db37d8`,开始时工作区干净。 +- 三个提交包含系统任务 Token 统计、Runtime/模型分层和宣传稿归档。 + 正式功能说明以实现为准;用途模型和旧全局 provider 移除仍为规划。 +- Agent 基线为已发布 `agent-v0.15.0`。本轮 Continue helper 识别首次历史封装、 + 去除保存消息中的工作模式前缀,因此发布新 Agent 0.15.1,不覆盖旧产物。 + Node 24.19.0、OpenCode 1.18.29、Continue 1.5.47 和协议锁保持不变。 +- 正文仅维护在 Desktop 0.15.4 JSON 条目及 Agent 0.15.1 Markdown; + 已发布版本正文保留。FEATURES 中修正旧的简化选择描述,并同步用量、版本和限制。 + +## 数据与兼容 + +schema 49 在既有 SQLite 事务中迁移项目与会话选择,不引入额外恢复系统。 +已读迁移指南并核对合成 schema 48 数据迁移回归;本轮不改写用户原库。 +关闭应用后备份完整数据库及相邻 `notes/`,旧客户端不能打开升级后的库, +降级需要恢复完整升级前备份。远程先升级 Desktop 0.15.4,再更新 Agent 0.15.1。 +统计无法补算历史未记录的调用或缺失的供应商 usage。 + +## 验证 + +- `npm run typecheck`、`npm run lint`、`npm run release:notes:verify` 通过。 +- 10 个聚焦文件、221 项通过:包含数据库迁移/用量分类、选择解析、选择器、 + Activity UI、后台用量记录和 Continue helper。 +- 当前源码隔离 Agent 在共享 Linux x64 Host 验证 OpenCode 与 Continue Ask、Execute、 + 空闲进程回收及冷启动历史恢复。成功场景每个 Runtime 两次真实模型请求。 + OpenCode 原模型连接前三次尝试未完成,第三次脱敏诊断明确为上游 `ECONNRESET`; + 随后测试显式使用 Continue 已配置且成功的模型连接,未修改用户设置或产品回退规则。 + 本轮共 7 次上游请求分发尝试,4 次成功、3 次未完成;不推断失败尝试的计费情况。 + 所有探针结束时归属进程为 0,用户设置只在临时加密副本中读取,测试副本已清理。 +- 既有开发记录缺少完整 UI 目测及全仓通过结果,保留边界,不将局部通过冒充全量。 + 完整测试与生产构建交由精确提交 CI;不执行本地生产构建、打包或安装包启动。 diff --git a/package-lock.json b/package-lock.json index e6211e4b..19a6091f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "goodbuddy", - "version": "0.15.3", + "version": "0.15.4", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "goodbuddy", - "version": "0.15.3", + "version": "0.15.4", "license": "0BSD", "dependencies": { "@agentclientprotocol/sdk": "0.25.1", diff --git a/package.json b/package.json index 56b44bd1..7dea2423 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "goodbuddy", - "version": "0.15.3", + "version": "0.15.4", "private": true, "description": "Secure desktop AI workspace with controlled Agent Runtimes", "desktopName": "GoodBuddy", diff --git a/resources/agent-release-notes/0.15.1.md b/resources/agent-release-notes/0.15.1.md new file mode 100644 index 00000000..6bbb022a --- /dev/null +++ b/resources/agent-release-notes/0.15.1.md @@ -0,0 +1,23 @@ +# GoodBuddy Agent 0.15.1 更新内容 + +## 问题修复 + +- **避免 Continue 重复嵌套对话历史**:远程 Continue 识别 Desktop 在新进程首次请求中携带的历史封装,将其纳入当前会话,而不是再次作为一整段用户输入封装。后续轮次复用已保存的历史,并在保存用户消息时去除本轮工作模式前缀;Ask/Execute 的执行边界不变。 + +## 使用说明 + +- 请先升级 **GoodBuddy Desktop 0.15.4**,再下载并更新 Host 环境。已有进程不会热更新,本次不新增远程原生客户端快捷入口。 +- 提供 Linux x64、Linux arm64 和 macOS arm64 包,继续使用 Node **24.19.0**、OpenCode **1.18.29** 和 Continue **1.5.47**。 +- Agent 独立发布,不替代桌面端 Latest;保留签名验证和原有远程工作区、模型桥及取消机制。 + +# What's New in GoodBuddy Agent 0.15.1 + +## Bug Fixes + +- **Avoid nesting Continue history twice**: Remote Continue recognizes the history envelope sent by Desktop on the first request to a new process and adds it to the session rather than wrapping it again as one user input. Subsequent turns reuse the stored history, with the current work-mode prefix removed from saved user messages; Ask and Execute execution boundaries are unchanged. + +## Usage Notes + +- Upgrade to **GoodBuddy Desktop 0.15.4** before downloading and updating the Host environment. Existing processes are not hot-updated, and this release adds no remote native-client shortcuts. +- Packages cover Linux x64, Linux arm64, and macOS arm64, retaining Node **24.19.0**, OpenCode **1.18.29**, and Continue **1.5.47**. +- Agent releases remain separate and do not replace Desktop Latest; signature verification and existing remote workspace, model-bridge, and cancellation mechanisms remain in place. diff --git a/resources/release-notes.json b/resources/release-notes.json index d21059ec..7795e423 100644 --- a/resources/release-notes.json +++ b/resources/release-notes.json @@ -1,6 +1,44 @@ { "formatVersion": 1, "releases": [ + { + "version": "0.15.4", + "releasedAt": "2026-09-29", + "notes": { + "zh-CN": { + "highlights": [], + "features": [ + "**按会话、项目和全局默认选择 Runtime 与模型**:执行方式和模型分别按“会话 → 项目 → 全局”解析,可在输入框两栏菜单中单独选择,或恢复跟随项目默认,并查看实际来源。项目设置与通道入口共用选择规则,排队请求在派发时重新解析;连接删除或不兼容时按规则回退,缺少密钥时保留选择并明确报错。", + "**分开查看系统任务 Token 用量**:运行记录新增“系统任务”页签,将监督者、自动监督、魔法笔记、知识库和后台委派等用量与会话统计分开。支持按来源查看、手动刷新,并在新用量记录写入后自动刷新。" + ], + "fixes": [ + "**补齐部分后台用量记录**:监督回顾、图片重新生成、知识图谱抽取和远程向量请求现在接入对应的用量记录。统计依据实际保存的供应商用量,不能补算过去未记录的调用或供应商未返回的 Token 数据。", + "**避免 Runtime 重复携带指令与历史**:OpenCode 将受信任指令放入当前轮系统信息,复用 DeepSeek Harness 会话时不再重复注入已保留历史。Continue 识别已有历史封装并避免再次嵌套,保存用户轮次时移除工作模式前缀;远程 Continue 需要配套 Agent 更新。", + "**减少失败请求对后续 OpenCode 对话的影响**:普通 OpenCode 请求失败且尚未产生回复记录时,会尝试清理该轮未回答的输入,避免下次复用会话时再次合并。已有回复、工具记录和其他并行会话保留。" + ], + "notices": [ + "首次启动会将数据库升级到 schema 49,迁移项目与会话的 Runtime/模型选择。升级前请关闭应用并备份完整用户数据,包括数据库和相邻 `notes/` 目录;旧客户端不能打开升级后的数据库,回退需恢复升级前备份。", + "远程用户请先升级 Desktop 至 **0.15.4**,再下载并更新 Host 上的 Agent **0.15.1**。Agent 独立发布,Node、OpenCode 和 Continue 的锁定版本不变;已有进程不会热更新。" + ] + }, + "en-US": { + "highlights": [], + "features": [ + "**Choose Runtime and model through conversation, project, and global defaults**: Runtime and model resolve independently in that order, with a two-column composer menu for overrides, restoring project defaults, and viewing the actual source. Project and channel settings share the rules, and queued requests resolve again at dispatch; deleted or incompatible connections fall back according to those rules, while missing credentials retain the selection and produce an explicit error.", + "**Separate system-task Token usage**: Run history adds a System tasks tab that separates Supervisor, automatic supervision, Magic Notes, knowledge, and background delegation usage from conversation totals. Browse by source, refresh manually, or receive an automatic refresh when new usage is recorded." + ], + "fixes": [ + "**Capture additional background usage**: Supervisor reviews, image regeneration, knowledge-graph extraction, and remote embedding requests now feed their corresponding usage records. Statistics use stored provider usage and cannot reconstruct previously unrecorded calls or Token data omitted by a provider.", + "**Avoid duplicate Runtime instructions and history**: OpenCode receives trusted instructions through the current turn's system information, and reused DeepSeek Harness sessions no longer receive history they already retain. Continue recognizes existing history envelopes instead of nesting them again and removes work-mode prefixes from stored user turns; remote Continue requires the matching Agent update.", + "**Reduce carryover from failed OpenCode requests**: When a normal OpenCode request fails before producing a reply record, GoodBuddy attempts to remove its unanswered input so the next request does not merge it again. Existing replies, tool records, and other parallel conversations remain intact." + ], + "notices": [ + "First launch upgrades the database to schema 49 and migrates project and conversation Runtime/model selections. Close the app and back up complete user data, including the database and adjacent `notes/` directory, before upgrading; older clients cannot open the upgraded database, so rollback requires restoring a pre-upgrade backup.", + "Remote users should upgrade Desktop to **0.15.4** before downloading and updating Hosts to Agent **0.15.1**. Agent releases remain separate, locked Node/OpenCode/Continue versions are unchanged, and existing processes are not hot-updated." + ] + } + } + }, { "version": "0.15.3", "releasedAt": "2026-09-28",