38 lines
2.4 KiB
Markdown
38 lines
2.4 KiB
Markdown
---
|
||
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 尚未接入。
|