Repository navigation
v1.8.3 — 快过期的积分先花掉,失效的登录别再刷屏
这一版有两件事。一件是新的第五种账号使用方式:让积分包最快过期的那个账号先上,别把积分放过期了。另一件是修一个看着很吓人的毛病——账号失效之后,卡片上会顶着一大段英文,把整个面板撑爆,而且每刷新一次就再撞一次墙。
新增:第五种模式「先花快到期的」
积分有两种:月度包每月自动刷新,永远不会过期;一次性包有明确截止日,到点没用完就归零。以前插件不知道这个区别,轮着用谁都是随机——结果就是某个账号的一次性积分包在角落里静静过期,而你还在用另一个账号刷。
现在多了一个选项:优先使用积分包最快过期的账号。
- 数据直接来自上游本来就返回的
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 桌面端重新登录,再回卡片点「重新检测账号」。