release: prepare Desktop 0.15.2 and Agent 0.15.0
Cross-platform packages / Validate source (push) Canceled after 0s
Cross-platform packages / Authorize desktop packaging (push) Canceled after 0s
Cross-platform packages / linux arm64 (push) Canceled after 0s
Cross-platform packages / macos arm64 (push) Canceled after 0s
Cross-platform packages / windows arm64 (push) Canceled after 0s
Cross-platform packages / linux x64 (push) Canceled after 0s
Cross-platform packages / macos x64 (push) Canceled after 0s
Cross-platform packages / windows x64 (push) Canceled after 0s
Cross-platform packages / Publish GitHub and OSS release (push) Canceled after 0s
GoodBuddy Agents / Validate Agent source (push) Canceled after 0s
GoodBuddy Agents / Build darwin arm64 Agent (push) Canceled after 0s
GoodBuddy Agents / Build linux arm64 Agent (push) Canceled after 0s
GoodBuddy Agents / Build linux x64 Agent (push) Canceled after 0s

Add bilingual notes for Story Graph reads, full follow-up editing, note capture, diagnostics and website updates. Preserve published 0.15.1 history and include reviewed Host/cloud plans as explicitly unimplemented documentation. Agent remains 0.15.0 and requires Desktop 0.15.2. Typecheck, lint, notes and website validation passed; current-source Host runtime checks made four real model requests. User requested full-suite validation in CI rather than waiting for the interrupted local run.
This commit is contained in:
mesalogo
2026-09-28 12:55:10 +08:00
parent 0cdf04261a
commit 76e781a0a8
15 changed files with 325 additions and 16 deletions
+10 -1
View File
@@ -3,15 +3,24 @@
本功能负责 SSH Host 管理、Host Key、远程环境安装、GoodBuddy Agent、签名 Runtime、
远程 Workspace 和 Ask/Execute 生产路径。
2026-09-28 新增待实现方向:主机管理迁入应用中心,与“云环境管理”成为同级应用;
云平台发现已有实例,接入执行时复用 SSH 主机。产品范围见 [PRD](./prd.md)。
本文中的平台连接指云账号或私有化 API 连接,云实例指平台中的虚拟机,主机指 GoodBuddy
保存的 SSH 连接目标;三者不等同。现有实现和历史验收仍以下列技术文档为准。
## 文档导航
| 文档 | 权威职责 |
| --- | --- |
| [产品需求](./prd.md) | 应用迁移、六平台适配范围、分期与产品验收;待实现 |
| [功能逻辑](./logic-design.md) | 平台、实例、主机关系,独立状态、依赖和删除规则;待实现 |
| [界面设计](./ui-design.md) | 独立工作页面、主机列表与详情、云实例接入和响应式交互;待实现 |
| [远程主机与 Agent 技术设计](./technical-design.md) | 当前产品语义、Agent、Runtime、Workspace、协议、生命周期和验证事实 |
| [远程环境准备技术设计](./environment-provisioning-technical-design.md) | Host 下载、GoodBuddy 传输、安装事务、更新和恢复边界 |
| [执行清单验证记录](./runtime-checklist-validation.md) | 远程 OC/CN 原生清单、CN 开发包安装、取消及断线重放的实测结果与剩余验收 |
现有文档包含产品、功能逻辑和进度事实,后续修改远程功能时再按标准职责拆分。
既有技术文档保留当前 SSH 行为及历史进度;新增 PRD、逻辑和 UI 文档只定义本次待实现范围,
不替代已有验证事实。验收场景随 PRD 维护,本次不单独创建 User Stories 或进度占位文档。
跨会话共享 OpenCode 进程、ACP 连接与模型桥的实现设计,见
[Runtime 进程复用技术设计](../assistant-workbar/runtime-process-reuse-technical-design.md#6-ssh-opencode-与-agent)。
+50
View File
@@ -0,0 +1,50 @@
# 主机与云环境功能逻辑
状态:2026-09-28 设计,待实现。对应[产品需求 FR-RH-1 至 FR-RH-6](./prd.md),验收场景使用其中的 AC-RH 编号。
## 对象与关联
| 对象 | 所有权与关系 |
| --- | --- |
| 平台连接 | 云环境管理负责平台类型、账号或 API 端点、凭据引用与查询范围 |
| 云实例 | 以平台连接及该平台稳定资源标识定位,保留必要的账号、区域或私有化资源范围;不能仅靠名称或 IP 判定同一实例 |
| 主机 | 主机管理负责 SSH 地址、账号、认证、Host Key 和执行环境;可选关联云实例 |
| 远程项目 | 继续引用主机与远端目录,执行空间保持 local / ssh |
首版一个云实例最多关联一个受管主机,一个主机最多关联一个云实例;一个主机可被多个项目引用。重复导入显示已关联主机;关联已有主机须由用户选择并验证连接目标,不能根据相同 IP 自动合并。平台凭据和 SSH 凭据分别管理,不复制到项目中。(FR-RH-3、FR-RH-5;AC-RH-3)
## 导入与状态
发现实例后先展示平台返回的事实。用户选择“接入主机”,选定地址和认证配置,复用主机验证流程,成功后保存主机与关联;失败或取消不留下半成品主机,也不改变已有有效关联。保存成功不自动安装环境,由用户显式触发。(FR-RH-2、FR-RH-3;AC-RH-2 至 AC-RH-4)
| 状态维度 | 来源与显示规则 |
| --- | --- |
| 实例运行状态 | 平台 API 查询结果;查询失败显示错误及上次成功时间,不能推断为已删除 |
| SSH 连通性 | 所选主机的连接检查;未检查、成功、失败与检查时间独立显示 |
| 执行环境 | Agent / Runtime 实际检查和安装结果;版本匹配不等于环境健康 |
进入主机页面只读取本地记录,不逐台连接 SSH。云资源刷新只查询平台 API,不顺带验证 SSH 或安装环境。变更连接目标后按现有规则重新验证,不用旧结果宣称新目标就绪。平台报告实例消失时保留主机及项目,显示关联异常并允许用户处理,不自动清理数据。(FR-RH-4;AC-RH-1、AC-RH-4)
## 导航与能力依赖
常驻只控制导航捷径,取消常驻不停止任务、禁用能力或删除数据。应用中心的主机管理设置承载共享远程能力启用状态,迁移保留原 `remoteProjectsEnabled` 值;旧设置不再维护第二个独立开关。云环境应用的启用单独控制云管理入口和新平台操作。(FR-RH-1、FR-RH-4、FR-RH-6)
| 操作 | 目标行为 |
| --- | --- |
| 打开云环境但远程能力未启用 | 允许配置平台及查询实例;接入主机时提供就地启用,保存成功后继续 |
| 取消主机常驻 | 云环境仍可引用主机,已有关联和运行不变 |
| 关闭共享远程能力 | 沿用现有远程项目停用语义,保留主机、凭据和项目;云资源浏览仍可用,依赖操作显示原因与启用入口 |
| 关闭云环境应用 | 保留平台配置和主机关联;已接入的 SSH 主机及远程项目继续可用 |
| 切换业务页面 | 保留搜索、选择与正在进行的操作状态,遵守未保存编辑离开检查 |
能力启用与校验须同时覆盖 UI 和 Main,不能仅移动开关或隐藏按钮。(AC-RH-5)
## 删除语义
移除主机沿用现有本地引用项目及关联数据删除确认,移除成功后清除云实例到该主机的关联,实例重新显示为未接入。操作不连接远端删除目录,也不调用实例销毁 API。
移除平台连接前列出关联主机;确认后移除平台凭据及关联,保留 SSH 主机、凭据和项目,使其继续作为独立主机使用。远端实例生命周期操作属于后续功能,须在云环境页面独立定义影响及结果。(FR-RH-5;AC-RH-6)
## 完整性与待定事项
本文覆盖导航迁移、发现与导入、状态来源、依赖关闭、重复关联及删除。各平台适配顺序、支持版本和验收环境待确认;私钥与私网连接方案属于后续技术选型。实例创建、销毁、网络编排及批量操作不在首版范围,不能从本设计推导其行为。
+62
View File
@@ -0,0 +1,62 @@
# 主机管理与云环境管理产品需求
状态:2026-09-28 确认产品方向,待实现。本次仅更新文档;现有 SSH 实现与验证范围见[技术设计](./technical-design.md)。
## 目标与范围
主机管理从设置中心迁入应用中心,在主内容区提供独立工作页面。云环境管理作为同级应用,管理公有云及私有化平台中的虚拟机,接入远程执行时复用主机管理。
首版围绕已有虚拟机完成“连接平台 → 发现实例 → 接入主机 → 验证 SSH → 安装远程环境 → 创建项目 → 执行任务”。先交付主机管理入口迁移与页面调整,再分批接入平台适配器。
| 平台范围 | 接入目标 |
| --- | --- |
| AWS | 已有 EC2 实例 |
| Azure | 已有 Virtual Machines |
| 阿里云 | 已有 ECS 实例 |
| 腾讯云 | 已有 CVM 实例 |
| VMware | 先聚焦 vCenter / vSphere 管理的虚拟机 |
| ZStack | 已有云主机 |
六个平台纳入首版适配计划,逐批实现和验收,不把手工 SSH 接入计为平台 API 已适配。候选顺序为阿里云、腾讯云加一个私有化平台,再补其余平台;私有化平台优先级按真实客户与测试环境确定,该顺序尚未锁定。各平台支持版本、认证方式和可验收环境须在对应适配器开发前确认。
首版不包含自动创建、销毁虚拟机、网络编排、镜像管理和计费管理;已有实例启停作为后续增量。现有云服务器仍可手工通过 SSH 接入,受网络、认证和远端操作系统支持范围限制。
## 功能要求
### FR-RH-1 应用入口
应用中心分别提供“主机管理”和“云环境管理”,打开独立主内容区页面,支持排序与常驻。应用中心只负责访问和通用应用设置,主机和云资源操作位于业务页面。迁移后移除设置中心内的重复主机管理表单;旧入口可提供跳转。
### FR-RH-2 主机工作页面
主机作为全局资源,提供可搜索、按来源及状态筛选的列表与所选主机详情。保留现有新增、编辑、验证、Host Key、凭据管理、安装、更新、重装及删除能力。详情包含概览、连接配置、执行环境和关联项目。来源为手工添加或关联平台,不要求手工主机填写云字段。
### FR-RH-3 云平台连接与已有实例接入
一个平台连接管理多台实例。用户可先浏览云资源,再选择实例创建主机或关联已有主机。实例接入须选定可达地址和认证方式,经 SSH 验证后才成为可用主机;仅查询到实例不代表接入成功。认证或连接失败保留平台及实例上下文,允许修正后重试。
### FR-RH-4 依赖与状态
云环境浏览不要求存在主机;安装环境、创建远程项目和远程执行复用主机能力。云实例运行状态、SSH 连通性、执行环境就绪状态独立呈现,并显示检查时间或未检查状态。启用、常驻及共享远程能力的规则由[功能逻辑](./logic-design.md)定义。
### FR-RH-5 资源关联与删除
已接入实例可跳转至对应主机,主机可回到平台实例。移除本机主机记录、移除平台连接与销毁云实例是独立动作,不能相互隐式触发。主机删除沿用现有引用项目影响确认及本地数据清理语义,明确不会删除远端内容。
### FR-RH-6 迁移与接入条件
升级保留已有 Host ID、凭据、Host Key、项目引用、功能启用状态及原有应用导航偏好。私钥认证和私网连接路径属于云接入前的补齐项;在对应能力实际交付前,页面必须说明可用认证与网络条件,不能将平台 API 可达等同于 SSH 可达。具体私钥保存方式和跳板连接方案另行技术设计,不因本文而宣称已经支持。
## 产品验收
| 场景 | 操作与预期结果 |
| --- | --- |
| AC-RH-1 已有用户升级 | 打开主机管理,原有主机及项目引用可用;导航排序和原启用偏好保留,不自动连接远端 |
| AC-RH-2 主机维护 | 从应用中心新增主机,完成验证、显式安装环境并创建远程项目;取消或失败可重试,页面跳转不重复安装 |
| AC-RH-3 云实例导入 | 已配置平台连接时发现并选择实例,验证后创建或关联主机,进入同一主机详情;重复导入定位已有记录 |
| AC-RH-4 网络或认证失败 | 实例运行中但 SSH 不通或认证失败时,分别显示实例状态和连接错误;不显示执行就绪,不安装环境 |
| AC-RH-5 导航与依赖 | 取消主机常驻不影响云环境或执行能力;云环境接入流程可就地启用所需远程能力,无须寻找设置开关 |
| AC-RH-6 移除关联资源 | 删除主机前列出受影响的本地项目;完成后云实例仍存在,云列表显示未接入。移除平台连接不删除主机和远端资源 |
| AC-RH-7 页面与权限 | 窄窗口和键盘可完成列表、详情和返回;平台账号仅有查询权限时仍可发现和导入实例,不要求实例生命周期权限 |
每个平台必须通过真实 API 发现已有实例,并完成 SSH、环境安装、项目创建和真实任务执行的生产路径验收,才可标记该适配器已交付。UI、模拟响应和单独 SSH 测试不能替代平台验收。
@@ -55,6 +55,9 @@ Agent `0.11.23` 提供,显式请求期限与取消仍有效。当前问答源
## 产品语义
本节记录现有实现。2026-09-28 确认的应用中心迁移与云环境管理目标见
[PRD](./prd.md)、[功能逻辑](./logic-design.md)及[UI 设计](./ui-design.md),尚未接入源码。
远程 Host 与项目能力默认关闭。用户在“设置 > 平台功能”的独立
“远程项目”页签启用开关后,Renderer 才显示 SSH Host 管理、托管 SSH 项目创建和已保存
远程项目;Main 在 IPC 边界执行同一开关校验,避免隐藏界面被绕过。关闭开关不删除 Host、
@@ -73,6 +76,30 @@ profile 和凭据作为有界、逐 Prompt 的控制消息交给 Agent;该凭
## 组件
### 应用迁移与云平台接入计划(待实现)
实现顺序对应 FR-RH-1 至 FR-RH-6:
1. 从 `SshHostsSettingsSection` 提取独立主机工作页面,接入 `ApplicationCenter` 和 `App`
页面导航;复用现有 SSH 服务、验证弹窗、安装操作及通知,完成列表与详情改版。
2. 扩展应用标识、排序、常驻和配置读取。读取已发布四应用配置时保留原相对顺序及偏好,
新入口追加且默认不常驻;云管理初始关闭,共享远程能力继承 `remoteProjectsEnabled`。
配置工具公开契约、默认值、持久化、Preload 和 Main 校验同步修改,不能仅扩展 Renderer。
3. 按功能逻辑整理能力依赖,将共享远程开关的设置入口迁入应用中心。保留旧值、Host ID、
加密凭据、Host Key 与项目引用;不为页面迁移重建主机或修改 Agent 协议。
4. 云平台适配器在 Main 中查询真实 API,凭据复用加密存储;Renderer 仅接收脱敏配置、
实例快照与操作结果。采用满足首批平台发现和导入的最小接口,不预建资源编排框架。
平台连接和实例关联采用独立记录,SSH 主机仍为执行目标,项目继续使用 `local / ssh`。
5. 确认首批平台版本及测试环境,补齐需要的私钥和私网连接路径,逐个验收发现、导入、
SSH 验证、环境安装和真实任务执行。具体存储字段、迁移及适配 API 在实施时细化;
变更已发布存储前遵守[数据库迁移规范](../../development/database-migrations.md)。
验证覆盖已有用户配置读取、重复实例关联、状态来源、平台查询失败、SSH 不通、删除影响、
能力依赖与页面离开。平台 API 测试与原有远程 Agent 测试分别记录;导航迁移通过不代表
云平台适配完成。新增能力交付前,本文件以下 SSH 组件及历史记录继续描述现有实现。
### 现有远程执行组件
桌面保存托管 SSH 子任务事件时,共用
[执行记录差量存储](../assistant-workbar/execution-history-storage.md)。
Agent transcript 与公共 Runtime 事件不改变;桌面的来源去重、消息投影事务和恢复序号
+44
View File
@@ -0,0 +1,44 @@
# 主机管理与云环境界面设计
状态:2026-09-28 设计,待实现。范围见[PRD](./prd.md),状态及依赖遵守[功能逻辑](./logic-design.md)。视觉、页面壳层和组件遵守[统一界面设计系统](../../../UI-DESIGN.md)。
## 应用入口
应用中心新增“主机管理”和“云环境管理”两个同级应用。应用菜单、管理应用中的“打开”和常驻侧栏入口进入同一主内容区页面,关闭来源菜单或管理 Modal,不在应用中心 Modal 内管理主机。业务页面使用全局范围标识;打开页面不切换当前项目、不连接主机或执行安装。
通用启用、常驻和排序遵守[应用导航设计](../application-tool-navigation/ui-design.md)。设置中心移除主机操作表单,保留必要的迁移跳转;共享远程能力开关归入主机管理的应用设置。Agent 包下载、导入等现有全局包管理暂留原位置,主机执行环境页提供相关入口,不复制包状态存储。
## 主机页面
页面使用共享 `dashboard` 壳层。标题区显示“主机管理”、全局范围和主操作“添加主机”。工具栏提供名称或地址搜索、来源筛选、连接状态筛选。列表显示名称、地址、来源、SSH 状态和执行环境摘要,避免每行展开安装表单。
宽窗口使用列表与详情两栏,点击主机只更新详情,不重排列或滚动列表。详情使用共享 `PageTabs`:
| 页签 | 内容与操作 |
| --- | --- |
| 概览 | 名称、来源、系统架构、独立状态及检查时间;关联云实例时提供“查看云实例” |
| 连接配置 | 地址、端口、用户名、认证配置状态、Host Key;编辑与重新验证复用既有流程,不回显凭据 |
| 执行环境 | Agent / Runtime 版本、检查结果、安装进度;保留安装、更新、重装及既有下载方式选择 |
| 关联项目 | 所有引用该主机的项目,明确归档状态;提供打开项目和创建远程项目 |
云关联字段按需显示,手工主机不出现必填平台、区域和实例 ID。删除主机置于次要操作,确认内容列出本地项目影响及远端资源保留范围。
未选择主机时提示选择列表项;没有主机时提供添加入口;搜索无结果时提供清除筛选。连接失败、安装失败和数据读取失败分别显示原因与对应重试操作。用户主动检查所选主机时才连接远端,不能因列表渲染而检查全部主机。
## 云环境页面
标题区显示“云环境管理”、全局范围及“添加平台连接”。通过平台连接和适用的区域或资源范围筛选实例,列表展示名称、平台、位置、实例状态、地址和接入状态。刷新明确针对当前查询范围,并显示上次成功时间。
未接入实例提供“接入主机”,进入地址与认证选择,再完成现有验证向导。已接入实例提供“打开主机”;关联已有主机时可搜索选择,明确展示目标后验证。两个页面之间往返恢复来源筛选、所选记录和滚动位置。
实例运行、SSH 连接和环境就绪分别显示文字状态。只读平台账号可以查询实例并接入 SSH;权限不足时说明失败操作,不把整个平台笼统标为不可用。平台 API 可达但 SSH 不通时保留资源详情与修正连接的入口。
首版不展示尚未实现的创建、销毁或网络编排按钮。各适配器随真实能力交付,不能用不可操作的平台卡片代替接入功能。
## 响应式与交互
两栏无法满足共享最小宽度时改为单面板,选择主机进入详情并提供“返回主机列表”,返回恢复筛选、滚动和列表项焦点。页签可横向滚动,搜索与筛选换行,长地址和错误信息折行,页面不整体横向溢出。
列表项及操作使用语义按钮,提供可访问名称和可见焦点;页签沿用 `tablist`、`tab`、`tabpanel`、方向键及 Home/End。弹窗遵守共享焦点恢复及未保存编辑规则。通知使用全局应用通知,进行中的安装进度保留在对应主机,页面切换不重启操作。
验收对应 AC-RH-1 至 AC-RH-7,覆盖浅深主题、窄窗口、键盘操作、空列表、长名称、认证失败及安装取消;具体实施记录需附真实 UI 验证结果。