chore: prepare Desktop 0.13.0 and Agent 0.11.24 releases

Record the approved bilingual release notes against Desktop v0.12.12 and
Agent agent-v0.11.23, rather than listing intermediate development fixes.
Desktop adds external knowledge connections and cross-project activity;
remote native questions remain classified as fixes in both release notes.

Align both feature lists, compatibility guidance and validation evidence.
Upgrade Desktop to 0.13.0 before Agent 0.11.24. Keep OpenCode at 1.18.29,
retain existing published notes, and exclude the LoongArch preview.

Allow fixes-only Agent notes while checking bilingual section consistency.
Validation: 4089 tests passed with 66 skipped; release-note verification,
typecheck, lint and documentation link checks passed. Full remote-provider
acceptance and candidate CI/native release validation remain outstanding.
No release tags or publication are part of this commit.
This commit is contained in:
mesalogo
2026-09-13 17:29:37 +08:00
parent 59a1624396
commit 517ff057f9
11 changed files with 204 additions and 33 deletions
+53 -13
View File
@@ -21,7 +21,7 @@ otherwise.
packages target compatible x64 and arm64 environments, including UOS, Kylin,
Hygon, Zhaoxin, Kunpeng, and Phytium systems. This is not vendor certification.
LoongArch has a separate experimental loong64 preview outside standard
releases and automatic updates; no preview is planned for 0.12.12. See the
releases and automatic updates; no preview is planned for 0.13.0. See the
[preview boundaries](./docs/development/loongarch-preview-build.md).
- [x] **Configurable global shortcut**: Enable, disable, or record an Electron
accelerator under Platform Features / General. The default remains
@@ -36,6 +36,14 @@ otherwise.
local, managed SSH, and remote messaging-channel projects. Managed SSH
projects are grouped by Host, with the real Agent connection state on the
Host heading and only the remote path on each project row.
- [x] **Cross-project conversation activity**: A shared activity entry lists
running conversations and conversations needing attention across projects,
including older conversations with live work. Open the associated
conversation directly; project selection also shows activity counts.
- [x] **Compact conversation controls**: Composer options share a compact
settings panel while Runtime, mode, sending, and queue controls remain
available. Conversation search has an inline clear action that restores the
scoped list and returns focus to the input.
- [x] **File, screenshot, window, and clipboard context**: Added to model
context only after explicit user selection.
- [x] **Per-file workspace diffs**: Changed files expose separate staged and
@@ -207,15 +215,17 @@ otherwise.
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.11.23`, while the current Desktop release candidate is `0.12.12`; formal
`0.11.24`, while the current Desktop release candidate is `0.13.0`; formal
publication status follows the separate Agent and Desktop
release channels. Current macOS source has passed native package installation,
release channels. Previous macOS validation covered native package installation,
detached lifecycle, Attach, real Ask/Execute, and cancellation of tools in
separate process groups on a real Host; this does not imply publication.
Agent `0.11.23` adds remote workspace management and optional model limits;
its bundled Runtime no longer imposes a fixed ten-minute Prompt deadline.
Unlimited request duration retains a separate connection timeout. Upgrade
Desktop to `0.12.11` before downloading and updating the Host's Agent.
Unlimited request duration retains a separate connection timeout. Agent
`0.11.23` requires Desktop `0.12.11` or later.
Agent `0.11.24` requires Desktop `0.13.0` and fixes native question routing
and sending another message after cancelling a pending question.
- [x] **Manual SSH Host environment provisioning source path**: After Host Key,
authentication, and system probes succeed, GoodBuddy saves the Host and
read-only probes the shared Agent/Runtime. Saving a Host or opening a project
@@ -276,6 +286,9 @@ otherwise.
ripgrep for compact file discovery and content search, read large UTF-8 files
by line, and apply multi-file patches in Execute. Ask can search and read but
cannot patch or run commands; packaged ripgrep does not require a system install.
Actionable read/search errors let the model correct its arguments and
continue. Partial search results remain available with an explicit
incomplete-coverage warning.
- [x] **Long context and paged tool output**: Message history, long replies,
and parsed document text no longer use the previous fixed truncation limits.
Direct models can continue reading stored command and Subagent output in
@@ -283,11 +296,15 @@ otherwise.
- [x] **Native Runtime interaction routing**: OpenCode and Continue questions
support choices, yes/no, free-text answers, and skipping through the existing
question card. Local and managed SSH OpenCode also route questions from
owned child sessions. Managed SSH requires the Agent question adapter;
owned child sessions. Managed SSH requires Desktop `0.13.0`, Agent `0.11.24`,
and a newly started managed Runtime;
this does not extend question support to arbitrary ACP services.
Successful answers and skips retain the original questions and answers
across rounds and local conversation reloads; answers discarded by older
versions cannot be recovered.
Concurrent questions wait in order, duplicate events preserve drafts, and
failed submissions remain retryable. Cancelling a pending managed SSH
question allows another message in the same conversation.
Execute permission confirmations are handled automatically rather than
waiting for another approval. See the [interaction boundaries](./docs/features/assistant-workbar/runtime-interactions.md).
- [x] **Experts and Subagents**: Supports explicit experts, team analysis, and
@@ -300,8 +317,10 @@ otherwise.
text, reasoning, and tool progress separately from the final result. Remote
live progress requires Agent `0.11.20`; older packages still expose final
results without reconstructing missing progress.
- [x] **OpenCode event-stream cleanup**: Each completed or cancelled request
closes its own subscription without cancelling parallel conversations.
- [x] **OpenCode event-stream cleanup**: Chat requests and native context
compaction close their own subscriptions before ending event iteration,
including completion, failure, cancellation, and early consumer exit,
without cancelling parallel conversations.
- [x] **Accurate message-footer status**: Distinguishes request preparation,
retry waiting, retry dispatch, tool activity, pending answers, and terminal
states. Local OpenCode reports native retry attempts and scheduled times;
@@ -465,14 +484,22 @@ otherwise.
retrieval parameters are collapsed by default. Documents distinguish ready,
processing, and failed states, with source opening, retry, and confirmation
before source removal.
- [ ] **External knowledge-base connections** (planned): Manage Dify, FastGPT,
and RAGFlow instances from the existing Knowledge page, then discover and
bind remote knowledge bases with provider-specific retrieval settings and
citations. External systems provide retrieval only: GoodBuddy does not use
- [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
retrieval settings and citations. Conversations support on-demand and
required pre-answer retrieval. External systems provide retrieval only:
GoodBuddy does not use
their App, Chat, Workflow, or Agent APIs, and does not bulk-sync, locally
index, or modify remote content. Bounded cited snippets are retained locally
with their conversations. See the
[external knowledge-base PRD](./docs/features/knowledge-base/external-knowledge-prd.md).
- [ ] **External knowledge-base acceptance**: All three providers have passed
real service, local HTTP MCP, and production-IPC short-answer checks; Dify
additionally passed the complete App composer-to-answer-and-citation path.
FastGPT/RAGFlow desktop-specific parameters, complex multi-library answers,
and remote pre-answer retrieval remain unverified. See the
[validation evidence and remaining work](./docs/features/knowledge-base/progress.md).
- [x] **Knowledge graph**: Supports rule-based, model-based, and hybrid
extraction plus entity, relationship, alias, and evidence maintenance.
- [x] **Embedding configuration and retrieval**: Configures compatible
@@ -521,6 +548,9 @@ otherwise.
cache-reporting semantics when showing cache hit rate. 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
to read or copy results, errors, and input parameters. Conversation and
child-task progress use concise rows without repeated Runtime summaries.
- [x] **Task and custom-task experience**: Each product-level Task belongs to
one Conversation, while one Conversation can contain multiple Tasks. The
left conversation list exposes Task children through a leading expand
@@ -587,6 +617,10 @@ otherwise.
unused request reservations do not create browser resources. Released tabs
can be reopened, explicit screenshots remain available, and ordinary
operations no longer trigger unused automatic screenshot capture.
Tabs can be closed while an AI request uses them without cancelling the
whole request. A later explicit navigation creates a separate replacement
tab; blank pages cannot reload, and switching or closing panels clears stale
action errors.
- [x] **Client-computer control tools**: Managed separately from the built-in
browser with scope, cancellation, timeout, output, and activity boundaries.
- [x] **Remote messaging-channel projects**: WeChat ClawBot, WeCom, and
@@ -634,9 +668,15 @@ otherwise.
### Open source, builds, and releases
- Current source candidates are Desktop `0.12.12` and Agent `0.11.23`, with
- Current source candidates are Desktop `0.13.0` and Agent `0.11.24`, with
OpenCode pinned to `1.18.29`. Publication status follows the independent
Desktop and Agent release channels.
- Candidate acceptance remains separate from version preparation. The current
remote-question source has passed real Linux x64 SSH and Electron question
tests with a deterministic loopback model, not the complete production
Main/Preload path with a real provider. That real-model path and candidate
native CI/package validation remain outstanding; see the
[remote-question evidence](./docs/features/assistant-workbar/progress.md).
- [x] **0BSD open-source license**: Original code can be freely used, copied,
modified, distributed, and commercialized. Third-party components and
resources retain their own licenses.
+13 -6
View File
@@ -14,9 +14,11 @@
### 桌面基础、工作空间与上下文
- [x] **跨平台桌面应用**:支持 Windows、macOS、Linux,以及 `x64`、`arm64` 发布目标。
- [x] **信创软硬件覆盖**:正式 Linux 安装包覆盖国产 `x64` 与 `arm64` 架构,可用于统信 UOS、银河麒麟及海光、兆芯、鲲鹏、飞腾等兼容环境。龙芯 LoongArch 另行提供 `loong64` 实验预览版,不属于正式发布矩阵,也未纳入自动更新;`0.12.12` 不构建该预览。这里的覆盖范围不等同于厂商或整机兼容认证,具体状态与限制见[龙芯预览版构建说明](./docs/development/loongarch-preview-build.md)。
- [x] **信创软硬件覆盖**:正式 Linux 安装包覆盖国产 `x64` 与 `arm64` 架构,可用于统信 UOS、银河麒麟及海光、兆芯、鲲鹏、飞腾等兼容环境。龙芯 LoongArch 另行提供 `loong64` 实验预览版,不属于正式发布矩阵,也未纳入自动更新;`0.13.0` 不构建该预览。这里的覆盖范围不等同于厂商或整机兼容认证,具体状态与限制见[龙芯预览版构建说明](./docs/development/loongarch-preview-build.md)。
- [x] **可配置全局快捷唤起**:在“平台功能 / 通用设置”中启停或录制 Electron accelerator;默认保留 `CommandOrControl+Shift+Space`,冲突或保存失败时继续使用上一组已注册快捷键,并显示可处理的状态。
- [x] **Projects、独立对话与会话分支**:按项目隔离上下文,管理会话、附件和 Git 工作区变更;本地会话可在稳定状态下复制当前聊天内容到独立分支,分支持续显示来源徽标且不复制 Task、队列或成果归属;项目选择器区分本地、托管 SSH 与远程消息通道项目,托管 SSH 项目按 Host 分组并在 Host 标题显示真实 Agent 连接状态,项目行只保留远端路径。
- [x] **跨项目会话活动**:统一入口汇总各项目正在运行和需要处理的对话,保留仍有活动的较早会话,可直接打开对应对话;项目选择器也显示活动数量。
- [x] **紧凑会话控件**:输入选项集中在紧凑设置面板,Runtime、工作模式、发送和队列操作保持可用;会话搜索提供内嵌清除按钮,清除后恢复当前范围列表并把焦点返回输入框。
- [x] **文件、截图、窗口、剪贴板上下文**:用户明确选择后才加入模型上下文。
- [x] **工作区单文件差异**:变更文件可分别查看已暂存和未暂存差异,覆盖删除、重命名和未跟踪文件;刷新会重读当前差异、当前浏览目录和已展开目录,超过 50 项变更可继续加载。
- [x] **工作区文件与 Git 管理**:支持文件和目录的新建、重命名、移动、删除、属性查看,以及本地/远程分支搜索与切换、新建分支、显式 Fetch、提交历史和单文件提交差异。工具按文件/Git 视图分组,分支搜索使用统一紧凑表单,子目录保留文字导航而根目录不再显示孤立图标。提交历史贴底,首次展开占 Git 内容区一半,支持调整比例、独立滚动和统一刷新;切换项目自动检测 Git,不沿用其他项目状态。移动限于工作区内,删除须确认,分支冲突不自动 stash 或丢弃改动;托管 SSH 操作需要 Agent `0.11.23`。
@@ -32,20 +34,21 @@
- [x] **直连模型 Runtime**:支持问答、知识总结、受控工具执行、图像生成,以及通过支持 OpenAI 兼容图片编辑接口的服务商进行参考图编辑。连续请求自动复用最近一次成功生成的图片和文字历史,已保存会话重开后仍可继续修改,本轮显式附图优先;上游明确不支持编辑时继续按文字生成,仅在回复底部提示未使用参考图。编辑使用 multipart 上传图片,结果仍只接受经过校验的内联图片,不下载服务商返回的图片 URL。详见[图片生成与连续修改](./docs/features/image-generation/README.md)。
- [x] **直连模型编程 Agent**:本机直连文本模型可在 Execute 模式运行平台 Shell,并可按父请求模式、模型、工作区和能力范围委派一层编程 Subagent;OpenCode、Continue、DeepSeek Harness 和托管 SSH 不重复注入这两个工具。Windows 本机命令与真实模型“修改、测试、修复、复核”闭环已通过,macOS 与 Linux 真机命令仍待对应平台验收。
- [x] **高效直连模型工作区工具**:直连模型使用随包 ripgrep 紧凑地发现文件和搜索内容,按行分页读取大型 UTF-8 文件,并在 Execute 中应用多文件补丁。Ask 可以搜索和读取,但不能应用补丁或运行命令;用户无需另行安装 ripgrep。
- [x] **高效直连模型工作区工具**:直连模型使用随包 ripgrep 紧凑地发现文件和搜索内容,按行分页读取大型 UTF-8 文件,并在 Execute 中应用多文件补丁。Ask 可以搜索和读取,但不能应用补丁或运行命令;用户无需另行安装 ripgrep。可处理的读取或搜索错误允许模型调整参数后继续,部分搜索结果保留并明确提示覆盖不完整。
- [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 闭环(技术预览)**:该能力由“设置 > 平台功能”中的独立“远程项目(技术预览)”页签控制并默认关闭;关闭时不影响本地项目、普通桌面功能或桌面发布。支持 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、固定 Node 和 OpenCode 的签名 `.gbagent`;三个目标共用一个签名 catalog,继续校验签名和 SHA-256。首次发布混合 catalog 前需先升级 Desktop,旧版 Linux-only 目录读取器无法解析包含 Darwin 的目录。macOS 原生安装、生命周期、Attach、真实 Ask/Execute 和独立进程组工具取消已在真实 Host 验证;这不等于新版本已经发布。详细运行边界和 Linux 历史回归证据见[远程主机技术设计](docs/features/remote-host/technical-design.md),正式发布状态以 Agent 与 Desktop 的独立发布渠道为准。
- [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 环境准备真实 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。
- [x] **远程原生问答与取消修复**:Agent `0.11.24` 修复远程原生问答转交和取消待答后同一会话续发,需要先升级 Desktop 至 `0.13.0`。
- [x] **DeepSeek Harness(预览)**:使用 GoodBuddy 固定 Host 和 OpenAI 兼容模型连接;优先使用管理员提供的连接,否则跟随兼容的默认模型或首个兼容连接,无需单独重复选择,设置页显示实际管理员或回退模型来源。Ask 只允许调用 Host 中真实注册的 `read`、`skill` 以及 Main 管理的 Web Search/Fetch 代理,拒绝插件同名冒充,Execute 放行全部已启用内置及插件工具,并以当前用户权限运行。图像输入跟随所选模型连接的能力声明,文本模型在 Host 或模型调用前拒绝图片,图片模型通过有界内联内容和临时 Attachment Store 接收 JPEG/PNG。
- [x] **DSH npm 插件市场**:市场默认关闭,由用户显式开启后搜索公共 npm 的 `dsh-plugin` 包,使用捆绑 npm 执行精确版本安装和普通 lifecycle scripts,并支持启停、JSON 配置、移除、失败启动自动停用和离线管理已安装插件;关闭市场只隐藏目录与管理界面,不改变已有插件的启停状态,第三方代码不受 Ask 初始化隔离。
- [x] **Ask 与 Execute 工作模式**:Ask 保持只读;Execute 是用户对当前本机或 SSH 账号可用工具、进程、网络和可写路径的完整授权,包括工作区外路径及原生子代理工作。
- [x] **Runtime 原生交互转交**:OpenCode 与 Continue 的选择、yes/no、自由文本回答和跳过使用现有问答卡片,本机与托管 SSH OpenCode 同时转交属于当前请求的子会话提问。托管 SSH 需要包含问答适配的 Agent,不扩展到任意 ACP 服务。回答或跳过成功后保留原问题与答案,支持多轮记录和本地会话重载;旧版本已丢弃的答案不能恢复。Execute 权限确认自动处理,不等待第二次审批;具体支持范围见[交互边界](./docs/features/assistant-workbar/runtime-interactions.md)。
- [x] **Runtime 原生交互转交**:OpenCode 与 Continue 的选择、yes/no、自由文本回答和跳过使用现有问答卡片,本机与托管 SSH OpenCode 同时转交属于当前请求的子会话提问。托管 SSH 需要 Desktop `0.13.0`、Agent `0.11.24` 和新启动的托管 Runtime,不扩展到任意 ACP 服务。回答或跳过成功后保留原问题与答案,支持多轮记录和本地会话重载;旧版本已丢弃的答案不能恢复。并行问题按顺序等待回答,重复事件保留草稿,提交失败可重试;取消远程待答后可在同一会话继续发送。Execute 权限确认自动处理,不等待第二次审批;具体支持范围见[交互边界](./docs/features/assistant-workbar/runtime-interactions.md)。
- [x] **专家与 Subagent**:支持显式专家、团队分析和最多三个专家并行分析。专家继承父请求 Ask/Execute 模式,可使用已启用的本机直连模型工具,Ask 仍只读;这些工具不是远程 OpenCode 子会话。聊天先展示可逐项展开的专家完整输出,再在其下展示总 Agent 的综合结果,并随会话保存。
- [x] **OpenCode 子代理过程与最终结果**:子代理卡片按顺序显示文字、推理和工具过程,最终结果独立展示。远程实时过程需要 Agent `0.11.20`,旧包仍显示最终结果但不补造缺失过程。
- [x] **OpenCode 事件连接回收**:请求结束或取消后关闭自身订阅,不取消其他并行会话。
- [x] **OpenCode 事件连接回收**:聊天与原生上下文压缩在结束事件迭代前关闭各自订阅,覆盖完成、失败、取消和消费方提前结束,不取消其他并行会话。
- [x] **准确的消息底部状态**:区分请求准备、等待重试、开始重试、工具活动、待回答和终态;本机 OpenCode 使用原生重试次数和计划时间,直连模型显示自身退避阶段。消息底部状态点保持静态,未接入的 Runtime 重试不编造提示,会话列表闪点及发送、停止行为不变。
- [x] **直连模型命令工作目录**:Execute 命令可通过绝对路径、相对路径或符号链接使用工作区外目录;工作区仍为默认目录和相对路径基准,Ask 保持只读。
- [x] **简化 Runtime 选择**:会话与项目菜单不再枚举每个 Runtime 与模型的组合,Runtime 模型在系统设置中配置;已保存的项目固定模型仍可使用,并明确显示其固定模型。
@@ -70,7 +73,8 @@
- [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 检索及来源追溯。知识范围按对话保存,新对话默认不选择知识库;创建与检索高级参数默认折叠。文档区分可用、处理中和失败,支持打开来源、失败重试及移除来源前确认。
- [ ] **外部知识库接入**(规划中):在现有知识库页面管理 Dify、FastGPT 和 RAGFlow 实例;新建知识库时可读取并绑定远端知识库,保留 Provider 专属检索配置和引用。外部系统只负责知识检索,不接入其 App、Chat、Workflow 或 Agent,也不批量同步、本地索引或修改远端内容。被回答引用的有界检索片段随会话保存在本机。详见[外部知识库接入 PRD](./docs/features/knowledge-base/external-knowledge-prd.md)。
- [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] **知识图谱**:支持规则、模型和混合抽取,以及实体、关系、别名和证据维护。
- [x] **向量模型配置与检索**:可配置兼容 Embeddings 接口并用于语义检索。
- [x] **向量诊断与索引任务**:提供真实向量生成诊断、按文档重建进度、取消、失败状态与重启后结果恢复;每篇成功文档立即可用于检索。
@@ -85,6 +89,7 @@
### 工作管理、长期协作与工作流
- [x] **任务、活动与成果**:集中管理任务状态、审计活动和独立成果文件;普通聊天回复只保留在会话中,不再自动复制到成果栏,已有重复聊天 Markdown 从成果列表隐藏但不物理删除。运行记录改由 Main SQLite 保存,不再受旧 Renderer 的 500 条、单详情 4,000 字符或约 2 MB 上限影响,页面按批继续显示;不再常驻旧缓存截断警告,但不会恢复此前已丢失的历史。Token 用量按 Runtime 与模型归类,并针对 OpenAI 兼容与 Anthropic Messages 的不同上报口径归一化展示缓存命中率;活动按会话分组并默认收起,避免长历史占满页面。
- [x] **紧凑会话工具记录**:逐项展开工具记录即可查看和复制结果、错误及输入参数;会话与子任务进度使用简洁行,减少重复 Runtime 摘要。
- [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] **记忆与智能心跳**:当前提供周期回顾、建议记忆、洞察、后续任务和可审计运行轨迹。
- [x] **定时消息沿用会话**:定时消息使用会话当前历史、Runtime、工作模式和已保存的知识检索设置;任务详情显示实际运行模式,当前 occurrence 未结束时禁止重复“立即运行”。
@@ -99,6 +104,7 @@
- [x] **Runtime 共享内置浏览器**:使用 GoodBuddy 内置的隔离 Chromium,不控制客户端已安装的浏览器;用户通过内置 MCP 总开关和 Runtime 分配决定是否提供给 Execute,开启后不逐次询问。关闭 Agent 浏览器能力不影响用户继续在浏览器工作栏中手动前往、返回、刷新、停止加载、交互或关闭浏览器。直连模型、GoodBuddy 管理的 OpenCode 和 Continue 通过请求级权限共享按 Conversation 归属的会话和串行操作路径,用户导航会改变 Agent 下一步看到的页面。
- [x] **浏览器多页签与按需资源**:同一对话可打开多个共享登录状态、页面与导航独立的浏览器页签,模型请求固定使用开始时绑定的目标。未使用的请求预留不创建浏览器资源,已释放页面可重新打开;保留显式截图,普通操作不再触发无用的自动截图。
- [x] **浏览器关闭与刷新**:AI 使用中的页签也可关闭,不取消整个请求;后续显式导航会创建独立替代页。空白页不能刷新,切换或关闭面板后清除旧操作错误。
- [x] **客户端电脑控制工具**:与内置浏览器分开管理,并保留范围、取消、超时、输出边界和执行记录。
- [x] **远程消息通道项目**:微信 ClawBot、企业微信和钉钉分别拥有系统管理的项目、独立远程会话、工作目录、处理后端、默认 Ask/Execute 模式及任务活动归属;完整回复交由各通道按平台能力控制长度与分段,不再由公共服务统一截断。
- [x] **微信 ClawBot 扫码与媒体**:通过独立 Sidecar 完成本机扫码、验证码、加密凭据和文字收发;支持个人微信私聊图片与文件,单条消息最多 4 个附件、解密后合计不超过 12MB。
@@ -113,7 +119,8 @@
### 开源、构建与发布
- 当前源码候选为 Desktop `0.12.12`、Agent `0.11.23`,OpenCode 固定为 `1.18.29`;正式发布状态以 Desktop 与 Agent 的独立发布渠道为准。
- 当前源码候选为 Desktop `0.13.0`、Agent `0.11.24`,OpenCode 固定为 `1.18.29`;正式发布状态以 Desktop 与 Agent 的独立发布渠道为准。
- 候选验收与版本准备分别记录。当前远程问答源码已通过真实 Linux x64 SSH 与 Electron 问答测试,但模型为确定性 loopback 服务,不是完整生产 Main/Preload 配合真实服务商;该真实模型链路和候选原生 CI/打包验证仍待完成,详见[远程问答证据](./docs/features/assistant-workbar/progress.md)。
- [x] **0BSD 开源许可**:原创代码可自由使用、复制、修改、分发和商用;第三方组件和资源仍遵循各自许可证。
- [x] **可复现依赖安装与源码构建**:使用锁定依赖、Node.js 24 和统一的测试、类型检查、Lint、生产构建命令。
- [x] **六平台原生发布矩阵**:Windows、macOS、Linux 的 `x64`、`arm64` 目标由原生 Runner 构建,并提供发布清单和 SHA-256 哈希。Windows 提供 NSIS 与 portable ZIP,macOS 仅 DMG,Linux 提供 AppImage、DEB 和 RPM,共 12 个安装包、20 个发布资产。
+1 -1
View File
@@ -1,6 +1,6 @@
{
"formatVersion": 1,
"agentVersion": "0.11.23",
"agentVersion": "0.11.24",
"protocol": {
"major": 2,
"minor": 0
@@ -1,5 +1,53 @@
# 工作栏实现与验证进度
## 2026-09-13 OpenCode 事件流关闭顺序修复
候选检查中的 lifecycle 失败已稳定复现,4 路并行后 `openEventBodies` 为 3 而不是 0。
原因与统一修正规则见[复发缺陷记录](../../quality/recurring-defects.md#事件迭代结束前释放底层订阅);
聊天与 Compact 共用最小迭代器包装,不修改 OpenCode SDK、重试时限或现有断言时限。
- 加强既有正常结束与消费方提前返回回归,修复前两项均失败,确认最终 `signal.aborted`
不能证明关闭顺序正确;修复后通过。
- `npm test -- src/main/agent/opencode-runtime-lifecycle.test.ts
src/main/agent/opencode-runtime.test.ts src/main/agent/opencode-runtime-permissions.test.ts
src/main/agent/opencode-subagent.test.ts`:4 个文件、99 项通过。
- Windows 当前源码配合真实 OpenCode `1.18.29`、真实 SDK/HTTP MCP 和 loopback 模型通过
1、4、8 路并行、取消一条而另一条正常结束,以及实际原生 Compact;各阶段打开的 SSE
响应流均归零。验证是生产 Runtime 入口,不是完整 Electron UI;真实服务商调用 0 次。
- 已核对远端 `AcpRemoteRuntime` 的 Agent-owned transcript 轮询与
`AgentOwnedAcpPrompt` 的 ACP stdio 连接,不使用本机 `client.event.subscribe`。本次未改
Agent、远程桥或协议,不需要远端对应修复,也未将本机测试算作远程 Host 复验。
- 最终 `npm test`:349 个文件通过、9 个跳过;4,089 项通过、66 项跳过、0 失败,
耗时 571.43 秒。`npm run release:notes:verify`、`npm run typecheck`、`npm run lint`
全部通过;下节失败结果保留为修复前记录,不再是当前本地回归结论。
- 发布说明按 Desktop `v0.12.12`、Agent `agent-v0.11.23` 到最终候选的差异核对,
不按中间开发提交分别列出修正。用户明确不增加事件流条目,已批准中英文说明保持不变。
- 本轮未提交、推送或打标签,未运行本地生产构建或打包;远程问答完整生产链路的真实
服务商验证及候选 CI/原生发布验证仍沿用各自待验收状态,不由本机 SSE 修复代替。
## 2026-09-13 Desktop 0.13.0 / Agent 0.11.24 候选检查
本轮仅准备本地候选:更新 Desktop 与 Agent 版本、用户批准的中英文发布说明及功能清单,
远程原生问答按问题修复分类。Agent 发布说明测试允许仅有修复章节,同时检查中英文分类
一致;未修改 Runtime、Agent 问答或事件流实现。Agent `0.11.24` 需要先升级 Desktop 至
`0.13.0`,OpenCode 保持 `1.18.29`。
- `npm run release:notes:verify`、`npm run typecheck`、`npm run lint`:通过。
- `npm test`:348 个文件通过、1 个失败、9 个跳过;4,088 项通过、1 项失败、66 项跳过,
耗时 571.96 秒。唯一失败为 `opencode-runtime-lifecycle.test.ts:120`,并行请求结束后
`openEventBodies` 期望为 0、实际为 3,轮询未在时限内满足;该现象早已有记录,
本轮没有完成根因判断,也没有放宽断言或跳过测试。
- 单独复跑上述 lifecycle 文件及 `agent-release-workflow.test.ts`、
`release-notes-source.test.ts`、`release-notes-service.test.ts`:发布相关 15 项通过,
lifecycle 同一断言再次失败。该结果不能替代一次全量通过。
- 更早的一次全量运行在调整 Agent 发布说明章节断言前主动停止,未取得汇总,不计为通过。
- 候选版本一致性、历史 Desktop 发布说明未改动、48 个 Markdown 相对链接目标和
`git diff --check` 已通过。
- 本轮真实模型验证调用 0 次,未重跑真实 Host;既有 SSH/确定性模型证据见下文,
不将其扩写为完整生产 Main/Preload 配合真实服务商的验收。
- 未提交、推送或创建标签,未运行本地生产构建、打包或 LoongArch 预览。
全量测试失败、完整远程生产链路及候选 CI/原生包验证仍未解决,候选不标记为可发布。
## 2026-09-13 SSH 问答 UI 复验与取消后续发
在真实 Electron 窗口中使用当前 `App`、入口样式和主题函数,经测试 IPC 接入生产
@@ -10,8 +10,9 @@
| DeepSeek Harness | 固定 Host 的 Execute 文件与命令工具不询问目录权限;若收到 ACP 权限请求,活跃 Execute 直接选一次性允许,缺少该选项时使用 Runtime 提供的允许选项,Ask 拒绝,不等待额外 authorizer | 固定 Host 当前未提供通用原生业务问答服务,不把普通模型正文误识别成待答协议。模型以普通回复提问时,用户通过下一条消息回答 |
托管 SSH OpenCode 的权限、原生问题事件与回复链路由
[远程主机技术设计](../remote-host/technical-design.md)定义。远端业务问答需要包含此适配的
Agent 和新启动的托管 Runtime;任意第三方 ACP 服务及旧 Agent 不因此获得通用问答接口。
[远程主机技术设计](../remote-host/technical-design.md)定义。本次候选的远端业务问答需要
Desktop `0.13.0`、Agent `0.11.24` 和新启动的托管 Runtime;请先升级 Desktop,再更新
Host 环境。任意第三方 ACP 服务及旧 Agent 不因此获得通用问答接口,候选不表示已经发布。
## 运行与失败
@@ -12,9 +12,11 @@ Linux x64/arm64、取消和离线 GoodBuddy 传输的真实 Host 验收。
Windows 到 Linux x64 的安装、Agent-owned Prompt、Agent 本地模型 gateway、断线恢复、
同一 OpenCode Session 续接、取消和终态清理已经使用真实模型与工具验证。Agent
`0.11.14` 已通过独立 workflow 发布 Linux x64/arm64 复合包和签名累计目录;当前源码
候选为 Agent `0.11.23`、Desktop `0.12.11`,新增远程文件/Git 管理接口和可选模型限额,
并修复无限请求时长下的连接超时。Agent `0.11.23` 要求先升级至 Desktop `0.12.11`;
新包内的 Runtime 不再设置固定十分钟 Prompt 时限,显式请求期限与取消仍有效。
候选为 Agent `0.11.24`、Desktop `0.13.0`,修复远端原生问答转交和取消待答后的同会话
续发。Agent `0.11.24` 要求先升级至 Desktop `0.13.0`;候选尚未发布。远程文件/Git 管理、
可选模型限额、无限请求时长下的独立连接超时和移除固定十分钟 Prompt 时限由
Agent `0.11.23` 提供,显式请求期限与取消仍有效。当前问答源码的真实 SSH/确定性模型证据
及完整生产链路验证边界见[工作栏进度](../assistant-workbar/progress.md)。
正式发布状态以 Agent 与 Desktop 独立发布渠道为准。
现有源码显示本地与远端 OpenCode 原生 Task,并取消 GoodBuddy 对生产 Prompt 的
固定墙钟总时限。失败的 `agent-v0.11.3` 保持不可变且未发布。
@@ -291,7 +293,9 @@ Execute 直接启动已签名 Runtime:
不会被补造。
- 本机 OpenCode SDK 路径允许不同会话并行,同一会话仍按请求顺序执行。每个请求独立拥有
SSE 事件订阅,并在正常完成、错误、取消或消费方结束迭代时主动关闭自己的响应流,
不关闭其他会话的订阅或共享 Server。取消导致事件迭代结束时保留原取消原因,不改报
不关闭其他会话的订阅或共享 Server。聊天与原生 Compact 共用 `consumeEventSubscription`,
在结束 SDK 迭代器之前先取消对应订阅,避免 SDK 移除取消监听后留下仍有缓冲的响应流;
不改写 SDK 或提前取消其他请求。取消导致事件迭代结束时保留原取消原因,不改报
“事件流意外结束”。这一清理规则属于本机 SDK 路径,不改变远端 Agent 持有 ACP Prompt
的断线继续执行语义。
- 同一 detached Agent 存活时,短暂 SSH 断线依次执行 `controller/resume`、`runtime/resumeAcpChannel` 和 `runtime/replayAcpChannel`,从 Main 已确认的 cursor 后只重放 Agent 到 Main 的已记录输出。重复 frame 会被确认但不会再次交给上层。若上一代连接只留下没有活动请求的 detached binding,完成精确 controller takeover 后会先有界停止并核对遗留 Runtime process,再用新 channel epoch 重新打开同一 binding 并恢复已有 ACP session;其他 controller、未证明 takeover 或仍有活动请求的 binding 仍被拒绝。
+2 -2
View File
@@ -1,12 +1,12 @@
{
"name": "goodbuddy",
"version": "0.12.12",
"version": "0.13.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "goodbuddy",
"version": "0.12.12",
"version": "0.13.0",
"license": "0BSD",
"dependencies": {
"@agentclientprotocol/sdk": "0.25.1",
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "goodbuddy",
"version": "0.12.12",
"version": "0.13.0",
"private": true,
"description": "Secure desktop AI workspace with controlled Agent Runtimes",
"desktopName": "GoodBuddy",
+25
View File
@@ -0,0 +1,25 @@
# GoodBuddy Agent 0.11.24 更新内容
## 问题修复
- **在桌面回答远程原生问题**:托管 SSH OpenCode 的主会话与子会话问题可以回传到前台对话,支持选项、自由文本和跳过。多个问题可分别回答,不再依赖模型正文转述问题。
- **取消待答任务后可以继续发送**:修复取消远程问题后,旧操作未正确结束导致同一会话后续消息失败的问题。取消后会核对并结束旧绑定,迟到的回答不会提交到新请求。
## 升级说明
- 需要 **Desktop 0.13.0 或更高版本**,请先升级 Desktop,再更新 Host 环境。提供 Linux x64、Linux arm64 和 macOS arm64 复合包,OpenCode 保持 `1.18.29`,运行中的旧进程不会热更新。
- 问答支持仅适用于 GoodBuddy 管理的 OpenCode 前台对话,不包括任意 ACP 服务或终端密码、OAuth 等提示。Ask 保持只读,Execute 继续使用所选 SSH 账号权限。
---
# What's New in GoodBuddy Agent 0.11.24
## Bug Fixes
- **Answer native remote questions from Desktop**: Questions from managed SSH OpenCode main and child sessions reach the foreground conversation, supporting choices, free text, and skipping. Multiple questions can be answered individually without relying on the model to repeat them in its response text.
- **Send again after cancelling a pending question**: Fixed unfinished operation state that could reject subsequent messages in the same conversation after cancellation. Cancellation reconciles and closes the old binding, and late answers cannot be submitted to a new request.
## Upgrade Notes
- Requires **Desktop 0.13.0 or later**; upgrade Desktop before updating the Host environment. Compound packages target Linux x64, Linux arm64, and macOS arm64, retain OpenCode `1.18.29`, and do not hot-update running processes.
- Questions are supported only in foreground conversations using GoodBuddy-managed OpenCode, not arbitrary ACP services or terminal password and OAuth prompts. Ask remains read-only, and Execute retains the selected SSH account’s permissions.
+46
View File
@@ -1,6 +1,52 @@
{
"formatVersion": 1,
"releases": [
{
"version": "0.13.0",
"releasedAt": "2026-09-13",
"notes": {
"zh-CN": {
"highlights": [],
"features": [
"**接入外部知识库**:在知识库页面配置 Dify、FastGPT 或 RAGFlow 实例,从目录选择或手工填写远端知识库 ID,验证后绑定到 GoodBuddy。对话可按需或每次回答前检索,并保留可查看的引用片段。连接、参数和移除操作只影响 GoodBuddy,不同步、索引或修改远端内容。",
"**跨项目查看活动**:无需逐个切换项目,即可集中查看正在运行和需要处理的对话。点击活动可直接进入对应会话,项目选择器也会显示活动数量。"
],
"fixes": [
"**远程 OpenCode 原生问答**:托管 SSH 前台对话可以接收主会话及子会话的问题,通过选项、自由文本或跳过继续执行。需要配套 Agent `0.11.24`,不扩展到任意第三方 ACP 服务。",
"**并行提问不再相互覆盖**:同时到达的问题按顺序等待回答,重复事件不会清空草稿,提交失败可保留输入重试。配套更新 Agent 后,取消远程待答任务也可在同一会话继续发送,不再因旧操作绑定报错。",
"**工具记录更紧凑**:工具调用改为可展开的简洁记录,减少重复摘要。展开后可查看和复制结果、错误及输入参数。",
"**输入区与搜索更清楚**:会话选项收进紧凑设置面板,保留 Runtime、工作模式、发送和队列操作。搜索框可一键清除关键词,返回当前范围的会话列表。",
"**浏览器关闭与刷新更可靠**:AI 正在使用的页签也可关闭,不会因此取消整个请求;后续显式导航会创建独立新页。空白页不再错误启用刷新,切换或关闭面板后也不会残留旧错误。",
"**弹窗按钮恢复正常点击**:修复项目设置、反馈、知识库、MCP 编辑器和预览等弹窗与标题栏重叠时,控件无法悬停或点击的问题。项目对话框滚动后仍可关闭,关闭时恢复入口焦点。",
"**文件读取与搜索错误可继续处理**:直连模型遇到可修正的路径、读取或搜索参数错误时,可依据错误提示调整后继续。部分文件无法搜索时保留已有结果并明确提示覆盖不完整,不把缺失结果当作不存在。"
],
"notices": [
"外部检索会把查询发送给所选知识服务,回答使用的片段会进入模型上下文并随会话保存在本机。知识服务的向量化、重排及模型回答可能产生服务商用量。",
"先升级 Desktop 至 **0.13.0**,再下载并更新 Host 上的 **Agent 0.11.24**;远程项目仍为技术预览,Ask/Execute 权限不变。本次提供标准六平台桌面安装包,不构建 LoongArch 实验预览。"
]
},
"en-US": {
"highlights": [],
"features": [
"**Connect external knowledge bases**: Configure Dify, FastGPT, or RAGFlow on the Knowledge page, select a remote knowledge base from its catalog or enter its ID, then verify and bind it to GoodBuddy. Conversations can retrieve on demand or before every answer and retain readable citation snippets. Connection settings, retrieval parameters, and removal affect only GoodBuddy, without synchronizing, indexing, or modifying remote content.",
"**View activity across projects**: See running conversations and conversations needing attention without switching through projects individually. Open a conversation directly from its activity entry, with activity counts also shown in the project selector."
],
"fixes": [
"**Native questions in remote OpenCode**: Foreground managed SSH conversations can receive questions from the main session and its child sessions, then continue through choices, free-text answers, or skipping. This requires Agent `0.11.24` and does not add support for arbitrary third-party ACP services.",
"**Concurrent questions no longer overwrite each other**: Questions arriving together wait in order, duplicate events preserve drafts, and failed submissions retain input for retry. With the matching Agent update, cancelling a pending remote question also allows another message in the same conversation without an old-operation binding error.",
"**More compact tool records**: Tool calls use concise expandable records with fewer repeated summaries. Expand a record to inspect and copy results, errors, and input parameters.",
"**Clearer composer and search**: Conversation options move into a compact settings panel while preserving Runtime, work mode, sending, and queue actions. Clear search keywords in one click to return to conversations in the current scope.",
"**More reliable browser closing and refresh**: Tabs in use by an AI request can be closed without cancelling the whole request; a later explicit navigation creates a separate replacement tab. Blank pages no longer incorrectly enable refresh, and switching or closing panels clears stale errors.",
"**Clickable dialog controls**: Fixed controls that could not respond to hover or clicks when project settings, feedback, knowledge, MCP editors, and previews overlapped the titlebar. Project dialogs remain closable after scrolling and restore focus to their entry point.",
"**Recoverable file-reading and search errors**: Direct models can correct actionable path, reading, or search-parameter errors and continue. When some files cannot be searched, available results are retained with an explicit incomplete-coverage warning rather than treating missing results as proof of absence."
],
"notices": [
"External retrieval sends queries to the selected knowledge service, and snippets used in answers enter model context and are saved locally with the conversation. Embedding, reranking, and model answers may incur provider usage charges.",
"Upgrade Desktop to **0.13.0** before downloading and updating Hosts to **Agent 0.11.24**. Remote projects remain a technical preview, Ask/Execute permissions are unchanged, and this release includes the six standard desktop targets without a LoongArch experimental preview."
]
}
}
},
{
"version": "0.12.12",
"releasedAt": "2026-09-11",
+4 -4
View File
@@ -61,10 +61,10 @@ describe('independent Agent release workflow', () => {
expect(scripts('publish')).toContain('test -s "$notes"')
expect(notes).toContain(`# GoodBuddy Agent ${agentVersion} 更新内容`)
expect(notes).toContain(`# What's New in GoodBuddy Agent ${agentVersion}`)
expect(notes).toContain('## 功能更新')
expect(notes).toContain('## 问题修复')
expect(notes).toContain('## Features')
expect(notes).toContain('## Bug Fixes')
expect(notes).toMatch(/^## (?:功能更新|问题修复)$/mu)
expect(notes).toMatch(/^## (?:Features|Bug Fixes)$/mu)
expect(notes.includes('## 功能更新')).toBe(notes.includes('## Features'))
expect(notes.includes('## 问题修复')).toBe(notes.includes('## Bug Fixes'))
})
it('uses a separate immutable agent-v tag and never enters desktop packaging', () => {