From 3c9229ac7a57071fc955adb1095c499ffdfd006a Mon Sep 17 00:00:00 2001 From: mesalogo Date: Mon, 28 Sep 2026 22:52:26 +0800 Subject: [PATCH] release: prepare Desktop 0.15.3 Document restored direct-model compaction, request-lifetime tool access, clearer cancellation and sidebar controls, reduced redundant startup work, and slimmer package inputs. Keep published Agent 0.15.0 and prior release notes unchanged. Review both feature matrices and retain Office editing as planned work. Typecheck, lint and bilingual notes validation passed; 85 focused tests passed and one POSIX-only test was skipped on Windows. Full source validation and production build remain CI gates before tagging. --- FEATURES.md | 27 ++++++++++--- FEATURES.zh-CN.md | 10 +++-- .../development/release-preparation-0.15.3.md | 36 +++++++++++++++++ package-lock.json | 4 +- package.json | 2 +- resources/release-notes.json | 40 +++++++++++++++++++ 6 files changed, 106 insertions(+), 13 deletions(-) create mode 100644 docs/development/release-preparation-0.15.3.md diff --git a/FEATURES.md b/FEATURES.md index 5701b3ab..64876348 100644 --- a/FEATURES.md +++ b/FEATURES.md @@ -64,7 +64,9 @@ records are listed separately and do not introduce another feature status. - [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. + scoped list and returns focus to the input. New conversation and expandable + search share one row. Composer shortcut hints reflect successful registration + and saved settings, without being overwritten by late startup responses. - [x] **On-demand conversation history**: Lists load lightweight summaries rather than every conversation's process metadata. Opened and active conversations retain full details; search, copy, export, continued requests, @@ -142,7 +144,7 @@ records are listed separately and do not introduce another feature status. templates. - [x] **Application center and navigation**: The footer shows equal-height Apps and Settings buttons with visible labels and a subtle vertical divider. - Clicking Apps, marked with a downward chevron, opens a lightweight upward anchored popup with enabled apps, + Clicking Apps, marked with an upward chevron, opens a lightweight upward anchored popup with enabled apps, regardless of pinning or opening history, and no modal backdrop. Clicking an app row closes the popup; Local Inference Monitor opens a separate modal preserving the workspace, while other apps open their main content pages. Manage Apps uses a LayoutGrid icon and opens Application Center with searchable cards and settings details; @@ -331,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.2`; formal + `0.15.0`, paired with the current Desktop release candidate `0.15.3`; 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 @@ -468,6 +470,8 @@ records are listed separately and do not introduce another feature status. direct models report their own backoff phase. Footer dots are static, and unsupported Runtime retry details are not invented. Conversation-list 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 @@ -496,7 +500,12 @@ records are listed separately and do not introduce another feature status. fields take precedence, and these ordinary connection settings must not be used to store API keys or other secrets. See [model request customization](./docs/features/model-connections/README.md). -- [x] **Context usage and automatic compaction**: Direct models update usage +- [x] **Context usage and compaction**: Local direct text-model conversations + also support manual compaction below the automatic threshold or with automatic + compaction disabled. The selected summary model may incur charges; recent turns + and full stored history remain available, and saved summaries are reused. + Image connections and remote direct-model entry points are excluded. + Direct models update usage from each successful provider call. Images and tool rounds use the same accounting, with estimation only when the provider omits usage. The UI distinguishes This Model Call from Post-Compaction Conversation Estimate, @@ -834,7 +843,7 @@ records are listed separately and do not introduce another feature status. - [ ] **Batch runs and comparison lab** (planned): Compares model, Prompt, role, and workflow configurations in batches and summarizes quality, duration, tokens, cost, failure rate, and artifact differences. -- **Story Graph read tools (unreleased source)**: Agents can search saved work, +- **Story Graph read tools (Desktop 0.15.2 / Agent 0.15.0)**: Agents can search saved work, read current claims or timelines, and page through source evidence. Supervisor enablement and Runtime assignment control discovery and calls, including old sessions. Model, local Harness, and local/remote OpenCode and Continue share @@ -921,9 +930,15 @@ records are listed separately and do not introduce another feature status. ### Open source, builds, and releases -- The current Desktop candidate is `0.15.2` and the Agent candidate is `0.15.0`, with +- The current Desktop candidate is `0.15.3`; published Agent `0.15.0` 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.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 + dependencies and development files. It does not claim a proven overall rendering + speedup. Office live editing remains a design, not a delivered capability. + See the [0.15.3 preparation record](./docs/development/release-preparation-0.15.3.md). - Desktop `0.15.1` carries forward the unpublished `0.15.0` 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 diff --git a/FEATURES.zh-CN.md b/FEATURES.zh-CN.md index 39c9eaf8..cf26f7dd 100644 --- a/FEATURES.zh-CN.md +++ b/FEATURES.zh-CN.md @@ -36,7 +36,7 @@ - [x] **AI 回复与完整会话复制**:已完成的 AI 回复可从消息底部复制不含推理、工具日志和引用元数据的 Markdown 原文;完整会话复制复用同一条经过 Preload/Main 校验的剪贴板路径。 - [x] **助手工作栏、多终端与可调布局**:工作栏开关位于明暗主题按钮旁;右侧工作栏使用持久“+”能力目录和应用 Tab,任务中心与工作区为不可关闭的单实例,浏览器可打开多个独立实例。任务中心可切换当前项目和所有项目,范围随布局保存;无项目任务在所有项目中标注“未绑定项目”。用户可为当前本机或托管 SSH 项目打开多个独立终端,获得有界输出、调整尺寸、结束与显式重连。关闭终端 Tab 会结束 Shell,应用重启只恢复已结束的 Tab 描述,不自动重启 Shell。主侧栏和魔法笔记编辑器的 AI 评论栏支持鼠标与键盘调宽;AI 评论栏记住显示状态及宽度,窄窗口下移至编辑器底部。 - [ ] **项目 Agent Space**(规划中):在 Project 中统一角色、知识、Skills/MCP、模型、审批策略、预算和超时,并支持模板复用。 -- [x] **应用中心与导航**:底部“应用”和“设置”为显示文字的等高按钮,中间使用弱竖分隔线。“应用”带向下箭头,点击后向上展开轻量锚定菜单,无模态遮罩,只列已启用应用,不按打开历史或常驻筛选。点击应用行关闭菜单,本机推理监控打开保留底层工作区的独立 Modal,其余应用打开主内容区;底部“管理应用”使用 `LayoutGrid` 图标,打开标题仍为“应用中心”的可搜索卡片及设置详情,布局与交互见 [UI 设计](./docs/features/application-tool-navigation/ui-design.md)。四张应用卡片均支持上下移动和拖动排序,不受启用或常驻状态限制;卡片、菜单和经过过滤的侧栏共用一份保存顺序。知识库始终启用并常驻,提供“打开”和排序;监督者、魔法笔记和本机推理监控可设置启用与常驻。监督者沿用智能心跳身份,缺失启用设置时默认关闭,已明确保存的选择保留;关闭后保留计划和历史,拒绝新回顾并隐藏侧栏反馈,在途运行可完成。启用应用不会自动创建计划。旧应用顺序补齐默认项并保留已有相对顺序。设置持久化后的事件同步各入口,包括工具配置写入;重开中心刷新期间锁定修改,新快照覆盖迟到的旧读取。`local-inference` Modal 直接显示服务列表,不展示任务历史或外部连接;向量服务显示独立进程 CPU 与工作集内存,ASR/OCR 说明共享进程无法独立统计的原因。ASR 就绪状态未知,不从活动请求推断运行中。受支持的服务操作保留影响确认,失败后刷新列表并要求重新确认;TTS 显示不可用。取消中的推理在 Worker 确认或退出前仍计入活动任务及服务停止影响。实现已接入生产 App;验收记录分别列出完整 App、组件 fixture、真实本地引擎和剩余平台/安装包覆盖,不以历史失败代替当前全量结果,详见[验证进度](./docs/features/application-tool-navigation/progress.md)。 +- [x] **应用中心与导航**:底部“应用”和“设置”为显示文字的等高按钮,中间使用弱竖分隔线。“应用”带向上箭头,点击后向上展开轻量锚定菜单,无模态遮罩,只列已启用应用,不按打开历史或常驻筛选。点击应用行关闭菜单,本机推理监控打开保留底层工作区的独立 Modal,其余应用打开主内容区;底部“管理应用”使用 `LayoutGrid` 图标,打开标题仍为“应用中心”的可搜索卡片及设置详情,布局与交互见 [UI 设计](./docs/features/application-tool-navigation/ui-design.md)。四张应用卡片均支持上下移动和拖动排序,不受启用或常驻状态限制;卡片、菜单和经过过滤的侧栏共用一份保存顺序。知识库始终启用并常驻,提供“打开”和排序;监督者、魔法笔记和本机推理监控可设置启用与常驻。监督者沿用智能心跳身份,缺失启用设置时默认关闭,已明确保存的选择保留;关闭后保留计划和历史,拒绝新回顾并隐藏侧栏反馈,在途运行可完成。启用应用不会自动创建计划。旧应用顺序补齐默认项并保留已有相对顺序。设置持久化后的事件同步各入口,包括工具配置写入;重开中心刷新期间锁定修改,新快照覆盖迟到的旧读取。`local-inference` Modal 直接显示服务列表,不展示任务历史或外部连接;向量服务显示独立进程 CPU 与工作集内存,ASR/OCR 说明共享进程无法独立统计的原因。ASR 就绪状态未知,不从活动请求推断运行中。受支持的服务操作保留影响确认,失败后刷新列表并要求重新确认;TTS 显示不可用。取消中的推理在 Worker 确认或退出前仍计入活动任务及服务停止影响。实现已接入生产 App;验收记录分别列出完整 App、组件 fixture、真实本地引擎和剩余平台/安装包覆盖,不以历史失败代替当前全量结果,详见[验证进度](./docs/features/application-tool-navigation/progress.md)。 - [ ] **私有化应用市场**(规划中):在应用管理基础上提供组织自己的目录与应用分发。当前只管理内置应用,尚无市场浏览或安装能力,详见 [FR-15](./docs/features/application-tool-navigation/prd.md#fr-15-私有化市场与-yaml-交换后续)。 - [ ] **通用助手工作栏与执行空间后续能力**(规划中):在现有工作栏和多终端基础上继续加入更完整的执行监督、统一 Runtime 监控、受管进程、可固定目标的工作区/浏览器/成果实例、底部停靠与独立窗口。Task Center 保持 Task 的单例索引,附件与知识库继续由会话输入区管理,未来的记忆与历史执行上下文归入关联 Task。详见 [Feature PRD](./docs/features/assistant-workbar/prd.md)。 - [ ] **ShareServer Office 协同编辑**(设计中):通过可选 ShareServer 集成 ONLYOFFICE Docs,在助手工作栏中以文件名打开多个文档 Tab,支持 DOCX、XLSX、PPTX 的人工编辑、保存、撤销、源文件冲突保护和后续 AI 选区修改。Office 正文会由所选 ShareServer 和编辑引擎处理;Desktop 不内置或启动 Document Server,未配置服务时不宣称离线编辑。详见[设计文档](./docs/features/office-document-editing/README.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.2`;详细运行边界和 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.0`,配套 Desktop 候选为 `0.15.3`;详细运行边界和 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。 @@ -73,6 +73,7 @@ - [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)。 +- [x] **本地直连手动压缩**:文本模型会话可在自动压缩关闭或未到阈值时手动生成摘要,保留最近轮次和完整历史,保存的摘要用于后续对话;图像连接和远程直连入口不适用。摘要模型调用可能产生费用。 - [x] **上下文用量与自动压缩**:直连模型按每次成功调用更新供应商用量,图片与工具轮次使用同一口径,供应商缺失 usage 时才回退估算;界面明确区分“本次模型调用”和“压缩后对话估算”,压缩线始终根据当前设置与所选模型窗口即时计算,不在每个对话中保存旧配置;压缩标识的前后值使用同一估算口径,运行记录仍保留各次模型调用的供应商 usage。对话与多轮工具 Agent 可在已完成调用越过阈值后自动重复压缩,规划时先为固定提示、工具定义和摘要预留预算;同一回复会分别保留 Agent 工具上下文与对话历史的压缩标识,并在应用重启或较早消息滚出本地历史窗口后继续复用摘要。 - [x] **持久凭据保护**:API Key 由 Main 使用系统安全存储加密且不暴露给 Renderer。托管 SSH accepted Prompt 只把当前 profile 与密钥放入 Agent 内存,不写入 SSH 参数、远端环境或磁盘;其他路径仍在 Main 内使用。密钥随对应模型连接保存,修改服务地址或临时切换为无需认证不会要求重新输入;只有用户显式清除凭据或删除连接时才移除。 - [x] **有界故障诊断**:Desktop 在用户数据目录中轮转保存启动、Runtime 和远程连接的固定阶段失败,最多 4 个 256 KiB 文件;GoodBuddy Agent 在各 installation 的私有 state 目录中轮转保存 daemon、连接、恢复和 Runtime 生命周期,最多 3 个 64 KiB 文件,并可通过固定 `diagnostics --installation-id` 命令读取。两端都只记录白名单阶段、稳定错误码/类型和固定短消息,不保存 Prompt、凭据、文件内容、路径、环境、SSH 参数或 Provider 原始响应;诊断写入失败不改变正常运行。 @@ -129,7 +130,7 @@ - [ ] **监督后续能力**(规划中):逐事件完整回放、Experiment 目标、人工修改时间序列审计、事件触发及更完整的执行观察仍未完成。当前自动回顾受输入预算和滚动窗口限制,删除报告不会重置处理进度或重建图谱。详见 [会话监督 PRD](./docs/features/conversation-supervision/prd.md)。 - [ ] **批量运行与对比实验室**(规划中):对模型、Prompt、角色和工作流配置执行批量对比,汇总质量、耗时、Token、费用、失败率和成果差异。 - [ ] **时态记忆与事实冲突检测**(规划中):为记忆和知识图谱增加有效期、当前事实、过期与矛盾检测、事实核验及证据回溯。 -- **Story Graph 只读工具(未发布源码)**:Agent 可搜索已保存的工作,读取当前主张或时间线,并分页核对来源。监督者应用开关及 Runtime 分配同时控制发现和调用,旧会话也受限制。Model、本地 Harness、本地与远程 OpenCode/Continue 共用桌面读取入口;查询不调用模型,不以较新回顾推断替代关系。跨 scope 事实复用及 `as_of` 仍待实现,详见[设计与验证](./docs/features/conversation-supervision/story-graph-mcp-design.md)。 +- **Story Graph 只读工具(Desktop 0.15.2 / Agent 0.15.0)**:Agent 可搜索已保存的工作,读取当前主张或时间线,并分页核对来源。监督者应用开关及 Runtime 分配同时控制发现和调用,旧会话也受限制。Model、本地 Harness、本地与远程 OpenCode/Continue 共用桌面读取入口;查询不调用模型,不以较新回顾推断替代关系。跨 scope 事实复用及 `as_of` 仍待实现,详见[设计与验证](./docs/features/conversation-supervision/story-graph-mcp-design.md)。 - [ ] **可视化受控工作流**(规划中):提供版本化 DAG、条件分支、审批、取消和恢复,执行节点继续经过 Main Runtime 边界。 - [ ] **统一 Run Graph 与回放**(规划中):关联任务、Subagent、模型、知识、工具审批、用量和成果,支持失败定位、重试和脱敏导出。 @@ -153,7 +154,8 @@ ### 开源、构建与发布 -- 当前 Desktop 候选为 `0.15.2`,Agent 候选为 `0.15.0`,OpenCode 固定为 `1.18.29`、Continue 为 `1.5.47`;正式发布状态以独立发布渠道为准。 +- 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.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/docs/development/release-preparation-0.15.3.md b/docs/development/release-preparation-0.15.3.md new file mode 100644 index 00000000..fd1999f8 --- /dev/null +++ b/docs/development/release-preparation-0.15.3.md @@ -0,0 +1,36 @@ +# Desktop 0.15.3 发布准备 + +日期:2026-09-28。用户确认沿用双远端推送、精确提交 CI 和生产构建通过后自动打标签的流程; +本次仅发布 Desktop 0.15.3,已发布 Agent 0.15.0 保持不变,不构建 LoongArch。 + +## 范围 + +- 已发布基线:`v0.15.2`,提交 `47ba54f47db4f22f69375310925eedab020b3cf0`。 +- 本轮已核对 15 个提交,截止 `86347af0b1cc8726c1166b3f9fa3d7f12a0cc5e3`。 + 包含手动压缩、请求级工具授权、取消/失败状态、聊天/笔记重复工作、 + 侧栏与工作栏布局、打包依赖精简。起始工作区干净。 +- Office 同会话实时编辑仅更新需求与验收设计,不计入交付能力。 +- `package.json`、lockfile 两处 Desktop 版本统一为 0.15.3。 + 已发布 0.15.2 与 Agent 0.15.0 的正文保持不变;新双语说明单独追加。 +- 两份 FEATURES 对照实现更新手动压缩、状态反馈、搜索、箭头方向及发布状态。 + 不用局部 Markdown 基准宣称整体渲染性能提升,不提前承诺跨平台安装包缩小比例。 + +## Agent 与验证边界 + +`src/agent-daemon`、`src/main/remote-agent`、Agent 和 Runtime 锁在本轮未变。 +授权修复属于 Desktop 的 `KnowledgeMcpGateway`:请求有效期间不再按固定十分钟撤销, +取消和清理继续撤销;不修改远程工具通道或部署包,不需要重发 Agent 0.15.0。 +手动直连压缩仅用于本地文本会话,UI 与 IPC 均排除 SSH/远程直连入口。 + +开发期证据分别见[直连模型进度](../features/direct-model-agent/progress.md)、 +[导航进度](../features/application-tool-navigation/progress.md)和 +[性能基准](../roadmap/product-performance-experience-improvement-plan.md)。 +开发期全量曾报告侧栏和笔记 Electron 用例失败,不把这些历史结果计为本候选通过。 +本轮 `npm run typecheck`、`npm run lint`、`npm run release:notes:verify` 通过。 +网关、Obsidian 授权、桌面资源与 DS 打包、手动压缩真实 Electron 生产链路共 6 文件: +**85 通过、1 跳过**。跳过的是 Windows 不适用的 POSIX 符号链接用例。 +压缩测试使用本机 HTTP fixture,不冒充外部模型调用;本轮没有新增付费模型请求。 +沿用用户确认的直接推送等待 CI 流程,完整测试及生产构建以精确候选 CI 为发布门槛。 +不进行本地生产构建、打包或安装包启动。 + +schema 保持 48;从更早版本升级前备份完整数据库及相邻 `notes/` 目录。 diff --git a/package-lock.json b/package-lock.json index 13cb6ab2..e6211e4b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "goodbuddy", - "version": "0.15.2", + "version": "0.15.3", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "goodbuddy", - "version": "0.15.2", + "version": "0.15.3", "license": "0BSD", "dependencies": { "@agentclientprotocol/sdk": "0.25.1", diff --git a/package.json b/package.json index 3ccf96ed..56b44bd1 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "goodbuddy", - "version": "0.15.2", + "version": "0.15.3", "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 b32872eb..d21059ec 100644 --- a/resources/release-notes.json +++ b/resources/release-notes.json @@ -1,6 +1,46 @@ { "formatVersion": 1, "releases": [ + { + "version": "0.15.3", + "releasedAt": "2026-09-28", + "notes": { + "zh-CN": { + "highlights": [], + "features": [], + "fixes": [ + "**恢复直连模型手动压缩**:本地直连文本模型现在可使用“压缩上下文”,即使自动压缩已关闭或尚未达到触发阈值。摘要随会话保存并用于后续对话,同时保留最近轮次和完整历史;图像模型及远程直连入口不在本次范围内。", + "**长请求不再丢失工具授权**:修复请求仍在执行时,知识、笔记、浏览器、配置及自定义 MCP 等工具在十分钟后失去访问权限的问题。授权随当前请求保持有效,取消或结束后仍会撤销,不改变 Ask 和 Execute 的权限边界。", + "**区分取消和失败,避免重复提示**:请求取消或失败时保留已有回复,并只显示一次对应状态;取消采用中性提示,不再显示为错误。历史恢复保留终止状态,只有能恢复输入时才提供“重新编辑”。", + "**减少聊天与笔记启动的重复处理**:置顶会话不再重复扫描附件,未变化的消息和附件引用不再重复写入,笔记启动复用正文检查结果。流式回复保留实时 Markdown、公式与代码显示,不以延迟富文本换取速度,也不宣称整体渲染耗时已显著下降。", + "**侧栏搜索与快捷键提示更清楚**:“新建对话”和可展开搜索共用一行,应用与设置入口、分隔线和滚动条保持一致布局。输入框提示只显示已成功注册的快捷键,设置保存后及时更新,较晚返回的启动信息不会恢复已关闭的提示。", + "**笔记和工作栏操作更紧凑**:笔记采集的按钮靠右排列,范围说明按需查看,输入校验贴近对应字段;窄窗口中的保存按钮不再拉伸。文件差异操作与路径分组,浏览器前往按钮使用图标并保留提示和可访问名称。", + "**精简桌面安装包内容**:已打入界面产物的依赖不再重复作为运行依赖分发,DS Web 资源排除类型声明、调试映射和调试符号。保留运行资源与许可证,减少重复内容和散落文件,具体安装包大小以各平台发布资产为准。" + ], + "notices": [ + "本次仅更新 Desktop,继续使用已发布的 Agent **0.15.0**,无需为本版重新安装 Agent。", + "手动压缩会调用所选摘要模型,可能产生费用。数据库仍为 schema 48;从旧版升级前请备份完整数据库和相邻 `notes/` 目录。" + ] + }, + "en-US": { + "highlights": [], + "features": [], + "fixes": [ + "**Restore manual compaction for direct models**: Local direct text-model conversations can now use Compact context even when automatic compaction is disabled or its threshold has not been reached. Summaries are saved with the conversation and reused in subsequent requests while recent turns and full history remain available; image models and remote direct-model entry points are outside this change.", + "**Keep tool access during long requests**: Fixes active requests losing access to knowledge, notes, browser, configuration, and custom MCP tools after ten minutes. Authorization now lasts for the current request and is still revoked on cancellation or completion, without changing Ask or Execute permission boundaries.", + "**Distinguish cancellation from failure without duplicate notices**: Cancelled and failed requests retain existing replies and show a single terminal status; cancellation uses neutral feedback rather than an error. Restored history preserves that status, and Edit again is offered only when the input can be recovered.", + "**Avoid redundant chat and note startup work**: Pinning conversations no longer rescans attachments, unchanged messages and attachment references avoid repeat writes, and note startup reuses body inspection results. Streaming replies retain live Markdown, math, and code rendering without delaying rich text or claiming a proven overall rendering speedup.", + "**Clearer sidebar search and shortcut hints**: New conversation and expandable search share one row, with consistent Apps and Settings entries, dividers, and scrollbars. Composer hints show only successfully registered shortcuts, reflect saved settings, and cannot be restored by a late startup response after being disabled.", + "**More compact note and workbar actions**: Note capture uses right-aligned actions, on-demand scope help, and field-specific validation; Save buttons no longer stretch in narrow windows. File-diff actions are grouped with their path, and the browser Go button uses an icon while retaining its tooltip and accessible name.", + "**Trim desktop package contents**: Dependencies already bundled into the interface are no longer duplicated as runtime dependencies, and DS Web resources exclude type declarations, source maps, and debug symbols. Runtime assets and licenses remain included, reducing duplicate content and loose files; final sizes are listed with each platform's release assets." + ], + "notices": [ + "This is a Desktop-only update and continues to use published Agent **0.15.0**. Reinstalling the Agent is not required for this release.", + "Manual compaction calls the selected summary model and may incur charges. The database remains on schema 48; back up the complete database and adjacent `notes/` directory before upgrading from older versions." + ] + } + } + }, { "version": "0.15.2", "releasedAt": "2026-09-28",