feat: add gio instances and settings shell
This commit is contained in:
@@ -2,8 +2,8 @@
|
||||
|
||||
| 层 | 选择 | 约束 |
|
||||
| --- | --- | --- |
|
||||
| 核心 | Go 1.23(当前基线) | 标准库优先,Windows API 通过小型适配层封装;升级到 Go 1.25+ 需重新验证构建。 |
|
||||
| Windows UI | Go Gio(版本待锁定) | UI 线程不执行进程和文件 I/O;实现前制作 HTML 原型。 |
|
||||
| 核心 | Go module `go 1.24` | 标准库优先,Windows API 通过小型适配层封装;当前环境使用 Go toolchain 自动切换到 1.25.12。 |
|
||||
| Windows UI | Gio `v0.10.1` | UI 线程不执行进程和文件 I/O;原型已交接,widget 状态由 Shell 持有。 |
|
||||
| 持久化 | SQLite 或 JSON(MVP 前决策) | 配置不保存密码、Cookie、Token。 |
|
||||
| 进程 | `os/exec` + Windows API | 参数数组启动;Job Object、窗口消息和句柄按职责封装。 |
|
||||
| API | 本地 CLI,后续可选 loopback HTTP/WebSocket | 默认只监听本机。 |
|
||||
|
||||
+1
-1
@@ -23,7 +23,7 @@
|
||||
|
||||
| ID | 任务 | 依赖 | 状态 |
|
||||
| --- | --- | --- | --- |
|
||||
| T-201 | HTML 原型、Gio 外壳和实例列表/表单 | T-002 | TODO |
|
||||
| T-201 | HTML 原型、Gio 外壳和实例列表/表单 | T-002 | DONE |
|
||||
| T-202 | 本地配置持久化和实例恢复 | T-101 | TODO |
|
||||
| T-203 | CLI 合约和本地事件推送 | T-103 | TODO |
|
||||
| T-204 | UI 全状态验收与 Windows 打包 smoke | T-201,T-202,T-203 | TODO |
|
||||
|
||||
@@ -3,11 +3,11 @@
|
||||
## 快照
|
||||
|
||||
- 日期:2026-07-22
|
||||
- 阶段:文档与交互原型准备
|
||||
- 代码:已建立 Go module `chub`、`cmd/chub` 入口、logging 测试基座、浏览器 domain/application 合约、Chrome/Edge 参数/发现模块、启动 registry、Windows 身份/占用检查、优雅关闭、Job Object 和真实 Chrome/Edge smoke,T-001 至 T-003、T-101 至 T-104 已完成
|
||||
- UI:尚未实现;P0 页面需要先制作 HTML 原型
|
||||
- 阶段:Phase 2 产品外壳(T-201 已完成)
|
||||
- 代码:已建立 Go module `chub`、`cmd/chub` 入口、logging 测试基座、浏览器 domain/application 合约、Chrome/Edge 参数/发现模块、启动 registry、Windows 身份/占用检查、优雅关闭、Job Object 和真实 Chrome/Edge smoke,T-001 至 T-003、T-101 至 T-104、T-201 已完成
|
||||
- UI:已接入 Gio v0.10.1 双页桌面壳,包含实例列表、状态展示、启动入口、设置表单;配置保存和真实服务接入由 T-202/T-203 完成
|
||||
- 浏览器核心:设计参考来自 `D:\OPC\shop_helm\internal\platform\chrome`,尚未复制或接入本项目
|
||||
- blocker:无;Phase 1 核心进程任务已完成,下一个任务为 T-201(Gio 外壳与 UI 原型交接)
|
||||
- blocker:无;下一个任务为 T-202(本地配置持久化和实例恢复)
|
||||
|
||||
## 当前目录
|
||||
|
||||
@@ -16,8 +16,9 @@
|
||||
| `docs/` | 已建立 | Harness Coding 项目文档 |
|
||||
| `docs/ui/` | 已建立 | Chub HTML 交互原型 |
|
||||
| `docs/tasks/` | 已建立 | 一任务一文件目录 |
|
||||
| `cmd/` | 待建 | Go 命令入口 |
|
||||
| `cmd/chub/` | 已建立 | Go 命令入口和版本输出 |
|
||||
| `cmd/` | 已建立 | Go 命令入口 |
|
||||
| `cmd/chub/` | 已建立 | Gio 窗口入口和版本常量 |
|
||||
| `internal/ui/` | 已建立 | Gio 实例/设置双页 Shell |
|
||||
| `internal/platform/logging/` | 已建立 | 可注入的结构化 JSON 日志 |
|
||||
| `internal/` | 部分建立 | 后续扩展 application/domain/platform 实现 |
|
||||
|
||||
@@ -39,4 +40,4 @@ go build -o build/chub.exe ./cmd/chub
|
||||
|
||||
本机 Chrome 和 Edge 均已通过 headless 双实例 smoke;headless 不提供可见 message window,因此外部 profile lock/window 证据仍是后续补充验证项。
|
||||
|
||||
`shop_helm` 仅是参考项目,不是本项目代码目录。当前基线已通过 T-001 的测试、vet、构建和启动验证。
|
||||
`shop_helm` 仅是参考项目,不是本项目代码目录。当前基线已通过 T-201 的测试、vet 和 Windows 构建验证。
|
||||
|
||||
@@ -0,0 +1,36 @@
|
||||
---
|
||||
id: T-201
|
||||
title: 完成 HTML 原型交接、Gio 外壳和实例列表/表单
|
||||
phase: 2
|
||||
deps: [T-002]
|
||||
status: DONE
|
||||
created: 2026-07-22
|
||||
owner: codex
|
||||
---
|
||||
|
||||
## 需求与背景
|
||||
|
||||
把已确认的 `docs/ui/browser-manager.html` 交接为可运行的 Windows 桌面 UI 基础,先建立实例与设置两个稳定入口,再接入真实服务和配置存储。
|
||||
|
||||
## 方案与边界
|
||||
|
||||
- 使用 Gio `v0.10.1`,窗口入口位于 `cmd/chub`,页面壳位于 `internal/ui`。
|
||||
- 顶部只保留“实例”和“设置”两个导航入口;活动信息后续放入实例详情,不增加第三个模块。
|
||||
- 实例列表当前使用明确标注的 mock view model,展示 Chrome/Edge、Profile、运行中/启动中/外部占用/已退出状态。
|
||||
- 设置页先完成 Chrome/Edge 路径、默认 User Data Dir、日志目录和退出行为表单;保存接入由 T-202 完成。
|
||||
- 所有 Gio editor、clickable、list 和 checkbox 状态均由 `Shell` 持有,避免每帧重建。
|
||||
|
||||
## 验收要点
|
||||
|
||||
- `go test ./...`、`go vet ./...` 通过。
|
||||
- `go build -o build/chub.exe ./cmd/chub` 通过。
|
||||
- Windows 窗口默认显示实例页,能切换设置页;交互控件具备稳定状态。
|
||||
- 不在 FrameEvent 中执行进程、文件或网络 I/O。
|
||||
|
||||
## 执行记录
|
||||
|
||||
- 状态:DONE
|
||||
- 变更:锁定 Go module `go 1.24` 与 Gio `v0.10.1`;新增双页 `internal/ui.Shell`,更新 `cmd/chub` 为 Gio 窗口入口,并同步技术栈、当前状态和路线图文档。
|
||||
- 验证:`gofmt`、`go test ./...`、`go vet ./...`、`go build -o build/chub.exe ./cmd/chub` 均通过。
|
||||
- 阻塞:无。
|
||||
- 残余风险:当前实例数据仍为 mock,设置保存尚未写入本地配置;分别由 T-202 和 T-203 接入。
|
||||
Reference in New Issue
Block a user