iven
|
367f21de08
|
feat(app): 统一同步协议 — SyncModels + ApiClient.sync + SyncEngine.tryBatchSync
Main Merge / backend (push) Has been cancelled
Main Merge / frontend (push) Has been cancelled
Flutter ↔ Rust 同步协议对齐:
- 新增 sync_models.dart: SyncReq/SyncResp/SyncChange/ConflictInfo
与 Rust dto.rs 一一对应 (CreateJournal/UpdateJournal/DeleteJournal)
- ApiClient.sync(): 调用 POST /diary/sync 批量同步端点
- SyncEngine.tryBatchSync(): PendingOperation → SyncChange 批量提交
成功清空队列,冲突保留待用户处理
保留原有逐个同步 trySync() 作为降级方案
后端 509/509 测试通过, Flutter analyze 0 error
|
2026-06-03 17:20:51 +08:00 |
|
iven
|
38592d61ce
|
refactor(diary): Phase 3 质量提升 — 201 状态码 + OpenAPI 文档 + DiaryEvent 类型安全
Main Merge / backend (push) Has been cancelled
Main Merge / frontend (push) Has been cancelled
前端:
- fix(app): Isar native 文件直接导入 isar_database_native.dart,消除 5 个条件导出类型错误
- chore(app): build_runner 重新生成 .g.dart 文件 (102 outputs)
- fix(app): 移除 secure_token_store_factory 未使用的 kIsWeb import
后端:
- refactor(diary): 所有创建端点 POST 返回 201 Created (9 handler, 11 端点)
- feat(diary): DiaryApiDoc OpenApi derive — 42 路径 + 32 Schema 汇总到 Swagger
- feat(diary): DiaryEvent 枚举添加 event_type/payload/to_domain_event 方法 + 4 测试
测试: 84/84 erp-diary 通过, 509/509 全仓库通过, Flutter analyze 0 error
|
2026-06-03 17:06:03 +08:00 |
|
iven
|
32a91551c4
|
perf(app): Phase 2 前端性能优化 5 项 — 8b-D01/D02/D03/M02/N01
Main Merge / backend (push) Has been cancelled
Main Merge / frontend (push) Has been cancelled
- 8b-D01: Isar 添加 authorId+dateEpoch 复合索引和 dateEpoch 单独索引
- 8b-D02: getJournals 分页改为 DB 层 .offset().limit() 替代 Dart 层 sublist
- 8b-D03: home_bloc monthCount 改用日期范围独立查询(不受分页限制)
- 8b-M02: 笔画光栅化改为 BBox 裁剪 — 短笔画不再创建全画布尺寸图像
- _CacheEntry 增加 offset 字段记录 BBox 偏移
- _rasterizeStroke 计算包围盒 + 4px padding
- _compositeIncremental 使用 offset 定位
- 8b-N01: SyncEngine enqueue 合并同一资源的操作
- create+update → create(最新数据)
- update+update → update(最新数据)
- update+delete → delete
- create+delete → 取消(不发送)
- 注意: Isar .g.dart 需运行 build_runner 重新生成
|
2026-06-03 16:05:11 +08:00 |
|
iven
|
11d0971a67
|
feat(app): pnpm 一键启动 + Flutter Web 编译修复
Main Merge / backend (push) Has been cancelled
Main Merge / frontend (push) Has been cancelled
1. 新增 pnpm start:dev / pnpm start:stop 命令
- scripts/dev.mjs: 跨平台启动脚本(后端+管理端+学生端)
- scripts/stop.mjs: 端口清理停止脚本
- 根 package.json 定义 pnpm 脚本
2. 修复 Flutter Web 编译(Isar 3.x + flutter_secure_storage 不兼容)
- isar_database: 条件导出,Web 用空 stub
- isar_journal_repository: 条件导出,Web 用空 stub
- sync_engine: 条件导出,Web 用内存队列(无 Isar 持久化)
- 移除 flutter_secure_storage(v9 web 插件用 dart:html)
- 新增 SecureTokenStore 接口 + shared_preferences 实现
- auth_repository 改用 SecureTokenStore 接口
|
2026-06-03 09:50:19 +08:00 |
|