9.6 KiB
9.6 KiB
当前状态
更新时间:2026-07-09
当前阶段
项目处于可复用桌面应用模板的 Phase 1 基础模块建设阶段。目标已经从迁移后的基础工程调整为“Windows-first、可扩展到其他平台的桌面端应用模板”。
当前代码已从迁移后的 Wails/Vue/SQLite 基线推进到主应用路由骨架、登录 provider 边界、统一设置 schema、主窗口状态恢复和商品图片 AI 优化任务模型阶段,已具备设置、多语言、主题、本地配置、热键、托盘、OCR 示例、模板级模块入口、本地登录能力和本地模拟图片优化任务能力。完整审计日志查询、运行日志和数据统计仍是骨架页面,尚未接入真实后端服务和业务数据模型。
已确认事实
- 项目类型:可复用桌面应用模板。
- 主要运行场景:Windows 10 以及以后的 Windows 操作系统。
- 跨平台策略:Windows-first,保留 macOS / Linux 适配边界,不在 MVP 承诺完整体验。
- 第一批业务样例:电商商品图片 AI 优化。
- 登录策略:本地固定账号 provider 已实现,真实后端 provider 已预留边界。
- 日志策略:审计日志用于用户动作追踪,运行日志用于系统排错。
- 第一批统计指标:今日处理图片数、AI 优化成功率、平均处理耗时、失败任务数、今日操作日志数、最近 7 天处理趋势。
- Go 模块名:
cmbone - Go 版本:
1.23.0 - Wails 版本:
v3.0.0-alpha.9 - 前端 runtime:
@wailsio/runtime 3.0.0-alpha.66 - 前端框架:Vue 3、Vite、TypeScript、Tailwind CSS、Ant Design Vue
- 当前 Wails 前端 bindings:由
wails3 build/wails3 generate bindings生成的.js文件。 - 本地数据库:SQLite,用户配置目录下
cmbone/cmbone.db - 当前本地演示账号:
admin/admin123,密码由后端初始化为 salt + SHA-256 hash,不写死在前端。 - 当前主窗口路由:
/#/重定向到/#/dashboard。 - 当前主应用模块路由:
/#/login、/#/dashboard、/#/image-optimizer、/#/logs、/#/statistics、/#/settings、/#/components。 - 当前兼容重定向路由:
/#/business/image-optimizer、/#/logs/audit、/#/logs/app。 - 当前第二窗口路由:
/#/second - 已实现主窗口策略:默认不最大化,初始
1280x800,最小1024x720,居中,可调整大小;启动后可按window.*配置恢复尺寸和最大化状态。 - 已实现页面布局策略:根容器
width: 100%、height: 100vh,内部 flex/grid 填满窗口。 - 已实现内容区策略:阅读型内容保留最大宽度;列表、仪表盘、设置页自适应拉伸。
- 已保留第二窗口策略:保持小窗,不参与主窗口最大化和尺寸恢复逻辑。
- 已实现 AuthService:
GetAuthProviders、GetAuthMode、SetAuthMode、Login、Logout、GetCurrentSession。 - 已实现登录审计留痕:登录成功、登录失败和退出写入
audit_logs。 - 已实现统一设置 schema:主题、语言、窗口行为、快捷键展示、数据目录、日志策略和登录 provider 配置都有默认值、说明和基础校验。
- 已实现设置页 schema 展示:
/#/settings可读取后端GetSettingsSchema并展示分组、当前值、默认值、说明和只读标记。 - 已实现主窗口状态持久化:主窗口普通尺寸和最大化状态会写回
appconfig,下次启动恢复;第二窗口不参与该逻辑。 - 已实现 ImageOptimizationService:
CreateTask、ListTasks、GetTask、CancelTask,当前 provider 为本地模拟实现。 - 已实现
image_tasks和image_task_results表,模拟任务可写入成功状态、耗时、输出路径和前后文件大小。
当前命令
统一验证:
.\init.ps1
拆分验证:
go test ./...
cd frontend
npm run build
npm run typecheck
cd ..
go build -o bin\cmbone.exe .
Wails CLI:
go install github.com/wailsapp/wails/v3/cmd/wails3@v3.0.0-alpha.9
wails3 dev
wails3 build
.\dev.bat
.\build.bat
已知风险
- 模板范围容易膨胀,必须按任务小步实现。
- Wails v3 alpha 版本需要保持 CLI、Go 模块和前端 runtime 匹配。
- 真实后端登录 provider、真实 AI provider、完整日志查询和统计模块尚未实现,当前仍是后续任务。
- OCR 和热键依赖平台实现,跨平台修改需要分别验证。
- 当前前端以构建检查为主,暂未引入专门的前端单元测试。
- bindings 生成依赖本机安装的
wails3。 npm install当前报告 3 个 moderate audit findings,后续如做依赖治理应单独开任务。- 前端构建当前有 Browserslist 数据过期和 chunk 大小警告,不阻塞生产构建。
- Windows 快捷脚本依赖
go env GOPATH下的bin\wails3.exe,如果未安装 Wails CLI,先按 README 安装固定版本。 dev.bat为了尽快打开 GUI,使用不含vue-tsc的build:dev;提交前必须继续运行npm run build。
最近验证
2026-07-08 已运行:
.\init.ps1
结果:
npm install通过。go test ./...通过。npm run build通过。go build -o bin\cmbone.exe .通过。
同日完成可复用桌面应用模板定位校准后,已再次运行旧定位残留检查、git diff --check 和 .\init.ps1,结果均通过。
同日完成主窗口启动参数与根布局策略实现后,已运行:
.\init.ps1通过。go test ./...通过。cd frontend && npm run build通过。go build -o bin\cmbone.exe .通过。bin\cmbone.exe启动 6 秒 smoke 通过。
同日新增 Windows Wails 快捷脚本:
dev.bat一行切到项目根目录,把 Go bin 加入当前进程 PATH,并从9245开始选择空闲端口运行wails3 dev。build.bat一行切到项目根目录,把 Go bin 加入当前进程 PATH 并运行wails3 build。- 已补齐
build/windows/wails.exe.manifest和build/windows/info.json,使wails3 build的 Windows syso 生成步骤可运行。 cmd /c build.bat通过。dev.bat已验证能避开端口占用问题,进入windows:run并加载 WebView 资源。- 使用同样 PATH 逻辑执行
wails3 dev -help通过。 .\init.ps1通过。
同日修复 dev.bat 启动 GUI 等待过长问题:
frontend的build:dev改为快速 Vite dev 构建,避免vue-tsc在开发启动链路中长时间阻塞窗口打开。- 新增
npm run typecheck,正式质量门禁仍由npm run build覆盖类型检查和生产构建。 - 已验证
dev.bat能进入windows:run,拉起bin/cmbone.exe,并创建可见主窗口。
同日完成主应用路由骨架:
- 新增
frontend/src/layouts/MainLayout.vue,主窗口改为侧边导航、顶部窗口区和路由内容区。 - 新增登录、工作台、商品图片 AI 优化、操作日志、数据统计、设置、组件示例模块页。
- 新增
frontend/src/components/template/ModulePageShell.vue,用于模块标题、状态和摘要卡片。 frontend/src/router/index.ts已切换为主应用模块路由,第二窗口继续保留/#/second。npm run typecheck、npm run build、npm run build:dev、go test ./...、go build -o bin\cmbone.exe .、cmd /c build.bat和dev.bat烟测通过。
同日完成登录 provider 边界:
- 新增
AuthService、LocalAuthProvider和RemoteAuthProvider。 - 新增
auth_sessions和audit_logs迁移。 - 登录页通过 Wails bindings 调用后端 AuthService,不在前端写固定账号密码。
- 默认本地演示账号为
admin/admin123,密码以后端配置 hash 形式保存。 - 登录成功、失败和退出会写审计日志。
go test ./...、npm run typecheck、npm run build、npm run build:dev、go build -o bin\cmbone.exe .、cmd /c build.bat和dev.bat烟测通过。
同日完成统一设置 schema:
- 新增
internal/services/settings_schema.go和internal/models/settings.go。 AppConfigService.GetSettingsSchema返回设置分组、配置项、默认值和当前值。SetAppConfig对 schema 已知项执行 select、boolean、number 和只读校验。theme.mode改为从后端配置读取,并支持light、dark、systemdefault。/#/settings展示统一设置 schema。go test ./...、npm run typecheck、npm run build、go build -o bin\cmbone.exe .、cmd /c build.bat通过。
2026-07-09 完成主窗口状态持久化:
- 主窗口启动时读取
window.width、window.height、window.start_state和window.remember_state。 - 主窗口 resize、maximize、restore 和 closing 时写回普通尺寸和最大化状态。
window.remember_state默认值调整为true。- 已补充旧默认值迁移,把 T-014 旧描述下的
window.remember_state=false升级为true。 - 第二窗口仍保持固定
340x320小窗,不注册尺寸恢复逻辑。 go test ./...、npm run build、go build -o bin\cmbone.exe .和cmd /c build.bat通过。
同日完成商品图片 AI 优化任务模型:
- 新增
internal/models/image_task.go和internal/services/image_optimization_service.go。 - 新增
image_tasks、image_task_results迁移和索引。 - 新增
ImageOptimizationService.CreateTask/ListTasks/GetTask/CancelTask。 - 当前
CreateTask使用本地模拟 provider,创建成功任务和结果记录。 - 已重新生成 Wails
.jsbindings。 go test ./...、npm run build、go build -o bin\cmbone.exe .和cmd /c build.bat通过。
下一步
从 06-tasks.md 领取第一个 TODO 任务。目前建议先做 T-021:实现审计日志与运行日志边界。
当前 blocker
无。