Skip to content

v3.17.38 重构阶段1 · 存储与 API 单真值

Choose a tag to compare

@LMG-arch LMG-arch released this 11 Sep 01:09
· 0 commits to main since this release

v3.17.38 重构阶段 1 · 存储与 API 单真值

依据 docs/重构计划-2026-09-11.md 阶段 1 执行。

步骤 改动 结果
S1.1 主题单一真值:appStore 在创建时应用主题(接管冷启动);删除经典 settings.js setTheme/loadTheme、shims.js 两处桥接、renderer.js 的 loadTheme 调用块 主题唯一写入者 = appStore(键 calendar-theme)
S1.2 导航设置单一真值:删除 renderer.js 经典导航设置 IIFE(55 行,目标按钮位于死壳内) 唯一真值 = calendar-nav-items(LifeWorkbench / SettingsPage 管理)
S1.3 lifeEngine.loadState 存储读写配对:优先 __storage.get(与 saveState 的 set 成对),旧数据回退 getRaw → localStorage 既有数据不迁移、不丢失
S1.4 reminders.js 裸全局 showToast(...) → window.showToast?.(...) 与统一提示入口对齐

验证(agent-browser 实测)

  • 冷启动主题:写入 calendar-theme=purple → 重载 → body.dataset.theme=purple;区域 A --accent = 区域 B --plum = #7e57c2;0 错误
  • 主题持久化:切回 cosmic 后重载保持
  • 生活数据加载(新 .get 路径):records 24 / habits 5 / 总览时间线 5 行;saveText=已自动保存
  • 导航设置(IIFE 删除后):calendar-nav-items 去掉 stats → 重载 → 子导航 日历/打卡/好友/设置(无统计)、侧边栏 [data-work-sub=stats] display:none
  • 记账回归:占比条 4 段 + 图例百分比(购物66%/娱乐19%/吃饭13%/交通2%)
  • 全流程 window.onerror 捕获 0 条

附带产出

  • docs/重构回归清单.md:R1–R12 用例、通用探针、冒烟铁律(含双网格陷阱:必须限定 .calendar-view .day-cell)、阶段 0 基线快照
  • 基线标签 refactor-base(= v3.17.37)

下一步

阶段 2(v3.17.39):lifeEngine 稳健化 —— 统一 DOM 写入助手 + 69 处裸写分区替换 + 渲染函数失败隔离。