# 应用导航与系统工具入口 User Stories ## 文档信息 | 项目 | 内容 | | --- | --- | | 状态 | 应用中心与本机推理监控已接入源码,整体验收待完成 | | 版本 | 0.4 | | 日期 | 2026-09-17 | | 关联 PRD | [应用导航与系统工具入口 PRD](./prd.md) | | 关联逻辑 | [功能逻辑设计](./logic-design.md) | ## 1. 角色 ### 1.1 普通用户 使用对话、笔记和知识功能,希望常用入口稳定,不需要理解工作栏实例模型。 ### 1.2 本地工作用户 经常查看项目文件、打开终端、使用受控浏览器或检查电脑负载,希望从任意一级页面快速进入 这些工具。 ## 2. Epic A:固定系统入口 ### US-A1 始终访问运行记录 作为用户,我希望运行记录保持在固定位置,以便应用入口变化后仍能检查 Agent 和工具活动。 验收: - Given 用户隐藏任意可选内置应用 - When 用户查看主导航 - Then “运行记录”仍显示在应用区之后 - And 设置中没有隐藏、卸载或固定运行记录的选项 ### US-A2 从固定入口进入设置 作为用户,我希望设置入口始终位于侧栏底部,以便应用状态变化时仍能进入配置。 验收: - Given 任意主页面和任意侧栏宽度 - When 用户查看侧栏底部 - Then “设置”与“应用”为始终显示文字的独立按钮,点击区域不重叠 - And 点击后继续遵守未保存内容的离开确认 ## 3. Epic B:管理应用入口 本节的启用、常驻和共同设置适用于智能心跳、魔法笔记、本机推理监控;五个应用均可排序,知识库始终启用并常驻。设备共享在测试阶段默认关闭,提供启用开关,不提供常驻开关;启用后可从应用菜单和管理 Modal 打开,关闭后退出当前页面并保留目录及发布记录,旧设置缺失时默认关闭,明确启用值在重启后保留。业务验收见[设备共享首期需求](../device-sharing/prd.md#当前首期本地元数据)。心跳的默认关闭及执行边界按[应用启停与执行](../conversation-supervision/logic-design.md#应用启停与执行)验收,保留既有故事 ID。 ### US-B1 识别完整应用 作为用户,我希望魔法笔记、知识库和智能心跳显示在主导航,以便知道它们会打开完整页面。 验收: - Given 始终显示的应用,或已启用且常驻的可选应用 - When 用户打开主侧栏 - Then 应用位于“当前对话”和“运行记录”之间 - And 点击知识库、智能心跳或魔法笔记在主内容区打开对应一级页面;本机推理监控打开保留底层工作区的 Modal,验收见 US-F3 - And 原有待办或建议徽标按已保存的显示设置继续显示 - And 当前对话之后按保存顺序显示应用;知识库始终显示,可调整位置,无启用或常驻开关;心跳按启用及常驻过滤 ### US-B2 取消低频应用常驻 作为用户,我希望隐藏不常用的内置应用,以便缩短主导航,但保留已有数据。 验收: - Given 应用已启用且已有内容 - When 用户关闭该应用的“常驻左侧菜单”Switch 并保存成功 - Then 主导航不再显示该应用,当前已打开页面保持不变 - And 应用数据、计划和业务启停状态不变 - And 用户可从应用中心打开该应用,或从同一设置位置恢复常驻 ### US-B4 保留功能启停语义 作为魔法笔记用户,我希望导航显隐与功能启停相互独立,以免整理导航时关闭功能。 验收: - Given 魔法笔记功能已启用 - When 用户只取消其侧栏常驻并保存成功 - Then 笔记及待办处理能力继续按原设置工作 - And 重新常驻只恢复入口,不自动导航;再次打开时保留原页面状态和数据 ### US-B5 保持设置保存一致 作为用户,我希望应用设置保存期间和失败后各入口保持一致,以免界面与实际配置不符。 验收: - 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 默认顺序为知识库、智能心跳、魔法笔记、本机推理监控、设备共享;心跳默认关闭且保留默认常驻偏好,魔法笔记默认常驻,本机推理监控默认启用但不常驻,仍可从应用菜单打开;设备共享默认关闭,启用后只在应用菜单和管理 Modal 提供入口;侧栏只按启用与常驻过滤可选项 - When 用户修改常驻,或通过拖动、键盘可操作的上移和下移按钮排序并保存成功 - Then 管理列表从上到下、菜单和侧栏按同一保存顺序显示,知识库和智能心跳可移动;当前对话、运行记录及底部系统入口位置不变,重启后恢复保存结果 - And 每行均提供上下移动,以完整保存顺序中的相邻应用为目标;未常驻及关闭应用仍可排序,设置详情不提供排序控件 - And 搜索时箭头仍按完整顺序移动,保留未命中应用,拖动禁用;清除搜索后显示完整保存结果 - Given 旧设置仅保存本机推理监控、魔法笔记的顺序 - When 升级后读取设置 - Then 知识库、智能心跳补在前面,两个可选应用保留原有相对顺序和常驻值,设备共享追加到末尾 - Given 应用已关闭或取消常驻 - When 用户重新开启或常驻 - Then 按保存顺序恢复入口;关闭或取消常驻不删除顺序,已关闭应用仍可管理常驻偏好 - Given 保存失败 - Then 按 US-B5 保留原常驻和顺序,在操作处提供重试并保留键盘焦点 - Given 没有可见的可选应用或仅有一个 - Then 固定入口和应用中心仍可用,没有移动目标的排序按钮禁用,不产生空白占位项 ### US-B8 独立控制启用与常驻 作为用户,我希望关闭应用时保留数据和导航偏好,并能明确知道哪些业务操作已不可用。 验收: - Given 应用已启用 - When 仅取消常驻并保存成功 - Then 业务能力和后台操作保持原状,仍可从应用中心打开 - Given 知识库已有会话关联,智能心跳已有启用或暂停的计划 - When 用户关闭全部可选应用或修改其常驻与顺序 - Then 知识库始终启用,侧栏位置稳定,页面可打开;知识控件及关联保持可用,请求遵守知识库自身规则,心跳单条计划 enabled 原值不变 - And 心跳应用关闭后显示不可用状态,可从应用中心设置重新开启;新运行、在途运行及侧栏查询按[应用启停与执行](../conversation-supervision/logic-design.md#应用启停与执行)验收 - Given 关闭的应用页面或本机推理监控 Modal 仍打开 - Then 原位置显示“应用已关闭”,保留草稿及页面状态,阻止新业务操作而不强制跳转;用户从应用中心对应行的设置重新启用,监控 Modal 需先关闭 - When 用户重新开启并保存成功 - Then 仍停留的页面恢复可用;已离开时不自动导航,不重放或补发旧请求和任务 - And 保留原常驻及顺序,未常驻应用不自动常驻 - Given 启用变更保存失败 - Then 按 US-B5 保留原业务状态和入口,不执行关闭或恢复副作用 ### US-B9 迁移魔法笔记共同设置 作为魔法笔记用户,我希望在应用中心统一管理笔记设置,并在升级后保留已有选择。 验收: - Given 用户从应用中心的魔法笔记行进入设置 - Then 显示笔记设置表单;笔记页面不提供重复入口,也不保留“显示魔法笔记入口”开关 - And 全局设置不再显示魔法笔记页签或跳转入口,已有配置值和业务数据保持不变 - And 启用、常驻、显示未完成待办数量分别控制业务、导航和徽标;隐藏数量不修改待办 - Given 升级前已有明确保存的布尔值和评论选择 - When 迁移配置并重启 - Then 保留已有 `true`、`false`、评论单选值及业务数据;缺失导航配置时,本机推理监控默认不常驻,魔法笔记默认常驻;未配置的应用启用和笔记相关布尔项默认 `true` - And 旧入口开关若实际控制笔记启用,保留其启用含义和原值,不将其改作常驻 - Given AI 评论方式或评论形式未配置 - Then 分别默认“即时”和“长评 + 要点”,均为单选,不同时启用所有模式 - When 任一入口修改配置并保存成功 - Then 应用中心、主导航、笔记页、会话及其他设置入口同步采用确认值;保存中和失败均遵守 US-B5 ## 4. Epic C:使用系统工具 ### US-C1 一键查看文件 作为本地工作用户,我希望从右侧工作栏查看文件,并保留工作区面板的目标模式。 验收: - Given 当前项目有有效根目录 - When 用户展开右侧工作栏并选择已有工作区 Tab,或从“+”选择文件 - Then 聚焦默认存在且不可关闭的工作区单实例,不创建重复实例;仅迁移或布局修复时补回缺失实例 - And 保留跟随或固定模式,跟随模式继续按工作栏规则更新上下文 - And 仅该实例 Tab 显示选中状态,焦点进入目录区域 ### US-C2 处理无效工作区 作为用户,我希望目录不可用时看到修复方法,并收到明确反馈。 验收: - Given 工作区面板处于跟随模式 - And 当前项目和默认工作区均不可用 - 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 创建使用本机 Home 的新终端,已有终端保持原目标和历史 ### US-C4 使用远程项目终端 作为远程项目用户,我希望新建终端绑定远程项目目录,以免误在本机执行命令。 验收: - Given 当前项目绑定托管 SSH 执行空间 - When 用户从右侧工作栏“+”选择终端 - Then 创建绑定该远程项目及其权威目录的额外终端 - And 面板持续显示远程主机和工作目录 - And 连接失败时保留远端目标、重连与诊断信息,不回退为本机终端 - When 切换当前项目后重新选择该终端 Tab - Then 仍激活原远程实例,不重绑到新项目 ### US-C5 打开受控浏览器 作为用户,我希望从右侧工作栏使用 GoodBuddy 受控浏览器,并按需创建独立页面。 验收: - Given 已有浏览器 Tab,当前 Conversation 与其目标不同或没有活动 Conversation - When 用户选择该 Tab - Then 激活该确切实例,保留绑定目标、页面及导航状态,不重绑、重建或改选最近匹配实例 - Given 当前有活动 Conversation,无论是否已有匹配实例 - When 用户从工作栏“+”选择浏览器 - Then 每次创建绑定当前 Conversation 的额外实例,页面和导航状态独立,同一 Conversation 内共享隔离登录上下文 - Given 当前没有活动 Conversation,无论是否已有浏览器实例 - When 用户从“+”选择浏览器 - Then 创建待选择目标的空实例,不复用已有实例 - And 以上操作均使用 GoodBuddy 受控浏览器,不打开系统默认浏览器 ### US-C6 查看本机资源 作为本地工作用户,我希望快速查看 CPU、内存和磁盘 IO,以便判断任务变慢是否与本机负载 有关。 验收: - Given 资源监控面板尚未打开 - When 用户从右侧工作栏“+”选择资源监控 - Then 助手工作栏创建并激活单实例资源监控面板 - And 页面显示整机 CPU、内存、磁盘读写及 GoodBuddy 桌面进程摘要 - 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 从任意应用打开工具 作为用户,我希望在魔法笔记、知识库、智能心跳和运行记录页面也能打开系统工具。 验收: - Given 用户位于任意一级页面 - When 用户展开右侧工作栏,选择已有工具 Tab 或通过“+”选择文件、终端、浏览器或资源监控 - Then 主页面保持不变 - And 右侧工作栏打开对应面板 - And 工具不会覆盖主内容或伪装成一级页面 - And 创建失败时工作栏保持展开并显示对应错误,主页面和其他实例不被清空 - And 后台事件不自动展开工作栏或切换当前 Tab,左侧和应用中心不复制工具入口或选中状态 ## 5. Epic D:可访问性和布局 ### US-D1 使用键盘管理应用与访问工具 作为键盘用户,我希望浏览和管理应用,并通过右侧工作栏访问工具,以便不依赖鼠标。 验收: - 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 在窄窗口访问应用中心与工作栏 作为小屏用户,我希望应用管理和工具实例在窄窗口中仍可操作。 验收: - Given 侧栏宽度为 `220px` 至 `420px`,或窄窗口使用侧栏抽屉 - Then 底部应用中心和设置不重叠,不因宽度不足隐藏入口或缩小点击区域 - When 打开应用菜单或通过“管理应用”进入 Modal - Then 菜单向上锚定且限制在窗口内,可内部滚动;Modal 中长名称可换行,搜索、常驻、排序、设置及重新开启入口均可达 - And 触控不依赖悬停,工具提示保持在窗口内,点击区域符合统一规范 - When 关闭侧栏抽屉 - Then 焦点返回原触发按钮 - Given 右侧工作栏有多个工具实例 - Then Tab 单行横向滚动且“+”持续可见,工作栏停靠回流,不遮罩主页面;布局和 Tab 交互仍由工作栏负责 ## 6. Epic E:统一工作空间菜单 ### US-E1 从摘要进入确切会话 对应 [FR-14](./prd.md#fr-14-项目活动汇总)。用户在当前项目工作时,可从项目选择器下方 查看跨项目活动,先定位项目,再进入需要处理的会话。 - Given 多个项目存在运行中和待处理会话,当前搜索仅匹配当前项目 - When 打开全项目活动并悬停或键盘聚焦另一个项目 - Then 同一菜单右栏预览该项目会话,待处理、运行中优先,最近会话最多 10 条,当前页面和会话保持原选择 - And 分类依次为全部项目、本地、远程、消息通道;远程能力关闭时隐藏远程分类及项目,搜索跨分类,远程主机可折叠 - When 点击项目 - Then 进入该项目,恢复本次应用会话内上次打开的有效会话,否则选择最近会话;普通项目没有会话时新建,消息通道保持空态 - When 点击会话 - Then 进入该确切 Conversation ID,清除搜索、任务选择和会话菜单,窄窗口关闭侧栏 - Given 设置页有未保存修改 - Then 会话跳转仍需通过既有离开检查,取消离开保留设置草稿和原项目 - Given 用户选择的确切 Conversation ID 未在内存中或已被删除 - When 请求进入该会话 - Then 刷新持久化会话列表后仍只查找同一 ID;刷新失败或会话不存在时显示通知并保留原页面和选择,不回退到项目最新会话或其他会话 - Given 从项目入口打开菜单 - Then 默认预览当前项目;点击“全部项目”恢复全局范围,“已完成”筛选列出全部完成未查看会话,不受最近 10 条限制 - When 实际打开会话、产生新消息或活动状态变化 - Then 菜单按最新消息与本次应用会话内访问/状态变化时间中的较晚者排序;首次状态载入和仅清除完成提醒不更新时间,悬停不改变排序 - When 点击与状态筛选同排的“新建会话” - Then 在预览项目创建,全部项目范围使用当前项目;消息通道禁用手动新建并说明自动创建规则 - When 点击项目行独立设置按钮或左栏底部“新建项目” - Then 打开真实设置或创建表单;设置不触发项目切换,创建成功后经离开检查进入新项目 - And 项目进入或新建会话已获准离开后,提交聊天视图不再次触发同一离开检查 ### US-E2 键盘、窄窗口与实时结束 - Given 菜单已打开 - Then 初始焦点进入选中分类,上下方向键与 Home、End 移动列表焦点,右方向键进入会话列表,左方向键返回预览项目或选中分类;Enter、Space 激活按钮 - When 按 Escape - Then 关闭整个工作空间菜单并恢复可用触发入口焦点,窄侧栏保持打开 - Given 窄窗口或长列表 - Then 两栏有清晰分隔并独立滚动,搜索框不越过左栏边界,全部项目及搜索结果按本地、远程、消息通道显示分组标题;紧凑状态筛选可横向滚动,新建按钮保持可见,触控点击项目直接进入 - Given 当前项目已无待处理、运行中或已完成未查看会话 - Then 显示最近会话或空态;全局无活动时第二行显示“暂无活动”,仍可打开菜单并在其中切换全部项目范围,已打开的菜单仍可使用,新活动不自动打开菜单 - And 左上角是一个固定两行高度的按钮,项目名和全局活动共用一个键盘焦点;点击任一行都默认预览当前项目,恢复提示显示在按钮下方并关联可访问描述 - When 点击外部、焦点离开或隐藏侧栏 - Then 菜单关闭,后台新活动不自动重新展开 - And Tab 可在菜单内访问搜索、分类、项目设置、创建及会话按钮,焦点离开后关闭 ### US-E3 完成后保留至查看 对应 [FR-14](./prd.md#fr-14-项目活动汇总),具体状态规则见[活动逻辑](./logic-design.md#9-项目活动汇总)。 - Given 用户正在其他会话或应用中工作 - When 本次应用会话内的运行成功完成,或已观察到的后台任务转为完成 - Then 活动会话保留为“已完成”,全局与项目的已完成计数同步更新 - When 从活动菜单或普通侧栏实际进入该会话的可见聊天 - Then 清除其完成通知;没有其他活动行时第二行恢复“暂无活动”,已查看会话仍可出现在最近会话中 - Given 聊天被设置覆盖或文档隐藏 - When 对应运行完成 - Then 完成通知保留,直到设置关闭且目标聊天在可见文档中显示;取消设置离开不清除通知 - Given 目标聊天已可见且未被设置覆盖 - When 运行成功完成 - Then 不保留该会话的完成通知 - Given 初始加载已完成任务历史,或任务失败、取消 - Then 不产生新的完成通知;重载或重启也不恢复上一应用会话的通知 - Given 同一会话仍有待处理或运行中工作 - Then 按实时状态优先展示,只计入一个类别 ## 7. 后续需求场景 US-F1、US-F2 为后续市场计划;US-F3 至 US-F5 的本机推理监控已接入源码,当前支持边界见技术设计,验证范围见实施进度。 ### US-F1 连接组织应用市场 对应 [FR-15](./prd.md#fr-15-私有化市场与-yaml-交换后续)。 - Given 组织已部署提供应用市场的 ShareServer - When 用户配置市场 URL,并在来源要求时完成登录 - Then 可以浏览该来源的应用目录、详情及可获取版本 - And 市场 URL 按设备保存,重启后恢复;认证信息使用受保护凭据存储,不作为可导出配置 - Given 市场不可达、URL 无效、登录过期或认证失败 - When 用户访问该来源 - Then 显示具体原因及修改地址、重新登录或重试入口,已安装和内置应用仍可打开,不静默切换公共市场或其他来源 - Given 用户修改市场来源或开始获取应用资源 - Then 市场配置不改变模型、应用更新及 Runtime 等独立下载源;已开始的下载保持原来源,失败不静默切源 ### US-F2 导入导出应用定义 对应 FR-15。 - Given 用户需要在私有部署间迁移应用 - When 导出应用为 YAML,并在另一台设备选择 `.yml` 或 `.yaml` 文件导入 - Then 预览应用身份、版本、可迁移配置和依赖,凭据与业务数据不包含在导出文件中 - When 用户确认有效定义且所需依赖已满足,导入成功 - Then 应用目录显示导入的身份、版本和配置,可按其启用状态打开或配置,不自动启动模型或任务 - Given 同标识应用已存在 - When 用户查看导入预览 - Then 可选择更新或取消,取消后原应用与配置保持不变 - When 更新成功 - Then 显示已确认的新定义和配置 - When 更新失败 - Then 显示具体原因及重试入口,保留原应用定义、版本和配置,不留下部分更新 - Given 文件格式无效、版本不支持或离线环境缺失程序包或模型资源 - Then 显示具体问题与补充要求,不将应用误报为可运行,也不自动启动模型或任务 ### US-F3 查看本机推理服务与资源 对应 [FR-16](./prd.md#fr-16-本机模型管理入口新增计划项)。 - Given 用户使用依赖本机模型的应用 - 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,卸载模型文件为独立操作