Skip to content

Releases

v0.2.0 — 娱乐化耗尽估算、界面常驻显示、DSH 0.1.5 兼容修复

Choose a tag to compare

@btbxbob btbxbob released this 14 Sep 06:11

本次更新

预计耗尽时间:更娱乐,也更常出现

  • 旧算法要求「余额连续下降且跨度 ≥ 1 天」——在每 2 分钟采样、余额长期持平的现实下几乎永远凑不出来,所以估算经常缺失
  • 改为取最近 N 次查询(新配置 estimateLookback,默认 8):把窗口内相邻采样之间的每次下降累加为消耗,摊到窗口跨度得到日均消耗,再除以当前余额
  • 三种情况都有显示:有消耗 → 具体天数;窗口内纹丝不动 → 「余额纹丝不动,感觉能用到地老天荒」;历史不足 2 次 → 「查询次数还太少,再攒几次就能瞎猜了」
  • 响应新增 windowHours(估算依据的时间跨度)与 basedOnSamples(依据的查询次数)
  • 可配置项:estimateLookback(默认 8)、historyMaxAgeDays(默认 90)

界面上常驻显示耗尽时间

  • 徽标改为双行卡片:第一行余额,第二行常驻显示预计耗尽时间(不再只放在悬停 title 里)
  • 估算不足 1 天时显示具体时分:今天 13:22 见底(最近不到 1 小时瞎猜)
  • 窄条(折叠)模式显示紧凑版:≈7h / ≈37天 / ≈1.2年 / 用不完
  • 悬停仍保留充值 / 赠送明细、日均消耗、依据查询次数与最近更新时间

兼容性修复(重要)

  • DSH 0.1.5 起重写的 slots 运行时要求插槽先被父条目声明。原先在 apply() 里直接 ctx.slots.register(...) 会导致整个 loader entry 加载失败:

    failed to apply loader entry <hash> (dsh-balance): slot "sidebar.footer.action" is not declared
    (a parent entry's children table must declare it)
    

    症状很有迷惑性:宿主路由正常、boot 清单里也有 dsh-balance/client.js,但页面上徽标就是不出现,只在浏览器控制台报错

  • 改用 ctx.slots.inject("sidebar.footer.action", …) 等待声明:已声明则立即执行,否则等声明提交后执行;控制器归属本 fiber,卸载会自动取消等待 / 撤下贡献

  • 已在 DSH 0.1.5-rc.1 端到端验证:宿主路由 200、宽屏与窄条两种模式均正常渲染、控制台零报错

文档

  • 新增兼容性章节(含上述报错原文、根因与修法)
  • 修正安装 / 生效 / 卸载路径:生效副本在 ~/.dsh/profiles/node_modules/<name>(扁平回退目录,纯拷贝,不是 profiles/web/node_modules);并强调 cordis.patch.yml 里的挂载行被注释 = 完全不加载

安装

见 README。

验证

curl http://127.0.0.1:3080/ds-balance/balance
# {"ok":true,"is_available":true,"balance_infos":[{"currency":"CNY","total_balance":"61.60",...}],
#  "estimation":{"available":true,"daysLeft":36.4,"basedOnSamples":8,"windowHours":135.2}}

所有估算数字都是刻意放松准确性的娱乐向结果,别当真。

完整版本历史见 CHANGELOG.md。