2.7 KiB
2.7 KiB
id, title, phase, deps, status, created, owner
| id | title | phase | deps | status | created | owner | |
|---|---|---|---|---|---|---|---|
| T-206 | 左侧导航、可取消路径搜索与新建实例表单语义 | 2 |
|
DONE | 2026-07-22 | codex |
需求与背景
用户要求把顶级“实例/设置”导航移到窗口左侧,移除“Chub 浏览器管理”顶栏文字;设置路径的搜索必须可取消,并且切换页面后保留输入和搜索状态。新建实例表单需要明确 Label、目录选择入口和互斥浏览器选择。
方案与边界
- 使用稳定 page ID 和同一
Shell保存设置输入、搜索任务状态、创建表单输入和当前页面;切换实例/设置不重建这些状态。 - 每个路径字段拥有独立的搜索任务 ID、
context.CancelFunc和结果通道。运行中按钮显示“取消”;再次点击取消任务并忽略迟到结果。 - 浏览器可执行文件搜索使用已有标准安装位置发现器;目录搜索仅验证当前输入路径,避免默认全盘扫描。所有搜索在 goroutine 中运行,结果回到 UI 帧处理。
- 左侧导航只有“实例”和“设置”,页面内容区保留自身标题。窄窗口时导航与内容可重排,但不丢失页面状态。
- 新建实例表单增加“实例名称”“User Data Dir”“启动 URL(可选,仅支持 http/https)”Label;User Data Dir 有选择按钮;浏览器种类使用 RadioButton 单选组。
- 原生 Windows 文件/目录选择器不在本任务引入;选择按钮提供明确的待接入反馈,后续通过异步 platform adapter 接入。
验收要点
- 搜索点击后对应按钮显示“取消”,再次点击取消该字段任务;其他字段不受影响。
- 搜索完成、失败或取消均显示文字反馈,旧任务结果不能覆盖新任务或取消后的值。
- 切换到实例页再返回设置页,路径文本、搜索状态和反馈仍保留。
- 左侧导航不显示“Chub 浏览器管理”;新建实例使用 Label、路径选择和 RadioButton。
go test ./...、go vet ./...、go build -o build/chub.exe ./cmd/chub通过。
执行记录
- 状态:DONE
- 变更:Gio Shell 改为左侧导航并移除窗口内“Chub 浏览器管理”文字;路径搜索接入独立 task ID、取消令牌、结果通道和
Window.Invalidate;新建实例增加 Label、目录选择入口与 Chrome/Edge RadioButton;同步更新 HTML 原型。 - 验证:
gofmt、HTML script syntax check、go test ./... -count=1、go vet ./...、scripts/smoke-windows.ps1均通过。 - 阻塞:无。
- 残余风险:新建实例的原生目录选择器已由 T-207 接入;设置页路径选择器仍需同一 platform adapter 扩展;
go test -race在当前环境因CGO_ENABLED=0不可用。