--- id: T-206 title: 左侧导航、可取消路径搜索与新建实例表单语义 phase: 2 deps: [T-205] status: DONE created: 2026-07-22 owner: 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` 不可用。