Files
cdp_hub/docs/tasks/T-301.md
T

38 lines
2.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
id: T-301
title: 接入 GUI 启动操作与实例删除确认
phase: 3
deps: [T-204, T-208]
status: DONE
created: 2026-07-22
owner: codex
---
## 需求与背景
实例列表的启动图标当前只显示“等待 BrowserManager 接入”的反馈,未调用浏览器启动器;删除图标会立即移除记录,用户无法确认操作对象和影响。
## 方案与边界
- Gio Shell 定义异步实例启动回调,点击后将该行置为“启动中”,结果回到 UI 线程后显示“运行中”或“启动失败”;重复点击同一行不重复发起启动。
- 组合根(`cmd/chub`)使用已验证的 `browser.NewOSLauncher`、浏览器发现器和当前设置中的可执行文件构造 `LaunchSpec`;UI 不直接执行 I/O 或 `exec`。
- 启动 URL 保持可选:为空时不附加 URL 参数,让浏览器打开默认页。
- 删除先显示窗口级确认弹层,明确实例名称和“不会删除 User Data Dir”;取消不改变记录,确认后才移除并持久化实例配置。
- 本任务只接入启动与实例配置删除,不实现关闭、重启、外部进程接管或 CLI BrowserManager adapter。
## 验收要点
- 启动 Chrome/Edge 时浏览器进程实际被启动,UI 显示启动中、运行中或可恢复的失败信息。
- 同一实例启动中再次点击不会创建第二个启动请求。
- 删除弹层提供“取消”和“删除”;取消保留记录,确认后只删除 Chub 实例配置,保留 User Data Dir。
- 新建和删除实例都会同步到本地配置。
- `go test ./...`、`go vet ./...`、Windows build/smoke 通过。
## 执行记录
- 状态:DONE
- 变更:Gio Shell 新增异步启动命令、行级“启动中/运行中/启动失败”状态和重复提交防护;删除图标改为窗口级确认弹层。组合根将启动命令接到 `browser.NewOSLauncher` 与浏览器发现器;新建/删除实例同步保存配置,保留已有 profile、代理和额外参数。空 URL 现在表示不传 URL 参数,浏览器打开默认页。
- 验证:`gofmt`、`go test ./...`、`go vet ./...`、`scripts/smoke-browser.ps1`(真实 Chrome/Edge)和 `scripts/smoke-windows.ps1` 均通过。
- 阻塞:无。
- 残余风险:实际浏览器启动仍受本机可执行文件、目录权限和 profile 占用状态影响;关闭、重启、退出状态回传和 CLI BrowserManager adapter 尚未接入。