feat: persist chub settings and instances
This commit is contained in:
@@ -0,0 +1,36 @@
|
||||
---
|
||||
id: T-202
|
||||
title: 实现本地配置持久化和实例恢复
|
||||
phase: 2
|
||||
deps: [T-101]
|
||||
status: DONE
|
||||
created: 2026-07-22
|
||||
owner: codex
|
||||
---
|
||||
|
||||
## 需求与背景
|
||||
|
||||
用户配置和实例定义必须在 Chub 重启后保留,且不能因为 UI 帧刷新或设置保存而丢失其他实例。
|
||||
|
||||
## 方案与边界
|
||||
|
||||
- MVP 使用用户配置目录下的 `chub/config.json`,结构带 `version` 字段,便于后续迁移。
|
||||
- 只保存可复现启动所需的路径、目录、浏览器类型、Profile 和 URL 等配置;不保存密码、Cookie、Token。
|
||||
- 保存采用 0600 临时文件、同步后替换目标文件,并保留失败回滚路径。
|
||||
- 启动阶段加载设置和实例定义;实例恢复为“已退出”视图,真实进程重连由后续服务层完成。
|
||||
- Gio 点击保存只调度异步写入,不在 FrameEvent 内执行文件 I/O。
|
||||
|
||||
## 验收要点
|
||||
|
||||
- 缺少配置文件时返回带默认值的空配置。
|
||||
- 配置可保存、重新加载,实例定义不丢失。
|
||||
- JSON 损坏或版本不支持时返回明确错误。
|
||||
- `go test ./...`、`go vet ./...`、`go build -o build/chub.exe ./cmd/chub` 通过。
|
||||
|
||||
## 执行记录
|
||||
|
||||
- 状态:DONE
|
||||
- 变更:新增 `internal/platform/config.Store`、JSON 版本结构、原子替换写入和 round-trip 测试;Gio 设置保存异步落盘,启动时恢复设置及已保存实例。
|
||||
- 验证:`gofmt`、`go test ./...`、`go vet ./...`、`go build -o build/chub.exe ./cmd/chub` 均通过。
|
||||
- 阻塞:无。
|
||||
- 残余风险:实例恢复目前只恢复配置视图,尚未自动重启浏览器或订阅实时进程事件;由 T-203 处理。
|
||||
Reference in New Issue
Block a user