4.5 KiB
用户故事
| ID | 用户故事 | 优先级 |
|---|---|---|
| US-001 | 用户可以创建 Chrome/Edge 实例配置,并指定 user data dir、profile 和 URL。 | P0 |
| US-002 | 用户可以启动两个不同隔离环境,并看到各自 PID 和运行状态。 | P0 |
| US-003 | 用户可以发现同一 user data dir 已被占用,避免重复启动。 | P0 |
| US-004 | 用户可以优雅关闭实例;无响应时在确认后强制终止。 | P0 |
| US-005 | 用户可以重启指定实例,并确认旧实例已经退出。 | P0 |
| US-006 | 用户可以通过 CLI/API 查询、启动和关闭实例。 | P1 |
| US-007 | 用户可以看到实例的首选或实际本地调试端口;同目录外部浏览器已启用调试时,Chub 只关联并展示状态。 | P1 |
| US-008 | 用户可以刷新已保存实例的运行状态,并通过对话框编辑非运行实例的基本配置而不影响其他浏览器。 | P1 |
| US-009 | 用户可以在设置中通过完整代理地址下拉框维护无认证代理,并在新建或编辑实例时从下拉选择器选择代理。 | P1 |
| US-010 | 用户可以通过实例行的同一主操作启动或优雅停止 Chub 托管的浏览器,而不会关闭外部浏览器。 | P1 |
| US-011 | 用户手动关闭 Chub 启动的 Chrome/Edge 后,可以立即获知该实例已退出,并重新启动该实例。 | P1 |
验收场景
US-003 占用保护
给定一个已运行的 Chrome/Edge,使用相同规范化 user data dir 启动时,系统拒绝第二次启动,显示已知 PID 和占用来源,并保留原配置。
US-004 安全关闭
用户点击关闭后按钮进入 STOPPING;浏览器正常退出则显示 EXITED;等待超时后只显示强制终止确认,不自动扩大关闭范围。
US-006 CLI/API
CLI/API 返回稳定错误码和结构化数据;未知 PID、身份不匹配和权限不足必须拒绝操作并给出恢复建议。
US-007 本地 CDP 与外部关联
给定未占用的 user data dir,实例先保存一个首选 loopback CDP 端口;新建时从设置中的起始端口推荐一个不与其他 Chub 实例预留或实际端口冲突的值。启动优先使用该端口,并在后台检查实际可用性;若仅外部端口冲突,跳过 Chub 预留端口后回退到下一个可验证端口并更新当前实例的首选端口。列表区分建议、准备、实际和外部端口。给定同目录已由外部浏览器占用,只有 DevToolsActivePort 与 /json/version 可验证时才显示“外部已关联”;否则拒绝第二次启动。无论哪种外部状态,Chub 都不提供生命周期控制。
US-008 刷新与编辑实例
给定已保存的实例,用户点击刷新或按 F5 后,Chub 只检查这些实例并更新运行状态、PID、端口与占用来源。用户双击行、按 Enter 或点击编辑图标可以打开编辑对话框;保存名称、浏览器类型、User Data Dir 和启动 URL 后更新本地配置。实际调试端口只读显示。若实例正在运行、启动中或为外部关联,浏览器类型和 User Data Dir 保持不可编辑。Escape 在无修改时关闭对话框,有修改时要求用户选择保存、不保存或继续编辑。
US-009 代理选择
给定用户在设置中保存的无认证代理,设置下拉框和创建/编辑表单均展示完整地址。设置页默认输入为空;选择项会回填地址,保存会更新当前项或在未选择时新建。实例仅关联代理 ID;启动时使用该 ID 的最新端点。含用户名、密码或 URL 路径的端点被拒绝,仍被引用的代理不能删除;删除未引用项前要求确认。
US-010 受管实例启停
给定 Chub 启动且仍可在 registry 中验证的实例,运行态主操作显示停止图标。点击后先显示停止中,再请求浏览器正常退出;成功后恢复启动图标。给定外部已关联或未知占用的同目录浏览器,Chub 不显示停止入口,也不发送关闭请求。
US-011 受管实例意外退出
给定 Chub 在当前会话中启动且处于运行态的 Chrome/Edge,用户关闭最后一个浏览器窗口、浏览器崩溃或进程被外部结束时,Chub 等待该受管根进程句柄并把匹配实例更新为“已退出”。Chub 显示“检测到‘实例名’的 Chrome/Edge 已退出”的可关闭信息提示,说明配置和 User Data Dir 未被删除;关闭提示后焦点回到该实例的启动入口。给定 Chub 已请求优雅停止、外部关联/占用实例、过期启动代次或应用已关闭,Chub 不显示意外退出提示。