feat: add app management, local inference controls, and task statistics

This commit is contained in:
mesalogo
2026-09-18 08:20:45 +08:00
parent 6dd6297414
commit bbae893c45
103 changed files with 7962 additions and 1490 deletions
@@ -4,9 +4,9 @@
| 项目 | 内容 |
| --- | --- |
| 状态 | 设计中 |
| 版本 | 0.2 |
| 日期 | 2026-09-08 |
| 状态 | 应用中心与本机推理已接入源码,整体验收待完成 |
| 版本 | 0.4 |
| 日期 | 2026-09-17 |
| 关联 PRD | [应用导航与系统工具入口 PRD](./prd.md) |
| 关联逻辑 | [功能逻辑设计](./logic-design.md) |
@@ -29,47 +29,50 @@
验收:
- Given 用户隐藏任意内置应用
- Given 用户隐藏任意可选内置应用
- When 用户查看主导航
- Then “运行记录”仍显示在应用区之后
- And 设置中没有隐藏、卸载或固定运行记录的选项
### US-A2 从固定入口进入设置
作为用户,我希望设置入口始终位于侧栏底部,以便快捷工具状态变化时仍能进入配置。
作为用户,我希望设置入口始终位于侧栏底部,以便应用状态变化时仍能进入配置。
验收:
- Given 任意主页面和任意侧栏宽度
- When 用户查看侧栏底部
- Then 设置按钮保持可见且点击区域不与工具按钮重叠
- Then 设置与应用中心为始终可见的独立按钮,点击区域不重叠
- And 点击后继续遵守未保存内容的离开确认
## 3. Epic B:管理应用入口
本节的启用、常驻、排序和共同设置仅适用于魔法笔记、本机推理;知识库和智能心跳始终启用并固定显示。原知识库/智能心跳禁用场景已退役,保留故事 ID,并在 US-B6、US-B8 中以固定可用不变量替换验收。
### US-B1 识别完整应用
作为用户,我希望魔法笔记、知识库和智能心跳显示在主导航,以便知道它们会打开完整页面。
验收:
- Given 对应功能已启用且应用设置为显示
- Given 固定应用,或已启用且常驻的可选应用
- When 用户打开主侧栏
- Then 应用位于“当前对话”和“运行记录”之间
- And 点击应用在主内容区打开对应一级页面
- And 原有待办或建议徽标继续显示
- And 点击知识库、智能心跳或魔法笔记在主内容区打开对应一级页面;本机推理打开保留底层工作区的 Modal,验收见 US-F3
- And 原有待办或建议徽标按已保存的显示设置继续显示
- And 当前对话之后依次固定显示知识库、智能心跳,再显示可选应用;两个固定应用不参与启用、常驻或排序
### US-B2 隐藏低频应用
### US-B2 取消低频应用常驻
作为用户,我希望隐藏不常用的内置应用,以便缩短主导航,但保留已有数据。
验收:
- Given 应用已有内容
- When 用户关闭该应用的“显示在侧边栏”Switch
- Then 主导航不再显示该应用
- Given 应用已启用且已有内容
- When 用户关闭该应用的“常驻左侧菜单”Switch 并保存成功
- Then 主导航不再显示该应用,当前已打开页面保持不变
- And 应用数据、计划和业务启停状态不变
- And 用户可从同一设置位置恢复显示
- And 用户可从应用中心打开该应用,或从同一设置位置恢复常驻
### US-B4 保留功能启停语义
@@ -78,35 +81,129 @@
验收:
- Given 魔法笔记功能已启用
- When 用户只隐藏其侧栏入口
- When 用户只取消其侧栏常驻并保存成功
- Then 笔记及待办处理能力继续按原设置工作
- And 再次显示时恢复原页面和数据
- And 重新常驻只恢复入口,不自动导航;再次打开时保留原页面状态和数据
### US-B5 恢复显隐保存失败
### US-B5 保持设置保存一致
作为用户,我希望入口设置保存失败时继续使用原导航,以免界面状态与实际设置不一致。
作为用户,我希望应用设置保存期间和失败后各入口保持一致,以免界面与实际配置不符。
验收:
- Given 应用显隐更新尚未完成
- When 用户切换“显示在侧边栏”Switch
- Then 三个应用显隐 Switch 在请求期间暂时不可操作
- And 更新成功后主导航立即变化
- And 更新失败时 Switch 和主导航恢复原状态并显示可重试错误
- Given 配置已加载且没有待确认的更新
- When 用户修改启用、常驻、顺序或魔法笔记配置
- Then 更新串行保存,在请求确认前,应用中心、应用页及全局设置中修改这组配置的所有控件均暂不可操作
- And 各处保留最后确认值,不提前改变导航、业务可用性、徽标或会话入口
- When 保存成功
- Then 各入口同时采用确认配置,后续修改基于该配置提交
- And 工具配置写入持久化成功后也同步各入口;较新的确认快照不被迟到的读取或保存响应覆盖
- When 关闭后重新打开应用中心
- Then 刷新最新配置期间锁定修改,读取失败保留重试入口,不允许用旧快照提交
- When 保存明确失败
- Then 各入口仍使用相同的最后确认配置,操作处显示可重试错误,保留焦点和编辑上下文,不重复通知
- Given 响应中断,无法确认保存结果
- When 用户查看设置
- Then 显示正在确认保存结果,重读权威配置成功后才恢复修改;读取失败可重试读取,不自动重发变更或写回旧值
### US-B6 从应用中心访问内置应用
作为用户,我希望从固定应用中心找到应用,以便未常驻或已关闭的应用仍有访问和恢复入口。
验收:
- Given 用户位于任意一级页面,包括全部可选应用均已关闭的情况
- When 点击侧栏底部应用中心
- Then 向上打开轻量锚定菜单,无模态遮罩;只列已启用应用,包括固定知识库、智能心跳和已启用的可选应用,不按打开历史或常驻筛选
- When 点击菜单中的应用行
- Then 菜单关闭;知识库、智能心跳和魔法笔记经既有离开检查在主内容区打开,本机推理打开保留底层工作区的 Modal,不自动常驻
- When 点击菜单底部“管理应用”
- Then 菜单关闭并打开既有管理 Modal,可按名称或用途搜索全部内置应用,包含未常驻及已关闭的可选应用
- And 知识库和智能心跳行只提供“打开”,没有通用设置、启用、常驻或排序控件;原工作区实际配置及心跳单条计划 enabled 不变
- And 首期没有商店、推荐、安装、市场 URL、YAML 操作或系统工具入口
- Given 应用已启用但未常驻
- When 用户选择打开
- Then 本机推理打开 Modal,底层内容无需离开;其余应用经既有未保存内容离开检查进入页面,不自动常驻
- Given 应用已关闭
- When 用户在管理 Modal 中找到该应用
- Then 显示关闭状态,保留禁用的“打开”按钮,可通过“设置”进入共同设置重新开启
- Given 搜索无匹配结果
- Then 显示无结果及清除搜索入口,搜索不修改启用和常驻
- Given 配置正在加载或读取失败
- Then 中心保留加载状态或重试入口,不用默认值冒充已保存配置
### US-B7 保存常驻及应用顺序
作为用户,我希望常驻和顺序按设备保存,以便重启后仍使用熟悉的导航。
验收:
- Given 首次使用且未配置导航偏好
- Then 知识库、智能心跳固定在前,可选应用默认均常驻,顺序为魔法笔记、本机推理;只按启用与常驻过滤可选项
- When 用户修改常驻,或通过拖动、键盘可操作的上移和下移按钮排序并保存成功
- Then 仅可选应用顺序变化,知识库、智能心跳、当前对话、运行记录及底部固定入口不参与排序,重启后恢复保存结果
- And 管理 Modal 编辑两个可选应用的完整顺序,上下移动以该顺序的相邻项为目标,固定应用不作为移动目标
- Given 应用已关闭或取消常驻
- When 用户重新开启或常驻
- Then 按保存顺序恢复入口;关闭或取消常驻不删除顺序,已关闭应用仍可管理常驻偏好
- Given 保存失败
- Then 按 US-B5 保留原常驻和顺序,在操作处提供重试并保留键盘焦点
- Given 没有可见的可选应用或仅有一个
- Then 固定入口和应用中心仍可用,没有移动目标的排序按钮禁用,不产生空白占位项
### US-B8 独立控制启用与常驻
作为用户,我希望关闭应用时保留数据和导航偏好,并能明确知道哪些业务操作已不可用。
验收:
- Given 应用已启用
- When 仅取消常驻并保存成功
- Then 业务能力和后台操作保持原状,仍可从应用中心打开
- Given 知识库已有会话关联,智能心跳已有启用或暂停的计划
- When 用户关闭全部可选应用或修改其常驻与顺序
- Then 知识库和智能心跳始终启用,侧栏位置稳定,页面可打开;知识控件及关联保持可用,请求遵守知识库自身规则,心跳单条计划 enabled 原值不变
- And 原“禁用知识库/智能心跳后隐藏业务入口”的验收由上述不变量替换;不存在这两个应用的应用级关闭状态或恢复设置页
- Given 关闭的应用页面或本机推理 Modal 仍打开
- Then 原位置显示“应用已关闭”和前往应用设置的恢复入口,保留草稿及页面状态,阻止新业务操作而不强制跳转
- When 用户重新开启并保存成功
- Then 仍停留的页面恢复可用;已离开时不自动导航,不重放或补发旧请求和任务
- And 保留原常驻及顺序,未常驻应用不自动常驻
- Given 启用变更保存失败
- Then 按 US-B5 保留原业务状态和入口,不执行关闭或恢复副作用
### US-B9 迁移魔法笔记共同设置
作为魔法笔记用户,我希望从各入口编辑同一份设置,并在升级后保留已有选择。
验收:
- Given 用户从应用中心或笔记页面进入笔记设置
- Then 定位到同一共同设置页,使用同一表单和配置,不保留重复控件或“显示魔法笔记入口”开关
- And 全局设置不再显示魔法笔记页签或跳转入口,已有配置值和业务数据保持不变
- And 启用、常驻、显示未完成待办数量分别控制业务、导航和徽标;隐藏数量不修改待办
- Given 升级前已有明确保存的布尔值和评论选择
- When 迁移配置并重启
- Then 保留已有 `false`、评论单选值及业务数据,仅未配置的应用启用、常驻和笔记相关布尔项默认 `true`
- And 旧入口开关若实际控制笔记启用,保留其启用含义和原值,不将其改作常驻
- Given AI 评论方式或评论形式未配置
- Then 分别默认“即时”和“长评 + 要点”,均为单选,不同时启用所有模式
- When 任一入口修改配置并保存成功
- Then 应用中心、主导航、笔记页、会话及其他设置入口同步采用确认值;保存中和失败均遵守 US-B5
## 4. Epic C:使用系统工具
### US-C1 一键查看文件
作为本地工作用户,我希望点击左下角文件按钮后直接查看当前工作区文件。
作为本地工作用户,我希望从右侧工作栏查看文件,并保留工作区面板的目标模式。
验收:
- Given 当前项目有有效根目录
- When 用户点击文件按钮
- Then 助手工作栏展开
- And 聚焦默认存在且不可关闭的工作区单实例
- And 文件按钮通过选中状态表明该面板正在显示
- When 用户展开右侧工作栏并选择已有工作区 Tab,或从“+”选择文件
- Then 聚焦默认存在且不可关闭的工作区单实例,不创建重复实例;仅迁移或布局修复时补回缺失实例
- And 保留跟随或固定模式,跟随模式继续按工作栏规则更新上下文
- And 仅该实例 Tab 显示选中状态,焦点进入目录区域
### US-C2 处理无效工作区
@@ -116,67 +213,62 @@
- Given 工作区面板处于跟随模式
- And 当前项目和默认工作区均不可用
- When 用户点击文件按钮
- When 用户在右侧工作栏选择工作区 Tab 或从“+”选择文件
- Then 工作区面板仍打开
- And 面板说明目录不可用并提供选择或修复目录的入口
- And 应用不静默改用其他目录
- Given 工作区面板固定的目标已失效,即使当前项目或默认目录可用
- When 用户选择工作区 Tab
- Then 保留固定目标并显示该目标的修复状态,不回退到其他目录或切换为跟随模式
### US-C3 快速进入终端
作为本地工作用户,我希望点击终端按钮后进入当前执行空间的终端。
作为本地工作用户,我希望选择确切终端继续查看,并能通过“+”创建额外终端。
验收:
- Given 已有终端 Tab,包括绑定其他执行空间的终端
- When 用户选择其中一个 Tab
- Then 仅激活该确切实例,保留执行空间、目录及历史,不按当前项目查找最近匹配实例或重新绑定
- Given 已选 Tab 正在关闭、已退出、已中断或失败
- Then 保留其真实状态,不因选中而重建
- Given 当前执行空间已有正在启动或运行中的终端
- When 用户点击终端按钮
- Then 工作栏聚焦最近使用的匹配终端,不创建重复实例
- Given 当前执行空间没有终端
- When 用户点击终端按钮
- Then 创建一个绑定该执行空间的新终端
- When 用户从右侧工作栏“+”选择终端
- Then 每次创建绑定当前执行空间的额外实例,不复用或按目标去重
- Given 当前没有项目
- When 用户点击终端按钮
- Then 创建或聚焦使用本机 Home 的终端
- Given 当前执行空间只有已退出、已中断或失败的终端
- When 用户点击终端按钮
- Then 创建新终端并保留原终端的历史状态
- When 用户从“+”选择终端
- Then 创建使用本机 Home 的新终端,已有终端保持原目标和历史
### US-C4 使用远程项目终端
作为远程项目用户,我希望同一个终端按钮进入远程项目目录,以免误在本机执行命令。
作为远程项目用户,我希望新建终端绑定远程项目目录,以免误在本机执行命令。
验收:
- Given 当前项目绑定托管 SSH 执行空间
- When 用户点击终端按钮
- Then 创建或聚焦绑定该远程项目及其权威目录的终端
- When 用户从右侧工作栏“+”选择终端
- Then 创建绑定该远程项目及其权威目录的额外终端
- And 面板持续显示远程主机和工作目录
- And 连接失败时保留重连与诊断信息
- And 连接失败时保留远端目标、重连与诊断信息,不回退为本机终端
- When 切换当前项目后重新选择该终端 Tab
- Then 仍激活原远程实例,不重绑到新项目
### US-C5 打开受控浏览器
作为用户,我希望浏览器按钮打开 GoodBuddy 受控浏览器,以便查看与 Agent 相同的会话。
作为用户,我希望从右侧工作栏使用 GoodBuddy 受控浏览器,并按需创建独立页面。
验收:
- Given 浏览器面板跟随当前上下文且当前会话已有浏览器会话
- When 用户点击浏览器按钮
- Then 工作栏聚焦绑定当前 Conversation 的最近使用浏览器实例
- And 不打开系统默认浏览器或无意创建重复实例
- Given 现有浏览器实例都绑定到其他 Conversation
- When 用户点击浏览器按钮
- Then 工作栏创建并聚焦绑定当前 Conversation 的新浏览器实例
- Given 当前没有活动 Conversation
- And 已存在浏览器实例
- When 用户点击浏览器按钮
- Then 工作栏聚焦最近使用的浏览器实例并保持其目标
- Given 当前没有活动 Conversation
- And 不存在浏览器实例
- When 用户点击浏览器按钮
- Then 创建待选择目标的空实例
- Given 用户需要同一 Conversation 的另一个独立页面
- Given 已有浏览器 Tab,当前 Conversation 与其目标不同或没有活动 Conversation
- When 用户选择该 Tab
- Then 激活该确切实例,保留绑定目标、页面及导航状态,不重绑、重建或改选最近匹配实例
- Given 当前有活动 Conversation,无论是否已有匹配实例
- When 用户从工作栏“+”选择浏览器
- Then 每次创建拥有独立页面和导航状态的新实例
- And 同一 Conversation 内共享隔离登录上下文
- Then 每次创建绑定当前 Conversation 的额外实例,页面和导航状态独立,同一 Conversation 内共享隔离登录上下文
- Given 当前没有活动 Conversation,无论是否已有浏览器实例
- When 用户从“+”选择浏览器
- Then 创建待选择目标的空实例,不复用已有实例
- And 以上操作均使用 GoodBuddy 受控浏览器,不打开系统默认浏览器
### US-C6 查看本机资源
@@ -186,17 +278,26 @@
验收:
- Given 资源监控面板尚未打开
- When 用户点击左下角资源监控按钮
- When 用户从右侧工作栏“+”选择资源监控
- Then 助手工作栏创建并激活单实例资源监控面板
- And 页面显示整机 CPU、内存、磁盘读写及 GoodBuddy 桌面进程摘要
- And 页面每 2 秒更新一次,并用图表保留最近 5 分钟
- And 可见活动期间每 2 秒采样一次,前次请求未结束时跳过新请求,图表最多保留 150 个真实时间样本,连续采样约 5 分钟
- Given 资源监控实例已存在
- When 用户选择其 Tab 或再次从“+”选择资源监控
- Then 激活同一本机单实例,不新建重复面板
- When 用户切换到其他工作栏 Tab、收起工作栏、隐藏窗口或最小化窗口
- Then 资源监控停止请求新样本
- When 用户再次显示窗口并返回资源监控
- Then 首次采样建立区间指标基线,下一次采样开始显示 CPU 和磁盘 IO 速率
- And 内存等瞬时指标可立即显示,基线未建立时不显示虚构零值
- Given 某项指标在当前平台不可用
- When 页面收到部分结果
- Then 该指标显示“不可用”及原因,其他指标继续更新
- Given 本次采样全部失败或超时
- Then 显示失败原因和重试入口,保留已有历史并标明最后更新时间,不把旧值当作实时数据
- And 失败或暂停采样期间保留真实时间缺口,不补零或伪造中间样本
- When 可见活动期间自动重试或用户手动重试成功
- Then 按真实采样结果恢复更新,较晚返回的失活前旧请求不覆盖当前结果
### US-C7 从任意应用打开工具
@@ -205,35 +306,51 @@
验收:
- Given 用户位于任意一级页面
- When 用户点击文件、终端、浏览器或资源监控
- When 用户展开右侧工作栏,选择已有工具 Tab 或通过“+”选择文件、终端、浏览器或资源监控
- Then 主页面保持不变
- And 右侧工作栏打开对应面板
- And 工具不会覆盖主内容或伪装成一级页面
- And 创建失败时工作栏保持展开并显示对应错误,主页面和其他实例不被清空
- And 后台事件不自动展开工作栏或切换当前 Tab,左侧和应用中心不复制工具入口或选中状态
## 5. Epic D:可访问性和布局
### US-D1 使用键盘打开系统工具
### US-D1 使用键盘管理应用与访问工具
作为键盘用户,我希望按顺序聚焦并打开左下角工具,以便不依赖鼠标。
作为键盘用户,我希望浏览和管理应用,并通过右侧工作栏访问工具,以便不依赖鼠标。
验收:
- 每个系统工具和设置都是独立按钮
- Tab 顺序与视觉顺序一致
- Enter 和 Space 均可激活按钮
- 每个纯图标按钮都有可访问名称和工具提示
- 焦点样式不被侧栏边界裁切
- Given 用户使用键盘访问侧栏底部
- Then 应用中心和设置是独立按钮,Tab 顺序与视觉顺序一致,Enter 和 Space 可激活,图标按钮有可访问名称和工具提示
- When 打开应用中心
- Then 入口提供菜单展开状态和控制关系,焦点进入首个可用菜单项;上下方向键循环移动,Home、End 到首尾,Enter、Space 激活
- When 按 Escape 关闭菜单
- Then 焦点返回应用中心入口;Tab 关闭菜单后继续正常焦点顺序,点击外部或焦点离开也关闭
- When 选择“管理应用”
- Then 关闭菜单并进入既有 Modal,焦点进入搜索;卡片的打开、设置及详情中的启用、常驻、排序控件按正常 Tab 顺序可达,不伪装成单个菜单项;进入详情及返回时滚动归顶,返回后聚焦搜索
- When 通过键盘修改常驻或顺序
- Then Switch 使用共享开关语义并支持 Space,上移和下移按钮名称包含应用名,结果通过 polite 状态区播报,失败保留焦点
- Given 用户进入右侧工作栏
- Then Tab 选择、游标焦点、方向键及 Home、End 由工作栏负责,使用 `tablist`、`tab`、`tabpanel` 和 `aria-selected`,按确切实例表达选中状态
- And “+”为普通按钮,工具状态纳入 Tab 可访问名称;激活后焦点进入面板,关闭工作栏后返回固定工作栏开关
- And 焦点环不被边界裁切,应用中心及设置沿用共享浮层和原生浏览器遮挡处理
### US-D2 在窄窗口使用快捷栏
### US-D2 在窄窗口访问应用中心与工作栏
作为小屏用户,我希望侧栏抽屉中的工具按钮保持可操作。
作为小屏用户,我希望应用管理和工具实例在窄窗口中仍可操作。
验收:
- 工具按钮保持单行且不重叠
- 不因宽度不足隐藏文件、终端、浏览器、资源监控或设置
- 触控点击区域符合统一界面规范
- 关闭侧栏抽屉后焦点返回原触发按钮
- Given 侧栏宽度为 `220px` 至 `420px`,或窄窗口使用侧栏抽屉
- Then 底部应用中心和设置不重叠,不因宽度不足隐藏入口或缩小点击区域
- When 打开应用菜单或通过“管理应用”进入 Modal
- Then 菜单向上锚定且限制在窗口内,可内部滚动;Modal 中长名称可换行,搜索、常驻、排序、设置及重新开启入口均可达
- And 触控不依赖悬停,工具提示保持在窗口内,点击区域符合统一规范
- When 关闭侧栏抽屉
- Then 焦点返回原触发按钮
- Given 右侧工作栏有多个工具实例
- Then Tab 单行横向滚动且“+”持续可见,工作栏停靠回流,不遮罩主页面;布局和 Tab 交互仍由工作栏负责
## 6. Epic E:项目活动级联
@@ -249,6 +366,9 @@
- Then 进入该确切 Conversation ID,清除搜索、任务选择和会话菜单,窄窗口关闭侧栏
- Given 设置页有未保存修改
- Then 会话跳转仍需通过既有离开检查,取消离开保留设置草稿和原项目
- Given 用户选择的确切 Conversation ID 未在内存中或已被删除
- When 请求进入该会话
- Then 刷新持久化会话列表后仍只查找同一 ID;刷新失败或会话不存在时显示通知并保留原页面和选择,不回退到项目最新会话或其他会话
### US-E2 键盘、窄窗口与实时结束
@@ -286,7 +406,7 @@
## 7. 后续需求场景
本节对应新增计划,不计入应用中心首期完成条件。
US-F1、US-F2 为后续市场计划;US-F3 至 US-F5 的本机推理已接入源码,当前支持边界见技术设计,验证范围见实施进度。
### US-F1 连接组织应用市场
@@ -295,33 +415,85 @@
- Given 组织已部署提供应用市场的 ShareServer
- When 用户配置市场 URL,并在来源要求时完成登录
- Then 可以浏览该来源的应用目录、详情及可获取版本
- Given 市场暂时不可达
- Then 显示失败原因与重试入口,已安装和内置应用仍可打开,不切换公共市场
- And 市场 URL 按设备保存,重启后恢复;认证信息使用受保护凭据存储,不作为可导出配置
- Given 市场不可达、URL 无效、登录过期或认证失败
- When 用户访问该来源
- Then 显示具体原因及修改地址、重新登录或重试入口,已安装和内置应用仍可打开,不静默切换公共市场或其他来源
- Given 用户修改市场来源或开始获取应用资源
- Then 市场配置不改变模型、应用更新及 Runtime 等独立下载源;已开始的下载保持原来源,失败不静默切源
### US-F2 导入导出应用定义
对应 FR-15。
- Given 用户需要在私有部署间迁移应用
- When 导出应用为 `.yml` 并在另一台设备导入
- When 导出应用为 YAML,并在另一台设备选择 `.yml` 或 `.yaml` 文件导入
- Then 预览应用身份、版本、可迁移配置和依赖,凭据与业务数据不包含在导出文件中
- When 用户确认有效定义且所需依赖已满足,导入成功
- Then 应用目录显示导入的身份、版本和配置,可按其启用状态打开或配置,不自动启动模型或任务
- Given 同标识应用已存在
- Then 用户可选择更新或取消,取消后原应用与配置保持不变
- When 用户查看导入预览
- Then 可选择更新或取消,取消后原应用与配置保持不变
- When 更新成功
- Then 显示已确认的新定义和配置
- When 更新失败
- Then 显示具体原因及重试入口,保留原应用定义、版本和配置,不留下部分更新
- Given 文件格式无效、版本不支持或离线环境缺失程序包或模型资源
- Then 显示具体问题与补充要求,不将应用误报为可运行,也不自动启动模型或任务
### US-F3 管理本机模型服务
### US-F3 查看本机推理服务与资源
对应 [FR-16](./prd.md#fr-16-本机模型管理入口新增计划项)。
- Given 用户使用依赖本机模型的应用
- When 从应用中心或常驻菜单打开“本机模型”
- Then 可查看已接入模型的状态、管理方式及使用方,两处入口访问同一页面
- Given 多个应用共用一个 GoodBuddy 受管模型服务
- Then 展示同一服务及使用方,启动操作不重复创建进程
- When 用户停止或重启仍有任务使用的受管服务
- Then 先展示任务影响供用户决定,取消后服务保持运行;操作失败显示原因与实际状态
- Given 模型服务由外部程序启动,且未接入其管理接口
- Then 展示“外部管理”与连接配置,不提供停止或重启
- When 用户关闭管理页或取消常驻
- Then 模型运行状态不变
- When 从常驻入口、应用菜单或管理 Modal 的“打开”进入“本机推理”
- Then 均打开同一管理 Modal,来源菜单或管理 Modal 关闭,底层工作区、当前项目、会话和未提交草稿保持不变
- And 直接显示服务列表,不出现任务页签、任务历史或外部连接;知识库、智能心跳和魔法笔记仍打开主内容区页面
- And 初始焦点进入关闭按钮,背景不可交互,Tab/Shift+Tab 在 Modal 内循环;标题与关闭按钮保持可见,正文独立滚动
- Given 没有影响确认且没有操作提交
- When 点击关闭按钮或按 Escape
- Then 关闭并卸载管理 Modal,底层工作区继续显示,模型服务不停止;点击遮罩不关闭
- And 焦点恢复到仍可用的原触发元素;原入口已移除时回到应用中心,窄侧栏已隐藏时回到侧栏开关
- When 查看服务列表
- Then 显示服务名、模型、引擎、简短状态及错误;共享服务只展示一次
- Given 向量服务独立进程正在运行
- Then 显示带 PID 和进程范围的 CPU、工作集内存;CPU 首次采样显示预热状态
- Given 服务 worker 与宿主共享进程,或进程已退出、采样失败
- Then 在服务行显示不能独立统计或当前不可用的原因,不展示虚构零值或借用整个应用进程指标
- Given ASR 有活动请求但没有 Worker 就绪观测
- Then 显示“按需运行(状态未知)”,不推断服务正在运行
### US-F4 单任务取消入口(已移除)
保留故事 ID。FR-16 已收窄为服务监视,Modal 不再提供任务取消按钮。执行路径的原有取消行为和活动请求登记继续用于服务影响校验,见[逻辑设计](./logic-design.md#81-本机推理管理)。
### US-F5 管理实际执行服务生命周期
对应 FR-16;当前引擎支持清单见[技术设计](./technical-design.md#111-本机推理任务与执行服务)。
ASR 取消独立 Worker,向量停止核对所有活动请求,OCR 有活动或排队请求时拒绝释放。
运行阶段包括排队、加载和执行;当前未接入统一进度及来源项目对象关联。资源指标按服务进程统计,见 US-F3。
- Given 多个应用共用一个由 GoodBuddy 受管子进程承载的模型服务
- When 用户启动、停止或重启服务
- Then 仅提供引擎实际支持的操作,按同一服务串行处理;重复请求不重复创建进程或并发执行同一服务的重启
- And 以真实进程退出和服务就绪确认结果,不将命令已发送当作操作成功
- Given 用户准备停止、重启或释放服务或模型
- When 用户发起操作
- Then 在管理 Modal 上方打开紧凑影响确认,列出使用方、任务及影响;无已登记活动任务时说明执行前再次核对,取消后不发送操作指令且运行状态不变
- And 初始焦点进入“保留运行状态”,Tab/Shift+Tab 在确认内循环,底层管理 Modal 不可交互;Escape 只关闭确认并恢复服务操作按钮焦点,按钮不可用时回到管理 Modal
- When 确认提交尚未完成
- Then 禁止重复执行,确认和取消按钮均禁用,两层 Modal 都不能通过关闭按钮或 Escape 关闭
- When 操作成功
- Then 只关闭影响确认,管理 Modal 保持打开
- Given 执行前出现确认清单未包含的新任务
- Then 拒绝执行,关闭旧确认并显示错误,自动刷新状态;刷新期间或失败时禁用服务操作,再次发起操作须确认新的影响清单
- Given 停止失败,或重启时停止成功但启动失败
- Then 显示实际状态、原因和可重试错误,不假报已停止或已恢复;无法确认时显示未知
- When 服务再次启动或重启成功
- Then 已中断任务不自动重放,由来源应用显式重新发起
- Given 模型连接由外部程序管理
- Then 在既有模型与连接设置中查看,不将其列入本机服务或提供停止、重启
- Given 模型在进程内运行
- Then 仅提供引擎实际支持的加载、释放,不显示虚构 PID、进程数或进程启动停止状态
- When 用户关闭管理 Modal、关闭管理应用或取消常驻
- Then 模型服务运行状态不变,取消常驻不关闭当前 Modal,卸载模型文件为独立操作