Skip to content

v1.8.3 — 快过期的积分先花掉,失效的登录别再刷屏

Choose a tag to compare

@XDTrees XDTrees released this 08 Oct 08:17
· 14 commits to main since this release

这一版有两件事。一件是新的第五种账号使用方式:让积分包最快过期的那个账号先上,别把积分放过期了。另一件是修一个看着很吓人的毛病——账号失效之后,卡片上会顶着一大段英文,把整个面板撑爆,而且每刷新一次就再撞一次墙。

新增:第五种模式「先花快到期的」

积分有两种:月度包每月自动刷新,永远不会过期;一次性包有明确截止日,到点没用完就归零。以前插件不知道这个区别,轮着用谁都是随机——结果就是某个账号的一次性积分包在角落里静静过期,而你还在用另一个账号刷。

现在多了一个选项:优先使用积分包最快过期的账号。

  • 数据直接来自上游本来就返回的 nearestExpiryMs 字段,没有为这个模式多发任何一次请求。
  • 月度包不参与排序——它不会过期,算它「紧急」纯属瞎紧张。
  • 没读过积分的账号排在最后。理由很简单:「没看过」不等于「有截止日」,拿未知去压真实截止日是错的。
  • 积分花完或过期之后,那个截止日会被擦掉,不是一直记着。否则池子会死死钉在一个积分已经空了的账号上,跟这个模式的目的正好相反。
  • 读不到任何到期信息时,行为退回「优先」模式。放心开。

默认仍然是「优先」,没有偷偷改任何人的设置。

模式选择换了排版:五个并排,说明放下面

第五个模式一加进来,原来那个「两列网格 + 最后一个跨整行」的排版就散了:五个格子掉成两行,最后一个还孤零零撑满一行,看着像掉出了网格。

现在改成一行可换行的芯片:

  • 面板放得下的时候,五个模式一行排开,宽度自动均分。设置面板常见的 700px 宽度也还读作一行选择,而不是在 760px 处突然塌成两列。
  • 真的放不下了才换行,换行后最后那个会自动撑满整行——这是 flex 的天然行为,不需要任何「最后一项跨行」的补丁规则,也就不会出现「明明第一行还装得下、却把第五个挤到第二行」的怪事。
  • 每块芯片里只剩模式名。五句话塞进五个小方块会让选择器变成五段散文,所以说明改成行下方一行字,只讲当前选中的那个模式。

修:网关 401 不再打印一整段英文

有人的卡片上,三个失效账号每个都顶着这么一段:

the WorkBuddy gateway rejected this credential (http 401). This usually means
the account is using a stale sign-in the upstream no longer accepts: sign in
again in the WorkBuddy desktop app, then pick the account on the plugin card.
Run `dsh-workbuddy-xdpool doctor` to list every credential found.

话说得没错,但它出现在面板正文里,三个账号就是三段,把卡片撑到没法看。

现在:

  • 这段文字折叠成一个红色短标记,完整原文进鼠标悬停提示。要看细节还在,不想看的时候不占地方。
  • 更关键的是它现在真的会被当成「登录已失效」。以前只有「刷新 token 被拒」才会判死,而如果凭据文件里写的过期时间还在未来,刷新那一步根本不会跑——于是每次卡片刷新都老老实实再撞一次 401,撞完再显示一次红字。现在只要网关返回那段 HTML 拒绝页,就按失效处理:账号进冷却、退出轮换。
  • 失效的账号不再多吃一次签到探测。以前每个死账号刷新时会被打两次(积分一次、签到一次),现在只打一次——签到那步直接跳过。
  • 会自我纠正:只要某次积分读成功了,就说明登录其实是好的,死标立刻清掉。不用手动点任何按钮。

关于那三个账号

顺带说一句:本机实测那三个报 401 的账号是真的失效了,不是插件误判——强制刷新时上游明确回 session_dead (http 401): 12153:refresh token is invalid。要恢复它们,去 WorkBuddy 桌面端重新登录,再回卡片点「重新检测账号」。