From a3b766f27626023f0be4b35d86ce0aea5f35f0b2 Mon Sep 17 00:00:00 2001 From: QiuSW <105186638@qq.com> Date: Wed, 22 Jul 2026 15:49:55 +0800 Subject: [PATCH] docs: define cancellable path search task --- docs/06-tasks.md | 1 + docs/current-state.md | 2 +- docs/tasks/T-206.md | 38 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 40 insertions(+), 1 deletion(-) create mode 100644 docs/tasks/T-206.md diff --git a/docs/06-tasks.md b/docs/06-tasks.md index b3408a4..f367e8d 100644 --- a/docs/06-tasks.md +++ b/docs/06-tasks.md @@ -28,6 +28,7 @@ | T-203 | CLI 合约和本地事件推送 | T-103 | DONE | | T-204 | UI 全状态验收与 Windows 打包 smoke | T-201,T-202,T-203 | DONE | | T-205 | 设置路径字段增加 Label、选择和搜索操作 | T-201 | DONE | +| T-206 | 左侧导航、可取消路径搜索与新建实例表单语义 | T-205 | TODO | ## Backlog diff --git a/docs/current-state.md b/docs/current-state.md index 912d8c9..8df4665 100644 --- a/docs/current-state.md +++ b/docs/current-state.md @@ -7,7 +7,7 @@ - 代码:已建立 Go module `chub`、`cmd/chub` 入口、logging 测试基座、浏览器 domain/application 合约、Chrome/Edge 参数/发现模块、启动 registry、Windows 身份/占用检查、优雅关闭、Job Object、真实 Chrome/Edge smoke、JSON 配置存储、启动恢复、CLI JSON 合约、应用内事件总线、UI 状态测试和 Windows smoke 脚本,T-001 至 T-003、T-101 至 T-104、T-201 至 T-205 已完成 - UI:已接入 Gio v0.10.1 双页桌面壳;设置页四个路径字段均有 Label、输入框、选择按钮和搜索按钮,并提供操作反馈;CLI `list/events` 已可用,`start/stop/restart` 等待 BrowserManager adapter - 浏览器核心:设计参考来自 `D:\OPC\shop_helm\internal\platform\chrome`,尚未复制或接入本项目 -- blocker:无;下一步可进入 BrowserManager application adapter 和真实 UI 交互接线。 +- blocker:无;下一个任务为 T-206(左侧导航、可取消路径搜索与新建实例表单语义)。 ## 当前目录 diff --git a/docs/tasks/T-206.md b/docs/tasks/T-206.md new file mode 100644 index 0000000..e0d584c --- /dev/null +++ b/docs/tasks/T-206.md @@ -0,0 +1,38 @@ +--- +id: T-206 +title: 左侧导航、可取消路径搜索与新建实例表单语义 +phase: 2 +deps: [T-205] +status: TODO +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` 通过。 + +## 执行记录 + +- 状态:TODO +- 变更:已建立任务与交互/异步状态契约。 +- 验证:待实现。 +- 阻塞:无。 +- 残余风险:真实原生文件夹选择器需要后续 Windows platform adapter。