feat: add settings schema

This commit is contained in:
QiuSW
2026-07-09 00:12:30 +08:00
parent 5aaac0b166
commit 91debb9ad6
24 changed files with 867 additions and 53 deletions
+12 -1
View File
@@ -38,6 +38,7 @@ frontend/src
- `internal/services/store.go`:负责 SQLite 连接、迁移和基础读写。
- `internal/services/appservice.go`:负责窗口、托盘、语言资源和应用生命周期。
- `internal/services/appconfig_service.go`:负责配置读写的 Wails 服务边界。
- `internal/services/settings_schema.go`:集中定义设置模块 schema、默认值、选项和初始化 SQL。
- `internal/services/hotkey_service.go`:负责热键读取、更新和重新注册。
- `internal/services/ocr_service.go`:当前 OCR 存量示例,后续可演进为图片 AI 能力的一部分。
- `platform/`:隔离 Windows / macOS 热键和系统能力差异。
@@ -45,6 +46,7 @@ frontend/src
已实现边界:
- `AuthService`:登录、退出、会话读取;内部通过 `AuthProvider` 接入本地固定账号或真实后端。当前 `LocalAuthProvider` 可用,`RemoteAuthProvider` 保留边界并返回未配置错误。
- `AppConfigService`:通过统一设置 schema 初始化和校验主题、语言、窗口行为、快捷键展示、数据目录、日志策略和登录配置。
目标新增边界:
@@ -123,6 +125,15 @@ appconfig(
)
```
当前 `appconfig` 默认配置由统一设置 schema 生成:
- `theme.mode`、`language`
- `window.start_state`、`window.width`、`window.height`、`window.remember_state`
- `shortcut.open_second_window`、`shortcut.open_main_window`
- `data.root_mode`、`data.custom_directory`
- `logs.level`、`logs.audit_retention_days`、`logs.app_retention_days`
- `auth.provider`、`auth.local.username`、`auth.local.password_salt`、`auth.local.password_hash`
```sql
auth_sessions(
id INTEGER PRIMARY KEY,
@@ -213,7 +224,7 @@ image_task_results(
- 第二窗口保持当前小窗定位,不参与最大化、尺寸恢复和主布局填充逻辑。
- 后续增强再保存主窗口尺寸和最大化状态,下次启动恢复用户选择。
实现状态:主窗口初始尺寸、居中、可调整大小、根容器和主布局填充已落地;主应用路由骨架已落地;登录 provider 边界已落地。窗口尺寸持久化依赖设置 schema 后续实现。
实现状态:主窗口初始尺寸、居中、可调整大小、根容器和主布局填充已落地;主应用路由骨架已落地;登录 provider 边界已落地;设置模块统一 schema 已落地。窗口尺寸持久化下一步基于 `window.*` 配置实现。
## 关键风险