Adds the full documentation set for the planned desktop pet feature under docs/features/desktop-pet: README, PRD, user stories, logic design, UI design, and technical design. The pet is scoped as a lightweight always-on entry point for quick drafting, drag-and-drop staging, and task status at a glance; it does not introduce a second Ask/Execute channel, task execution path, or independent task-state store. Design only, no implementation yet.
9.4 KiB
桌面宠物 User Stories
文档信息
| 项目 | 内容 |
|---|---|
| 状态 | 设计中 |
| 版本 | 0.1 |
| 日期 | 2026-09-03 |
| 关联 PRD | 桌面宠物 PRD |
| 功能逻辑 | 功能逻辑设计 |
角色
- 日常用户:在多任务、多显示器场景下使用 GoodBuddy 处理日常工作。
- 首次体验用户:刚升级或安装 GoodBuddy,尚未接触过桌面宠物功能。
- 键盘用户:主要通过键盘操作,可能同时使用屏幕阅读器。
- 多显示器用户:使用两个或更多显示器,可能随时插拔外接显示器。
US-A 首次启用
US-A1 默认不出现
Given 用户全新安装或刚升级 GoodBuddy When 用户尚未进入“桌面宠物”设置 Then 桌面上不出现任何宠物窗口,托盘菜单显示“显示桌面宠物”而非“隐藏”
US-A2 首次启用
Given 用户在设置中打开“启用桌面宠物”总开关 When 开关切换为开启 Then 宠物窗口在默认位置出现,使用默认外观,且不产生任何应用级或原生通知
US-A3 关闭后完全消失
Given 桌面宠物已启用并可见 When 用户关闭“启用桌面宠物”总开关 Then 宠物窗口立即消失,未完成的气泡提示一并消失,托盘菜单条目恢复为“显示桌面宠物”, 且用户之前设置的位置、外观和提示偏好被保留供下次开启时使用
US-B 快速起草
US-B1 起草文字并转入主窗口
Given 桌面宠物已启用,主窗口当前隐藏 When 用户点击宠物并输入一段文字后点击提交 Then 主窗口被显示并聚焦,目标会话的输入区出现刚输入的文字作为草稿,输入焦点落在 该输入区,且没有任何消息被发送、没有任何任务被创建
US-B2 起草时附加文件
Given 快速起草弹出框已打开 When 用户点击“附加文件”并选择一个受支持类型和大小内的文件 Then 该文件在弹出框内显示为待提交附件;提交后该附件出现在主窗口对应会话输入区的 待发送附件列表中
US-B3 附加不受支持的文件
Given 快速起草弹出框已打开 When 用户选择一个超出大小限制或类型不受支持的文件 Then 弹出框就地显示明确的拒绝原因,不添加该文件,且不影响已经添加的其他文字或附件
US-B4 取消起草
Given 用户已在快速起草弹出框中输入文字或添加附件 When 用户点击取消或按 Escape 关闭弹出框 Then 弹出框关闭且草稿被丢弃,主窗口任何会话的现有草稿不受影响,且不创建任何草稿或 任务记录
US-B5 选择目标会话
Given 主窗口当前存在多个会话,且用户在快速起草弹出框中看到默认目标会话 When 用户在弹出框内切换目标为“新建对话” Then 提交后主窗口创建并激活一个新会话,草稿内容进入该新会话的输入区,不影响原有 会话的草稿
US-C 拖放暂存
US-C1 拖放单个文件
Given 桌面宠物已启用并可见 When 用户从文件管理器拖动一个受支持类型的文件到宠物窗口上并释放 Then 宠物在拖入过程中显示可放置的视觉反馈,释放后主窗口被显示并聚焦,该文件出现在 目标会话输入区的待发送附件列表中
US-C2 拖放多个文件,部分超限
Given 用户同时拖动数量或大小超出限制的多个文件到宠物窗口 When 用户释放拖放 Then 合法文件正常进入目标会话的待发送附件列表,超限或不支持的文件被单独列出拒绝 原因,不阻止合法文件被暂存
US-C3 拖放文件夹
Given 用户拖动一个文件夹到宠物窗口 When 用户释放拖放 Then 宠物提示不支持文件夹,不递归展开文件夹内容,也不产生任何暂存
US-C4 拖放选中文字
Given 用户在其他应用中选中一段文字并拖动到宠物窗口 When 用户释放拖放 Then 该文字进入目标会话输入区的草稿文本,行为与快速起草输入文字一致
US-D 状态镜面
US-D1 查看空闲状态
Given 当前没有任何活跃 Task When 用户查看宠物外观 Then 宠物显示空闲状态,且可访问名称明确说明当前没有进行中的任务
US-D2 查看执行中状态
Given 有一个 Task 处于执行中 When 用户查看宠物外观 Then 宠物切换为执行中状态,且该状态与 Task Center 中该任务的状态一致
US-D3 多任务状态优先级
Given 同时存在一个等待处理的任务和一个执行中的任务 When 用户查看宠物外观 Then 宠物按照“等待处理优先于执行中”的规则显示等待处理状态
US-D4 点击状态镜面打开任务详情
Given 宠物当前显示执行中或失败状态 When 用户点击宠物的状态镜面区域 Then 主窗口被显示并聚焦,Task Center 定位到触发当前状态的具体任务
US-D5 状态不可用
Given 用于确认任务状态的 Runtime 或网络当前不可用 When 用户查看宠物外观 Then 宠物显示“状态不可用”,不回退显示为空闲或执行中
US-E 完成与失败提示
US-E1 主窗口不可见时收到完成提示
Given 主窗口当前隐藏或未聚焦,安静模式未开启 When 一个任务从执行中变为已完成 Then 宠物旁出现说明任务标题和结果的气泡,且该事件不重复触发原生系统通知
US-E2 失败提示保持可见
Given 主窗口当前隐藏,安静模式未开启 When 一个任务失败 Then 宠物旁出现失败气泡并保持可见,直到用户点击查看或手动关闭,不自动消失
US-E3 主窗口可见时不重复提示
Given 主窗口当前可见并聚焦 When 一个任务完成或失败 Then 不出现宠物气泡;反馈通过主窗口现有机制呈现,避免同一事件重复出现在两个位置
US-E4 开启安静模式
Given 用户在设置中开启“安静模式” When 之后任意任务完成或失败,且主窗口不可见 Then 不出现任何宠物气泡,但状态镜面外观仍随任务状态正常变化
US-F 位置、外观与多显示器
US-F1 记忆位置
Given 用户把宠物拖动到某个显示器的特定位置 When 用户重启 GoodBuddy Then 宠物出现在同一显示器的同一位置
US-F2 显示器断开后回退
Given 宠物位置记忆在一个已插入的外接显示器上 When 该外接显示器被移除后重新启动 GoodBuddy Then 宠物出现在当前可用的主显示器上一个可见、不越界的位置,而不是不可见或位于屏幕 之外
US-F3 贴边吸附
Given 用户开启“贴边”选项 When 用户把宠物拖动到接近屏幕边缘的位置并释放 Then 宠物自动吸附到屏幕边缘,且吸附后仍可被再次拖动离开
US-F4 调整外观
Given 用户在设置中调整宠物尺寸、透明度或动画强度 When 用户改变任意一项取值 Then 宠物外观立即按新取值更新,且设置持久化,重启后保持
US-F5 恢复默认外观
Given 用户已经修改过角色、尺寸、透明度或动画强度 When 用户点击“恢复默认外观” Then 上述设置全部恢复为默认值,宠物位置和总开关状态不受影响
US-G 暂时隐藏与托盘
US-G1 暂时隐藏
Given 桌面宠物已启用并可见 When 用户从托盘菜单选择“隐藏桌面宠物” Then 宠物窗口消失,总开关状态和其他设置不变,托盘菜单条目变为“显示桌面宠物”
US-G2 重新显示
Given 桌面宠物已启用但当前隐藏 When 用户从托盘菜单选择“显示桌面宠物” Then 宠物窗口在此前记忆的位置重新出现
US-G3 应用退出
Given 桌面宠物已启用并可见 When 用户退出 GoodBuddy Then 宠物窗口一并关闭,不留下任何独立运行的进程或残留窗口
US-H 键盘与无障碍
US-H1 键盘打开快速起草
Given 桌面宠物窗口通过系统级窗口切换取得焦点 When 键盘用户按下预期的激活键 Then 快速起草弹出框打开,焦点进入输入框
US-H2 键盘关闭弹出框
Given 快速起草弹出框已打开且有键盘焦点 When 用户按下 Escape Then 弹出框关闭,焦点回到宠物窗口本身
US-H3 屏幕阅读器状态说明
Given 用户使用屏幕阅读器 When 焦点移动到宠物的状态镜面 Then 屏幕阅读器播报当前状态的文字说明,不仅依赖颜色或动画表达状态
US-I 兼容与边界
US-I1 升级用户保持现状
Given 已在使用 GoodBuddy 且从未接触过桌面宠物功能的用户升级到包含该功能的版本 When 用户正常启动应用 Then 桌面宠物保持关闭,界面和行为与升级前一致
US-I2 不支持透明合成的环境
Given 用户的操作系统或桌面环境不支持窗口透明合成 When 用户启用桌面宠物 Then 宠物窗口退化为不透明的小型窗口而不是渲染异常或无法显示,具体规则见 技术设计
US-I3 拖放到非目标区域
Given 用户尝试把文件拖到宠物窗口之外的桌面区域 When 用户释放拖放 Then GoodBuddy 不接收该拖放,不产生任何暂存或错误提示