From 5a6ba6c14f5c58f3da5e9afe281b18e0cbdb1ae8 Mon Sep 17 00:00:00 2001 From: mesalogo Date: Sun, 27 Sep 2026 23:01:02 +0800 Subject: [PATCH] release: prepare Desktop and Agent 0.15.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Align Desktop and Agent candidates at 0.15.0 and include the approved Chinese and English release notes. Document Obsidian, conversation capture, local native-client preview boundaries, and knowledge and Supervisor fixes. Desktop upgrades storage to schema 48. Agent 0.15.0 requires Desktop 0.15.0; remote telemetry opt-outs apply to newly started Runtimes. Keep the two release channels independent and exclude the experimental LoongArch build. Validation: 5317 tests passed, 79 skipped; typecheck, lint, and release-note verification passed. Current-source Linux x64 OpenCode and Continue passed Ask/Execute and telemetry-environment checks. Record preliminary probe limitations and model-call accounting in the release preparation document. Release note: Desktop 与 Agent 同步准备 0.15.0,新增 Obsidian、会话笔记采集及本地原生客户端预览,并修复知识库、监督者、界面与 Runtime 启动体验;升级前请备份完整用户数据,远程用户先升级桌面端再更新 Host。 --- FEATURES.md | 42 ++++++++-- FEATURES.zh-CN.md | 13 +++- agent-runtime-lock.json | 2 +- .../development/release-preparation-0.15.0.md | 77 +++++++++++++++++++ package-lock.json | 4 +- package.json | 2 +- resources/agent-release-notes/0.15.0.md | 25 ++++++ resources/release-notes.json | 46 +++++++++++ 8 files changed, 197 insertions(+), 14 deletions(-) create mode 100644 docs/development/release-preparation-0.15.0.md create mode 100644 resources/agent-release-notes/0.15.0.md diff --git a/FEATURES.md b/FEATURES.md index b3d9b971..ef91d455 100644 --- a/FEATURES.md +++ b/FEATURES.md @@ -324,7 +324,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.13.4`, while the current Desktop release candidate is `0.13.16`; formal + `0.15.0`, matching the current Desktop release candidate `0.15.0`; 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 @@ -393,6 +393,21 @@ records are listed separately and do not introduce another feature status. user's authorization for all tools, processes, network access, and writable paths available to the current local or SSH account, including paths outside the workspace and native subagent work. +- **Local native Runtime clients (preview)**: The composer opens Continue or + OpenCode in a workbar terminal, or the official DS Web client in the system + browser, using the current local project and model. These are independent + sessions, without imported GoodBuddy conversation history. Closing a DS page + does not stop its service; use GoodBuddy's stop action. Remote shortcuts are + not connected. Managed standard Node delivery, Continue/OpenCode Ask built-in + MCP mappings, and full cross-platform package acceptance remain incomplete; + existing Windows real-model evidence does not establish full capability parity. + See the [implementation and remaining work](./docs/features/assistant-workbar/progress.md#2026-09-27-local-native-client-validation). +- **Runtime telemetry opt-out**: Local DS Web and remote Runtime/model-bridge + launches share the telemetry opt-out environment without blocking model, MCP, + or user-requested networking. Continue skips disabled automatic-update checks. + Remote changes require a newly started Runtime from the matching Agent; + current-source Linux x64 Agent/model validation is recorded in the + [0.15.0 preparation record](./docs/development/release-preparation-0.15.0.md). - [x] **Efficient direct-model workspace tools**: Direct models use bundled ripgrep with native arguments for file discovery and content search, read large UTF-8 files by line, and apply multi-file patches in Execute. Ask searches stay @@ -612,6 +627,10 @@ records are listed separately and do not introduce another feature status. retrieval parameters are collapsed by default. Documents distinguish ready, processing, and failed states, with source opening, retry, and confirmation before source removal. + Sources and indexed documents share one searchable list: single-document + sources do not duplicate rows, while directories retain grouped documents and + failed sources retain recovery actions. Task history and secondary operations + remain reachable from the consolidated controls. - [x] **External knowledge-base connections**: Manage Dify, FastGPT, and RAGFlow instances from the Knowledge page, then discover remote knowledge bases or enter their IDs and verify bindings with provider-specific @@ -681,9 +700,10 @@ records are listed separately and do not introduce another feature status. navigation. Saved sources link back to conversations and messages; drafts survive conversation switches. Real App/preload/IPC/SQLite acceptance passed, including complete 502-message history and native keyboard use in a 214px panel, with zero - model calls. Repository validation is not all green; the - [validation record](./docs/features/magic-notes/progress.md) separates focused - passes, fixture repairs and execution-time test/typecheck failures. + model calls. The [feature validation record](./docs/features/magic-notes/progress.md) + separates focused passes, fixture repairs and earlier execution-time failures; + the [0.15.0 candidate validation](./docs/development/release-preparation-0.15.0.md) + passed the full suite, typecheck and lint. - [x] **Paged canvas notes**: The integrated PeopleLib Fabric + Quill editor combines flowing body text with pen/highlighter, object selection/transforms, floating text, images and paper templates. Editors and read-only viewers support @@ -787,6 +807,10 @@ records are listed separately and do not introduce another feature status. flow with a separate run status and correctly placed empty state. Calls remain read-only without tools and may incur model charges. See the [implementation and evidence](./docs/features/conversation-supervision/progress.md). + Manual starts, automatic triggers, and resume share one active review; + cancellation from Activity preserves saved batches and holds admission until + cleanup finishes. Cancelled reviews cannot resume. Story-graph events, entities, + and relations have separate counted tabs synchronized with canvas selection. - [ ] **Further supervision capabilities** (planned): Full event-by-event replay, Experiment targets, chronological manual-edit audits, event triggers, and broader execution observation remain incomplete. Current automatic @@ -876,9 +900,15 @@ records are listed separately and do not introduce another feature status. ### Open source, builds, and releases -- The current Desktop candidate is `0.13.16`; Agent `0.13.4` is published, with +- The current Desktop and Agent candidates are both `0.15.0`, 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.0` adds Obsidian integration, conversation capture into Magic + Notes, and preview local native clients, plus knowledge, Supervisor, and UI + fixes. Schema 48 adds conversation-source metadata; older clients require a + complete pre-upgrade backup for rollback. Agent `0.15.0` requires Desktop + `0.15.0`, retains Node `24.19.0`, and updates remote telemetry opt-out and + disabled Continue update-check behavior without adding remote client shortcuts. - Desktop `0.13.15` carries forward the unpublished `0.13.14` changes to paged Supervisor reviews and resume behavior, native ripgrep searches, to-do layouts, and explicit remote follow-up after an uncertain result. Database schema 47 requires a complete pre-upgrade backup @@ -900,7 +930,7 @@ records are listed separately and do not introduce another feature status. packaging, and publication verification remain separate acceptance steps. No local production build, packaging, or LoongArch preview is requested. Current validation status is recorded in the - [release preparation record](./docs/development/release-preparation-0.13.16.md). + [release preparation record](./docs/development/release-preparation-0.15.0.md). - Desktop `0.13.12` and Agent `0.13.3` have completed their native release jobs; this does not replace development-time real-Host scenario coverage. - Validation records remain separate from implementation status. Current-source diff --git a/FEATURES.zh-CN.md b/FEATURES.zh-CN.md index 28a826b4..44012d1a 100644 --- a/FEATURES.zh-CN.md +++ b/FEATURES.zh-CN.md @@ -50,7 +50,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.13.4` 已发布,当前 Desktop 候选为 `0.13.16`;详细运行边界和 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 源码锁与 Desktop 候选均为 `0.15.0`;详细运行边界和 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。 @@ -58,6 +58,8 @@ - [x] **DeepSeek Harness(预览)**:使用 GoodBuddy 固定 Host 和 OpenAI 兼容模型连接;优先使用管理员提供的连接,否则跟随兼容的默认模型或首个兼容连接,无需单独重复选择,设置页显示实际管理员或回退模型来源。Ask 只允许调用 Host 中真实注册的 `read`、`skill` 以及 Main 管理的 Web Search/Fetch 代理,拒绝插件同名冒充,Execute 放行全部已启用内置及插件工具,并以当前用户权限运行。图像输入跟随所选模型连接的能力声明,文本模型在 Host 或模型调用前拒绝图片,图片模型通过有界内联内容和临时 Attachment Store 接收 JPEG/PNG。Windows Host 启动和 ACP 会话共用规范工作区路径,同目录不同写法可复用正常 Runtime,不再因路径不一致而创建会话失败。 - [x] **DSH npm 插件市场**:市场默认关闭,由用户显式开启后搜索公共 npm 的 `dsh-plugin` 包,使用捆绑 npm 执行精确版本安装和普通 lifecycle scripts,并支持启停、JSON 配置、移除、失败启动自动停用和离线管理已安装插件;关闭市场只隐藏目录与管理界面,不改变已有插件的启停状态,第三方代码不受 Ask 初始化隔离。 - [x] **Ask 与 Execute 工作模式**:Ask 保持只读;Execute 是用户对当前本机或 SSH 账号可用工具、进程、网络和可写路径的完整授权,包括工作区外路径及原生子代理工作。 +- **本地 Runtime 原生客户端(预览)**:输入区可按当前本地项目与模型,在工作栏终端打开 Continue/OpenCode,或在系统浏览器打开官方 DS Web。客户端使用独立会话,不导入 GoodBuddy 对话历史;关闭 DS 网页不停止服务,可在 GoodBuddy 中停止。远程快捷入口未接通,托管标准 Node 交付、Continue/OpenCode Ask 内置 MCP 映射和完整跨平台安装包验收仍有缺口;Windows 真实模型证据不代表全部会话能力等价,详见[实现与剩余工作](./docs/features/assistant-workbar/progress.md#2026-09-27-local-native-client-validation)。 +- **Runtime 遥测关闭配置**:本地 DS Web、远程 Runtime 和模型桥启动共用遥测关闭环境,不限制模型、MCP 或用户主动联网。Continue 在自动更新关闭时跳过检查;远程改动随配套 Agent 新启动的 Runtime 生效,当前源码 Linux x64 Agent/model 验证见 [0.15.0 发布准备](./docs/development/release-preparation-0.15.0.md)。 - [x] **Runtime 原生交互转交**:OpenCode 与 Continue 的选择、yes/no、自由文本回答和跳过使用现有问答卡片,本机与托管 SSH OpenCode 同时转交属于当前请求的子会话提问。托管 SSH OpenCode 问答需要 Desktop `0.13.0`、Agent `0.11.24` 和新启动的托管 Runtime,不扩展到任意 ACP 服务。回答或跳过成功后在原位置保留问题与答案,支持多轮记录和本地会话重载;旧版本已丢弃的答案不能恢复。并行问题按顺序等待回答,重复事件保留草稿,提交失败可重试;取消远程待答后可在同一会话继续发送。Execute 权限确认自动处理,不等待第二次审批;具体支持范围见[交互边界](./docs/features/assistant-workbar/runtime-interactions.md)。 - [x] **原生执行清单**:OpenCode 和 Continue 在对话顶部更新只读执行清单,进度随会话保存。显式清空和远程重放保留请求归属,取消不把未完成条目标成完成;远程交付需要配套 Agent,详见[清单契约](./docs/features/assistant-workbar/runtime-checklist-technical-design.md)。 - [x] **专家与 Subagent**:支持显式专家、团队分析和最多三个专家并行分析。专家继承父请求 Ask/Execute 模式,可使用已启用的本机直连模型工具,Ask 仍只读;这些工具不是远程 OpenCode 子会话。聊天先展示可逐项展开的专家完整输出,再在其下展示总 Agent 的综合结果,并随会话保存。 @@ -88,6 +90,7 @@ - [x] **MCP Tools**:显式启用的自定义 MCP 可按 Runtime 分配给直连模型、GoodBuddy 管理的 OpenCode、Continue Agent Execute 和 DeepSeek Harness,并仅在 Execute 加载;Agent 子进程只获得按请求签发的本机回环权限,MCP 地址、命令和凭据保留在 Main,动态工具仍经过发现、执行记录与权限边界。直连模型与 Harness 的健康调用复用当前请求已发现的工具清单,不在每次调用前重复发现。 - [x] **MCP Prompts 与 Resources 元数据**:MCP 测试仅在 Server 声明对应能力时发现有界的 Prompt、参数与 Resource 元数据,不读取 Resource 内容;Runtime 支持的 Prompt 可填入聊天草稿后继续编辑。OpenCode 可报告实验性 Resource 清单,Continue 当前版本明确不支持 Resources。 - [x] **本地知识库**:支持文件、目录和网页导入、SQLite FTS5 检索及来源追溯。知识范围按对话保存,新对话默认不选择知识库;创建与检索高级参数默认折叠。文档区分可用、处理中和失败,支持打开来源、失败重试及移除来源前确认。 + 内容来源与文档索引共用可搜索列表,单文档来源不重复占行,目录保留分组文档,失败来源保留恢复操作;任务历史和次级操作从统一入口访问。 - [x] **外部知识库接入**:在知识库页面管理 Dify、FastGPT 和 RAGFlow 实例,通过目录或手工 ID 验证并绑定远端知识库,保留 Provider 专属检索配置和引用;对话支持按需检索及每次回答前检索。外部系统只负责知识检索,不接入其 App、Chat、Workflow 或 Agent,也不批量同步、本地索引或修改远端内容。被回答引用的有界检索片段随会话保存在本机。详见[外部知识库接入 PRD](./docs/features/knowledge-base/external-knowledge-prd.md)。 - **外部知识库验证记录**:三家 Provider 已通过真实服务、本机 HTTP MCP 和生产 IPC 短答案检查,Dify 另通过完整 App 输入区到回答及引用的链路。现有记录未覆盖 FastGPT/RAGFlow 桌面专属参数、复杂多库问答和远程回答前检索,详见[验证记录](./docs/features/knowledge-base/progress.md)。 - [x] **知识图谱**:支持规则、模型和混合抽取,以及实体、关系、别名和证据维护。 @@ -99,7 +102,7 @@ - [x] **受控知识本体**:每个知识库可定义实体、关系、别名和端点约束,保留证据偏移、置信度和抽取来源,并显式提示图谱重建。 - [x] **强制检索与引用上下文**:对话可按需或每次先检索,显示零结果、降级、失败与取消状态,并可查看引用上下文或安全打开来源。 - [x] **魔法笔记 / Magic Notes**:提供本地优先的笔记与待办工作台、范围管理、编辑、筛选和受控 AI 评论。笔记从自适应卡片总览打开;独立待办页提供搜索、状态筛选、分组列表和直接勾选,宽屏列表稳定在左侧,任务说明、来源记录及 AI 评论在右侧同一区域显示,窄屏按需显示详情并提供返回列表。紧凑页签放在页头新建按钮左侧,筛选放在搜索右侧。打开原笔记再返回可恢复任务上下文;切换任务不会混入上一项的来源内容,读取失败使用应用通知并提供就地重试,来源缺失有明确提示。左侧入口可按设置显示未完成待办数量,创建、保存和评论结果使用统一应用通知。Agent / MCP 写入后,已打开的工作台自动更新,并保留当前选择与未保存草稿。 -- **会话采集与快速笔记**(已实现,真实 Electron 验收通过):单条助手回答或完整会话正文可先预览、编辑,再追加到已有笔记或连同首条记录创建新笔记。右侧笔记 Tab 支持标题与正文搜索、快速追加及打开完整工作区,记录来源可返回会话和消息;切换会话保留草稿。真实 App/preload/IPC/SQLite 验收覆盖完整 502 条历史及 214px 面板原生键盘操作,模型调用为 0。全仓验证未全绿,[验证进度](./docs/features/magic-notes/progress.md)分别记录聚焦通过、fixture 修复与执行时的测试和类型检查失败。 +- **会话采集与快速笔记**(已实现,真实 Electron 验收通过):单条助手回答或完整会话正文可先预览、编辑,再追加到已有笔记或连同首条记录创建新笔记。右侧笔记 Tab 支持标题与正文搜索、快速追加及打开完整工作区,记录来源可返回会话和消息;切换会话保留草稿。真实 App/preload/IPC/SQLite 验收覆盖完整 502 条历史及 214px 面板原生键盘操作,模型调用为 0。[功能验证进度](./docs/features/magic-notes/progress.md)保留聚焦通过、fixture 修复与当时的测试和类型检查失败;[0.15.0 候选验证](./docs/development/release-preparation-0.15.0.md)已通过全量测试、类型检查和 lint。 - 待办宽屏列表与详情之间可拖动分隔条并记住宽度;来源笔记分组可独立折叠,不清除当前选中任务的详情。 - [x] **连续记录工作区**:笔记详情连续展示全部记录,左侧索引默认 168px,可拖动右边界或用键盘在 140–320px 内调宽,并记住偏好;索引与右侧 AI 评论独立收起。每条画布记录显示真实首页缩略图、页数和时间,文字记录显示摘要;点击索引只滚动定位,保留当前编辑器和草稿。打开笔记就在标题下方显示空白输入区,保留文字/画布选择和保存操作;新增保存后清空,供下一条记录使用,旧记录通过编辑入口修改。空白输入区和保存后未再修改的记录返回时不提示;保存失败和真实修改仍受保护。窄屏索引使用固定宽度折叠抽屉,不显示调宽分隔条,AI 评论移至底部。 - [x] **分页画布笔记**:已集成 PeopleLib Fabric + Quill 编辑器,支持跨页正文、笔迹、高亮、对象选择及变换、浮动文字、图片和纸张模板。PDF 可作为分页底版导入并提取原生文字;正文和批注可导出为栅格 PDF,导出文件不保留可搜索文字层。用户手动保存后,记录正文与二进制资源存入本地笔记文件,SQLite 保留元数据、索引、修订、待办和评论。备份须协调保存 SQLite 与笔记目录,产品无一键备份入口。撤销/重做限当前批注页或 Quill 模式,不提供全局文档撤销、无限画布或 PNG 下载按钮。草稿、已保存记录和来源为画布的待办按默认模型图像输入能力使用页面图像加文字,或明确标注仅文字降级;“发送画布页数”可选 1~8,默认 1,按当前顺序发送前 N 页,文字和图片范围一致,保存与导出仍支持 50 页。纯视觉记录/草稿需要支持图像输入的模型。即时评论模式提供手动画布分析,保存后自动分析失败不阻断或回滚保存。提取文字不变时保留文字评论;布局变化使视觉评论失效,并在保存后自动评论模式下重新分析。MCP 禁止以纯文字覆写画布记录。实现已完成,最终验证状态见[功能进展](./docs/features/magic-notes/progress.md)。 @@ -118,6 +121,7 @@ 任务中心通过状态数量和筛选定位运行中及待处理任务,审批操作保留在对应任务卡片中。 - [x] **自动监督设置与范围**:“监督者 > 自动监督”统一管理计划、自动监督报告和建议,支持创建和编辑 Global 或指定一个、多个 Project 的每日、每周计划;工作回顾阅读带日期的统一监督结果及历史。旧单项目配置无损迁移,项目级记忆与行动输出必须显式指定范围内的 Project。Task Center 和设置中心不再复制心跳表单;按分区回顾、候选生成和唤起条件仍待设计。详见 [智能心跳 PRD](./docs/features/smart-heartbeat/prd.md)。 - [x] **监督者回顾、故事线图谱与活动**:按范围和时间回顾工作,查看保存结果的图谱及来源,确认或修订实体,预览写入本地知识库实体。侧栏可跟随或固定 Conversation、Task,并打开匹配结果。活动合并心跳报告与下游监督的阶段状态,保留失败和旧结果入口。自动阶段只处理新增、修改及未处理的来源片段,无变化时跳过模型;手动回顾重新整理有界历史。回顾只读且禁止工具,模型调用可能产生费用,详见[实施与验证记录](./docs/features/conversation-supervision/progress.md)。 + 手动开始、自动触发和继续共用一个活动回顾;活动记录可取消并保留已保存批次,清理结束前不接纳新回顾,已取消回顾不可继续。故事线事件、实体和关系按独立页签展示数量,并与画布选择同步。 - 手动回顾分页处理所选历史,并按批保存事实与来源;不再按固定时长自动暂停,仍支持主动暂停和从保存进度继续。设置提供并发、单次请求超时、批次大小和响应容量;活动记录突出相连阶段、已保存批次与剩余来源,次要统计可展开查看。工作回顾采用全宽纵向布局,运行状态单独显示,空态不再挤在控件旁。 - [ ] **监督后续能力**(规划中):逐事件完整回放、Experiment 目标、人工修改时间序列审计、事件触发及更完整的执行观察仍未完成。当前自动回顾受输入预算和滚动窗口限制,删除报告不会重置处理进度或重建图谱。详见 [会话监督 PRD](./docs/features/conversation-supervision/prd.md)。 - [ ] **批量运行与对比实验室**(规划中):对模型、Prompt、角色和工作流配置执行批量对比,汇总质量、耗时、Token、费用、失败率和成果差异。 @@ -145,12 +149,13 @@ ### 开源、构建与发布 -- 当前 Desktop 候选为 `0.13.16`,Agent `0.13.4` 已发布,OpenCode 固定为 `1.18.29`、Continue 为 `1.5.47`;正式发布状态以独立发布渠道为准。 +- 当前 Desktop 与 Agent 候选均为 `0.15.0`,OpenCode 固定为 `1.18.29`、Continue 为 `1.5.47`;正式发布状态以独立发布渠道为准。 +- Desktop `0.15.0` 新增 Obsidian 接入、会话采集到魔法笔记和预览中的本地原生客户端,并修复知识库、监督者与界面操作。schema 48 新增会话来源元数据,回退旧客户端需使用升级前完整备份。Agent `0.15.0` 要求 Desktop `0.15.0`,保留 Node `24.19.0`,补齐远程遥测关闭配置及 Continue 跳过已关闭的更新检查,不新增远程客户端快捷入口。 - Desktop `0.13.15` 承接未发布的 `0.13.14`,改善监督者分页回顾与续跑、ripgrep 原生搜索、待办布局和远程结果未知后的显式续聊。数据库升级至 schema 47,回退旧客户端需使用升级前完整备份。 - Desktop `0.13.16` 分离结构升级与旧历史回收,移除回顾固定时长自动暂停,并改善监督者布局。相较 `0.13.15` 不新增 schema 变更,也不要求更新 Agent。 - Agent `0.13.3` 回收空闲 Runtime,并使被替换的 Agent 等已有工作结束后退出;复合包要求 Desktop `0.13.12`,请先升级 Desktop,再更新 Host 环境。Node 保持 `24.19.0`。 - Agent `0.13.4` 在完成前等待模型交付确认,空闲 Runtime 回收失败不改变已完成结果,并在环境更新后清理已确认停用的旧程序及所属孤儿进程;保留历史、活动及状态不明的安装。独立包要求 Desktop `0.13.14` 或更新版本;因 `0.13.14` 未发布,请先升级至 Desktop `0.13.15`,再更新 Host。 -- 发布准备要求全量测试、发布说明校验、类型检查及 lint;候选主分支 CI、生产构建、原生打包及公开发布核验为独立验收步骤。本轮不做本地生产构建、打包或龙芯预览,当前验证状态见[发布准备记录](./docs/development/release-preparation-0.13.16.md)。 +- 发布准备要求全量测试、发布说明校验、类型检查及 lint;候选主分支 CI、生产构建、原生打包及公开发布核验为独立验收步骤。本轮不做本地生产构建、打包或龙芯预览,当前验证状态见[发布准备记录](./docs/development/release-preparation-0.15.0.md)。 - Desktop `0.13.12` 和 Agent `0.13.3` 已完成原生发布流程,但不替代开发期真实 Host 场景覆盖。 - 验证记录与功能状态分开。存储已有本地及 Linux x64 Host 真实工具任务、多项目多会话、取消和无损迁移验证;进程复用有 Windows 完整 App 与 Linux x64 Host 证据,PPTX OCR 与空闲内存释放有 Windows 真实文件证据。图片工具已有真实服务商生成/编辑及 Host 传输证据,这些记录未覆盖完整界面自然语言调用和本地/远程切换。候选仍需主分支 CI 及原生发布打包,详见[Runtime 验证记录](./docs/features/assistant-workbar/progress.md)与[图片工具验证记录](./docs/features/conversation-media-generation/progress.md)。 - 发布准备前,`9836a4c` 已通过本地 4,858 项测试(67 项跳过)、完整类型检查和 lint;真实服务商画布分析仍未验证。该提交的三个原生 Agent CI 构建通过;桌面 CI `35485936807` 为 4,875 项通过、8 项 Electron 测试失败,均因 Linux 沙箱辅助程序未配置,在页面断言前退出。候选配置该程序并在 Xvfb 下运行测试,不关闭沙箱;候选本地验证、主分支 CI 与原生标签打包分别记录,不在发布准备中运行本地生产构建或打包。 diff --git a/agent-runtime-lock.json b/agent-runtime-lock.json index 8ddadcc8..77d4b2da 100644 --- a/agent-runtime-lock.json +++ b/agent-runtime-lock.json @@ -1,6 +1,6 @@ { "formatVersion": 1, - "agentVersion": "0.13.4", + "agentVersion": "0.15.0", "protocol": { "major": 2, "minor": 0 diff --git a/docs/development/release-preparation-0.15.0.md b/docs/development/release-preparation-0.15.0.md new file mode 100644 index 00000000..ecba8917 --- /dev/null +++ b/docs/development/release-preparation-0.15.0.md @@ -0,0 +1,77 @@ +# Desktop 与 Agent 0.15.0 发布准备 + +日期:2026-09-27。候选验证通过,不代表已发布。 + +## 范围与批准 + +- 用户要求 Desktop 与 GoodBuddy Agent 同步升级至 `0.15.0`,明确不构建 LoongArch。 +- 源码基线:`0f8bf405db7ca21a85cc70009ad083eb837e1e03`。 +- Desktop 差异基线为已发布的 `v0.13.16`,Agent 为 `agent-v0.13.4`。 +- 准备两个独立标签 `v0.15.0` 与 `agent-v0.15.0`;尚未创建或推送。 +- 用户已批准两份完整双语说明,正式正文仅维护在 + [Desktop 发布资源](../../resources/release-notes.json) 的 `0.15.0` 条目与 + [Agent 发布资源](../../resources/agent-release-notes/0.15.0.md)。 + 已逐条核对写入文本与批准草案一致,本记录不再复制正文。 +- `FEATURES.md` 与 `FEATURES.zh-CN.md` 已核对本轮能力、限制和候选版本。 +- 用户要求两张未跟踪宣传截图保留原位、不提交,打标签前另行处理; + 不移动、删除、暂存或更改忽略规则。 + +## 本地验证 + +- `npm run typecheck`:通过。 +- `npm run lint`:通过。 +- `npm run release:notes:verify`:通过。 +- 发布说明相关三个文件定向测试:16 项通过。 +- 首轮 `npm test`:5,313 通过、79 跳过、4 失败,耗时 697.61 秒。 + 三项失败来自当时尚未批准写入的 0.15.0 Desktop/Agent 发布说明; + 另一项为 `magic-notes-layout.electron.test.ts` 的布尔断言。 + 该布局用例单独复验 1 项通过,未修改源码或放宽断言。 + 单独通过不替代全量结果。 +- 正式说明写入后的最终 `npm test`:**5,317 通过、79 跳过、0 失败**, + 453 个测试文件通过、11 个跳过,耗时 645.49 秒。随后再次执行完整 + `npm run typecheck` 与 `npm run lint`,均通过。 +- 最终验证期间出现并行宣传文档编辑及新增 `storygraph.png`,均不属于本次 + 发布准备改动,不暂存或覆盖。打标签前仍须处理工作区洁净条件。 +- 修改文档的相对文件链接、版本一致性和 `git diff --check` 通过。 +- 不运行本地生产构建、打包或安装包启动。准确候选提交须经用户批准, + 然后双远端推送、主分支 CI、生产构建、原生发布与公开核验分别进行。 + +## Agent 当前源码实机验证 + +共享 Linux x64 Host 的 LAN/VPN SSH 端口均可达,实际通过 LAN 与既有固定 +Host Key、加密凭据连接。重新捆绑当前源码的 Agent CLI、daemon、model bridge +与 Desktop 适配器,仅上传独立 `/root/tmp/gb-lifecycle-*` 测试目录,复用已安装且 +版本锁未变的 Node/OpenCode/Continue,不替换原安装,不构建正式包。 + +最终 OpenCode、Continue 各通过一次 Ask 和一次 Execute,无工具请求, +验证回答、后续历史、空闲 Runtime 回收及测试停止后所属进程为 0。 +模型请求时读取所属进程的固定遥测字段,确认 `DO_NOT_TRACK=1`、 +`OTEL_SDK_DISABLED=true` 及三个 exporter 均为 `none`,不输出整个环境。 +这些结果补齐 `eb53c82` 的 Agent/model bridge 真实链路验证, +但不证明后台没有其他网络流量,也不替代三目标正式包验收。 + +首轮 Continue 探针沿用了 OpenCode 原生历史持久化假设,未像 Desktop 一样传入 +`request.history`,第二轮历史断言失败;当前 Continue 冷启动源码明确要求传入 +保存历史。修正测试输入及会话 ID 断言后通过,未修改产品实现。 + +有完整计数的实机运行共 **8 次**真实模型 HTTP 请求:首次 OpenCode 2 次、 +首次 Continue 2 次、最终 Continue 2 次、最终 OpenCode 2 次。 +此前一次直接启动 Electron 的探针未捕获子进程输出,不能确认是否实际发出请求, +该次上限 2 次,不纳入通过证据;因此不能把 8 次写成本轮精确总数,总量为 8–10 次。 +后续均使用等待退出并记录脱敏输出的启动器;本轮探针 Electron 进程已退出。 +本地诊断证据在临时 `opencode/release-015-host/`,不提交脚本、日志或凭据。 + +## 数据、兼容与验收边界 + +Desktop schema 48 新增魔法笔记会话来源元数据。升级前应备份完整用户数据, +包括数据库及相邻 `notes/` 目录;旧客户端不能打开升级后的数据库。 +本次发布准备不修改数据库迁移实现,也不直接改写用户数据库。 + +Agent 发布工作流以候选 `package.json` 设置最低 Desktop 版本,因此 +Agent 0.15.0 包要求 Desktop 0.15.0;Node、OpenCode、Continue 锁不变。 +Agent 与 Desktop 独立发布,Agent 不替代 Desktop Latest。 + +原生客户端的远程 coordinator、托管标准 Node 交付整合、Continue/OpenCode +Ask 内置 MCP 映射及完整跨平台安装包验收仍有缺口,见 +[原生客户端进度](../features/assistant-workbar/progress.md#2026-09-27-local-native-client-validation)。 +本次说明明确标为本地预览,不将这些未完成部分宣称为已提供能力。 diff --git a/package-lock.json b/package-lock.json index 162f8cd9..ef4307a1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "goodbuddy", - "version": "0.13.16", + "version": "0.15.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "goodbuddy", - "version": "0.13.16", + "version": "0.15.0", "license": "0BSD", "dependencies": { "@agentclientprotocol/sdk": "0.25.1", diff --git a/package.json b/package.json index d2dad8ae..5b8ae58e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "goodbuddy", - "version": "0.13.16", + "version": "0.15.0", "private": true, "description": "Secure desktop AI workspace with controlled Agent Runtimes", "desktopName": "GoodBuddy", diff --git a/resources/agent-release-notes/0.15.0.md b/resources/agent-release-notes/0.15.0.md new file mode 100644 index 00000000..0c82dd0b --- /dev/null +++ b/resources/agent-release-notes/0.15.0.md @@ -0,0 +1,25 @@ +# GoodBuddy Agent 0.15.0 更新内容 + +## 问题修复 + +- **远程 Runtime 遵循遥测关闭设置**:通过更新后的 Host 环境启动 OpenCode 或 Continue 时,Agent 与模型桥统一传入遥测关闭配置。保留模型、MCP 和用户主动联网能力,不把关闭遥测变成禁止正常联网。 +- **Continue 不再重复检查更新**:远程 Continue 使用的共享适配器在自动更新关闭时跳过更新检查。正常模型请求和执行能力不受影响,该修改随新启动的 Runtime 生效。 + +## 使用说明 + +- 请先升级 **GoodBuddy Desktop 0.15.0**,再下载并更新 Host 环境。此版本不提供远程原生客户端快捷入口,已有进程不会热更新。 +- 提供 Linux x64、Linux arm64 和 macOS arm64 包,继续使用 Node **24.19.0**、OpenCode **1.18.29** 和 Continue **1.5.47**。 +- Ask 保持只读,Execute 使用所选 SSH 账号的权限。Agent 独立发布,不替代桌面端 Latest。 + +# What's New in GoodBuddy Agent 0.15.0 + +## Bug Fixes + +- **Remote Runtimes respect telemetry opt-out**: OpenCode and Continue launched through the updated Host environment receive consistent telemetry opt-out settings from the Agent and model bridge. Model, MCP, and user-requested networking remain available rather than being blocked alongside telemetry. +- **Continue skips disabled update checks**: The shared adapter used by remote Continue skips update checks when automatic updates are disabled. Normal model requests and execution remain available, and the change takes effect for newly started Runtimes. + +## Usage Notes + +- Upgrade to **GoodBuddy Desktop 0.15.0** before downloading and updating the Host environment. This release does not provide remote native-client shortcuts, and existing processes are not hot-updated. +- Packages cover Linux x64, Linux arm64, and macOS arm64, retaining Node **24.19.0**, OpenCode **1.18.29**, and Continue **1.5.47**. +- Ask stays read-only and Execute uses the selected SSH account's permissions. Agent releases remain separate and do not replace Desktop Latest. diff --git a/resources/release-notes.json b/resources/release-notes.json index ff9996a3..6ed7e0e9 100644 --- a/resources/release-notes.json +++ b/resources/release-notes.json @@ -1,6 +1,52 @@ { "formatVersion": 1, "releases": [ + { + "version": "0.15.0", + "releasedAt": "2026-09-27", + "notes": { + "zh-CN": { + "highlights": [], + "features": [ + "**连接本地 Obsidian 仓库**:在 MCP 设置中测试并启用全部已注册仓库或指定文件夹,即可在受支持的本地对话中搜索、阅读笔记,并在 Execute 中写回结果,无需安装 Obsidian 插件。默认关闭,支持直连模型及 GoodBuddy 管理的本地 OpenCode、Continue,暂不支持 DeepSeek Harness 和远程执行。", + "**把对话保存到魔法笔记**:单条 AI 回答或完整会话可先预览、编辑,再追加到已有笔记或创建新笔记,保存后可返回来源会话。右侧工作栏新增笔记入口,支持搜索与快速追加,切换会话时保留未提交草稿。", + "**从输入区打开本地 Runtime 客户端(预览)**:本地项目选择 Continue 或 OpenCode 后可打开工作栏原生终端,选择 DS 后可在系统浏览器打开官方 Web 客户端,使用当前项目和模型。客户端是独立会话,不复制 GoodBuddy 聊天历史;DS 网页关闭后服务仍运行,可在 GoodBuddy 中停止,远程快捷入口尚不支持。" + ], + "fixes": [ + "**知识库列表与操作更清楚**:内容来源和文档索引合并展示,单文档来源不再重复占行,目录分组、失败来源和统一搜索仍可使用。整理重新处理、移除与任务历史入口,减少重复菜单和不明确的操作。", + "**监督回顾避免重复运行**:手动开始、自动触发和继续回顾共用运行状态,已有回顾执行时会定位当前任务,不再叠加新回顾。可从活动记录取消,已保存批次保留;故事线事件、实体和关系改为独立页签浏览。", + "**修复弹窗与窄窗口操作**:恢复删除确认按钮的可见样式,修正弹层遮挡、控件状态及窄布局滚动。助手工作栏的添加按钮不再被滚动箭头覆盖,设置和知识库中的操作保持可达。", + "**本地 Runtime 启动更可靠**:修复便携包缺少 DS Web 入口及依赖导致无法打开浏览器的问题。Continue 关闭自动更新后不再停留在更新检查提示,DS 输入区保留停止服务操作而不再常驻重复说明。", + "**补齐 Runtime 遥测关闭设置**:DS Web 与配套 Agent 的远程 Runtime 启动统一应用遥测关闭配置。模型、MCP 和用户主动联网请求保持可用,已有自动更新关闭设置不变。" + ], + "notices": [ + "首次启动会将数据库升级至 schema 48。升级前请备份完整用户数据,包括数据库及相邻 `notes/` 目录;旧客户端不能打开升级后的数据库,回退需使用升级前备份。", + "远程用户请先升级 Desktop 至 **0.15.0**,再下载并更新 Host 上的 Agent **0.15.0**。已有进程不会热更新,Agent 独立发布,不替代桌面端 Latest。", + "原生客户端仍为预览,其 Skills/MCP 与 GoodBuddy 会话能力并非完全等价;Continue 和 DS Web 首次启动可能需要准备标准 Node 环境。真实模型请求可能产生费用,其他平台与安装包验收以本次发布流程结果为准。" + ] + }, + "en-US": { + "highlights": [], + "features": [ + "**Connect local Obsidian vaults**: Test and enable all registered vaults or a selected folder in MCP settings to search and read notes in supported local conversations, and write results back in Execute, without an Obsidian plugin. Disabled by default, this supports direct models and GoodBuddy-managed local OpenCode and Continue, but not DeepSeek Harness or remote execution.", + "**Save conversations to Magic Notes**: Preview and edit an AI response or a complete conversation before appending it to an existing note or creating a new one, with links back to the source conversation. The new Notes workbar entry supports search and quick appends while preserving unsent drafts across conversation switches.", + "**Open local Runtime clients from the composer (preview)**: In a local project, open a native workbar terminal for Continue or OpenCode, or the official DS Web client in your system browser, using the current project and model. These are independent sessions without copied GoodBuddy chat history; closing the DS page leaves its service running until stopped in GoodBuddy, and remote shortcuts are not supported yet." + ], + "fixes": [ + "**Clearer knowledge lists and actions**: Sources and indexed documents now share one list, without duplicate rows for single-document sources, while retaining directory groups, failed sources, and unified search. Reprocessing, removal, and task-history actions are organized to reduce duplicate menus and ambiguous operations.", + "**Avoid overlapping Supervisor reviews**: Manual starts, automatic triggers, and resumed reviews share the active-run state, directing you to existing work instead of starting an overlapping review. Cancel from Activity while retaining saved batches, and browse story-graph events, entities, and relations in separate tabs.", + "**Usable dialogs and narrow layouts**: Restores visible destructive-confirmation buttons and fixes overlay occlusion, control states, and scrolling in narrow layouts. Workbar scroll arrows no longer cover the add button, and settings and knowledge actions remain reachable.", + "**More reliable local Runtime startup**: Fixes missing DS Web entry files and dependencies in portable packages that prevented browser launch. Continue no longer remains on an update-check message when automatic updates are disabled, and the DS composer keeps its stop action without persistent duplicate help text.", + "**Consistent Runtime telemetry opt-out**: DS Web and remote Runtimes in the matching Agent apply the shared telemetry opt-out settings at startup. Model, MCP, and user-requested network access remain available, and existing automatic-update opt-outs are unchanged." + ], + "notices": [ + "First launch upgrades the database to schema 48. Back up complete user data, including the database and adjacent `notes/` directory, before upgrading; older clients cannot open the upgraded database, so rollback requires a pre-upgrade backup.", + "Remote users should upgrade Desktop to **0.15.0** before downloading and updating Hosts to Agent **0.15.0**. Existing processes are not hot-updated, and the independent Agent release does not replace Desktop Latest.", + "Native clients remain a preview and do not offer full parity with GoodBuddy conversation Skills/MCP capabilities; Continue and DS Web may need to prepare a standard Node environment on first launch. Real model requests may incur charges, and other-platform and packaged-app acceptance depend on this release's validation results." + ] + } + } + }, { "version": "0.13.16", "releasedAt": "2026-09-26",