Skip to content

v0.5.6 — 网页端重构 + NetworkUnlockMod 补丁修复

Choose a tag to compare

@High-cla High-cla released this 21 Sep 22:59
· 44 commits to master since this release

v0.5.6

网页端重构 (docs/items_browser.html)

设计令牌:39 个硬编码色值 / 144 处颜色字面量收敛为 :root 令牌(唯一处定义);新增 27 个类别身份色 --c-<category>;清除 8 处内联 style=;补 prefers-reduced-motion。

可访问性(WCAG AA,浏览器实测计算样式):

  • --fg-para #7a8290 → #8f95a1(卡片上 4.21 → 5.42)
  • --fg-faint #6a7280 → #9096a0(最低 3.16 → 4.55)
  • 分类 active 标签改用 color-mix(类别色 88%, #fff),29 个类别全部 ≥4.5(最低 4.53),此前 12/28 不达标
  • 全站 :focus-visible 焦点环;卡片/库存行 role=button tabindex=0(Enter/Space);toast role=status aria-live=polite;aria-pressed;Escape 关闭详情

健壮性:新增 apiFetch(path, ms) 统一入口(AbortController 超时、非 JSON 容错),收敛 8 处重复 fetch 样板;esc() 补引号转义;搜索 120ms 防抖;toast clearTimeout 消除竞态;轮询 document.hidden 门控。

修真实 UX 缺陷(假成功):/api/health 只证明 HTTP 线程存活、不触主线程,而 OnUpdate 主线程在窗口失焦/未进存档时不排空 —— 旧版据此谎报「已连接」,/api/spawn 只入队即返回 200 却报「已生成」。现增加二级探针 /api/mine 判定主线程可达(失焦显示黄点「主线程未响应」),并在生成后轮询确认 token 落地才报成功,超时明确提示「已入队但未见产物」。后端未改动。

零回归:481 卡 / 0 重复 stableId / 0 模板泄漏 / 无横向溢出;头部过期计数(写 429,实际 481)改为运行时写入。

NetworkUnlockMod 修复

  • 补 [assembly: HarmonyDontPatchAll] —— MelonLoader 默认自动 PatchAll,与原显式 PatchAll 双路径叠加导致 Prefix 执行两遍
  • OnPreferencesSaved 幂等化 —— 该事件为全局订阅,启动期被误触发 9 次重建 HashSet 并打日志
  • 配置分隔符补 \t —— 从表格粘贴的 id1\tid2 原先被当作单个 id,静默不解锁

产物

文件 大小 配置
ProgressMod.dll 70656 B Release
InventorySorter.dll 57856 B Release
NetworkUnlockMod.dll 8704 B Release

说明

  • 三个 DLL 均以 dotnet build -c Release 构建,0 警告 0 错误;ilspycmd 核验为 Release 配置(Debuggable 为最小 IgnoreSymbolStoreSequencePoints)。强制 -t:Rebuild 两次字节相同,构建确定性成立。
  • 与 v0.5.5 资产哈希不同(尺寸相同、源码零差异):定位为构建环境漂移(.NET SDK / 游戏侧引用程序集更新);嵌入 PDB 路径一致,逐字节差异仅 149/70656 B 且集中于元数据区。今日构建为权威产物。