docs: update worklog for v0.5.2 (offline report + persist fix)

This commit is contained in:
2026-06-23 17:04:58 +00:00
parent 296c609479
commit fcf94b6c3f
+26 -2
View File
@@ -218,9 +218,32 @@
- **Gitea 推送**2 个 commitmain 源码 + gh-pages 静态资源)
- **dev 服务器 Turbopack 缓存不稳定问题**:偶发 `Unable to open static sorted file` + 进程被杀,需 `rm -rf .next` 重启。静态导出构建稳定可靠
### v0.5.2 离线收益系统 + 标签页 UI 重设计 + persist 竞态修复(本轮完成)
- **新功能:离线收益报告弹窗**`src/lib/game/offlineReport.ts` + `src/components/game/OfflineReportDialog.tsx`
- 玩家离开后回来,自动弹出"欢迎回来,无人机"弹窗
- 显示:离线采集获得的晶体数(+1.44K)+ 离线时长(1小时2分)+ 采集速率(0.4/s)+ 离线效率(50%)
- 当前晶体进度条(1.45K / 5.00K)+ 仓库满仓警告
- 领取收益按钮 + 程序化音效
- 模块级存储 + 自定义事件(`echo-nexus-offline-report`),不污染 GameState schema
- **关键 BUG 修复:persist rehydrate 竞态**`src/hooks/useGameLoop.ts`
- **根因**Zustand persist 即使用同步 localStoragerehydrate 也是异步(`Promise.resolve` 包装)。init 在 useEffect 中执行时,rehydrate 可能未完成,`s.lastTick` 是 INITIAL_STATE 的 undefined`elapsed = NaN`,不进入离线补发分支 → `setPendingOfflineReport` 不调用 → 弹窗不弹
- **修复**useGameLoop 用 `useGameStore.persist.hasHydrated()` 检查,若未 rehydrated 则 `onFinishHydration(doInit)` + 500ms 兜底 setTimeout
- **验证**:通过 5 轮调试(window.__initTrace / __lastOfflineReport / __offlineCheck / __loopMounted 标记法)定位
- **UI 优化:标签页重设计**`src/app/page.tsx`
- 图标+文字纵向排列(`flex-col`),图标 h-3.5 w-3.5,文字 leading-none
- 每个标签独立主题色 glow:探险(琥珀)/技术(翠)/星图(玫)/图谱(青)/成就(琥珀)/信标(翠)/统计(灰)
- 通知圆点增大到 h-2 w-2 + `ring-1 ring-black/50` 描边
- active 状态阴影 `shadow-[0_0_12px_rgba(...)]`
- **QA 验证**agent-browser + VLM):
- 离线弹窗 UI 视觉评分 9/10(标题/晶体数/时长/速率/按钮/进度条全部正确)
- 标签页 UI 评分 7/10(VLM 建议强化颜色区分,已用 per-tab glow 实现)
- lint 零错误
- **Gitea 推送**main 分支 1 commit + gh-pages 分支静态资源
- **定时任务重置**job_id 227933cron `0 0/15 * * * ?`,每15分钟 webDevReview
### 进行中
- [ ] 持续迭代:云存档+云排行榜(v0.5+)、全5纪元手写叙事节点(v0.5+)、socket 多人同步星潮(后续)
- [ ] 回复 Issue #1 #28:告知已上线 Gitea Pages + 教程系统 + UI 优化
- [ ] 回复 Issue #1 #28:告知已上线 Gitea Pages + 教程系统 + UI 优化v0.5.1 已回复 #29
## 未解决问题或风险 / 下一阶段优先事项
@@ -241,6 +264,7 @@
5. socket 多人同步星潮
## 定时任务
- 已设置:每 15 分钟 webDevReview(自动 QA + 迭代开发,job_id: 227909fixed_rate 900s
- 已设置:每 15 分钟 webDevReview(自动 QA + 迭代开发,job_id: 227933cron `0 0/15 * * * ?`tz Asia/Shanghai
- 上一轮 job_id 227909 已失效(列表为空),已重新创建
---