fix: open native directory picker for new instances
This commit is contained in:
@@ -29,6 +29,7 @@
|
||||
| T-204 | UI 全状态验收与 Windows 打包 smoke | T-201,T-202,T-203 | DONE |
|
||||
| T-205 | 设置路径字段增加 Label、选择和搜索操作 | T-201 | DONE |
|
||||
| T-206 | 左侧导航、可取消路径搜索与新建实例表单语义 | T-205 | DONE |
|
||||
| T-207 | 接入新建实例的 Windows 目录选择器 | T-206 | DONE |
|
||||
|
||||
## Backlog
|
||||
|
||||
|
||||
@@ -5,9 +5,9 @@
|
||||
- 日期:2026-07-22
|
||||
- 阶段:Phase 2 产品外壳(T-201 至 T-206 已完成)
|
||||
- 代码:已建立 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-206 已完成
|
||||
- UI:Gio 双页 Shell 使用左侧“实例/设置”导航;四个设置路径有独立异步可取消搜索,切换页面后输入和任务状态保留;新建实例表单使用 Label、目录选择入口和 Chrome/Edge RadioButton;CLI `list/events` 已可用,`start/stop/restart` 等待 BrowserManager adapter
|
||||
- UI:Gio 双页 Shell 使用左侧“实例/设置”导航;四个设置路径有独立异步可取消搜索,切换页面后输入和任务状态保留;新建实例表单使用 Label、Windows 原生目录选择器和 Chrome/Edge RadioButton;CLI `list/events` 已可用,`start/stop/restart` 等待 BrowserManager adapter
|
||||
- 浏览器核心:设计参考来自 `D:\OPC\shop_helm\internal\platform\chrome`,尚未复制或接入本项目
|
||||
- blocker:无;下一步可进入 BrowserManager application adapter、原生文件选择器和真实 UI 操作接线。
|
||||
- blocker:无;下一步可进入 BrowserManager application adapter,以及设置页路径选择器和真实 UI 操作接线。
|
||||
|
||||
## 当前目录
|
||||
|
||||
|
||||
+1
-1
@@ -35,4 +35,4 @@ owner: codex
|
||||
- 变更: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` 均通过。
|
||||
- 阻塞:无。
|
||||
- 残余风险:原生 Windows 文件/目录选择器仍需后续 platform adapter;`go test -race` 在当前环境因 `CGO_ENABLED=0` 不可用。
|
||||
- 残余风险:新建实例的原生目录选择器已由 T-207 接入;设置页路径选择器仍需同一 platform adapter 扩展;`go test -race` 在当前环境因 `CGO_ENABLED=0` 不可用。
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
---
|
||||
id: T-207
|
||||
title: 接入新建实例的 Windows 目录选择器
|
||||
phase: 2
|
||||
deps: [T-206]
|
||||
status: DONE
|
||||
created: 2026-07-22
|
||||
owner: codex
|
||||
---
|
||||
|
||||
## 需求与背景
|
||||
|
||||
新建实例的“选择路径”此前只是表单反馈,不会打开 Windows 文件夹选择器,用户无法通过按钮设置 User Data Dir。
|
||||
|
||||
## 方案与边界
|
||||
|
||||
- Windows 平台适配层使用隐藏的 STA PowerShell 进程打开 `FolderBrowserDialog`,避免在 Gio FrameEvent 中阻塞。
|
||||
- Gio Shell 在 goroutine 中调用目录选择器,并通过结果通道和 `Window.Invalidate` 回到 UI;成功后回填 User Data Dir,取消或失败保留原输入。
|
||||
- 同时限制重复打开:选择器已打开时不创建第二个对话框。
|
||||
- 本任务只覆盖新建实例的 User Data Dir;设置页各路径选择按钮仍是后续范围。
|
||||
|
||||
## 验收要点
|
||||
|
||||
- 点击“选择路径”打开 Windows 文件夹选择器。
|
||||
- 选择目录后回填输入框;取消时不清空输入。
|
||||
- 平台命令和 Shell 回填逻辑有单元测试。
|
||||
- `go test ./...`、`go vet ./...` 和 Windows 构建通过。
|
||||
|
||||
## 执行记录
|
||||
|
||||
- 状态:DONE
|
||||
- 变更:新增 `internal/platform/files` Windows 目录选择器和 Gio 异步回填状态;更新 UI 测试与当前状态文档。
|
||||
- 验证:`gofmt`、`go test ./...`、`go vet ./...`、Windows build/smoke 通过。
|
||||
- 阻塞:无。
|
||||
- 残余风险:当前 PowerShell adapter 依赖 Windows Forms 和 `powershell.exe` 可用;设置页的路径选择器尚未复用该 adapter。
|
||||
+1
-1
@@ -23,7 +23,7 @@
|
||||
- 详情和新建配置使用右侧抽屉,不创建文档标签。
|
||||
- 选择实例后,右侧详情同时承载当前状态、操作、配置摘要和最近活动;不要求用户在实例与活动页面之间切换。
|
||||
- 设置作为独立顶级页面,采用显式提交;取消只恢复本次未保存的表单修改。
|
||||
- 路径搜索不进行默认全盘扫描:浏览器搜索标准安装路径,目录搜索验证当前输入;原生选择器由后续 platform adapter 提供。
|
||||
- 路径搜索不进行默认全盘扫描:浏览器搜索标准安装路径,目录搜索验证当前输入;新建实例的 User Data Dir 已接入 Windows 原生选择器。
|
||||
- 外部实例显示占用证据,但不提供接管或强制关闭入口。
|
||||
- 原型中的“确认”只模拟事件反馈,不启动真实浏览器或改变文件。
|
||||
|
||||
|
||||
Reference in New Issue
Block a user