Skip to content

v0.2.5

Choose a tag to compare

@masknull masknull released this 16 Oct 12:32
· 25 commits to main since this release

修复多 profile 下数据目录选错、国际版活动赠送包不可见与「9999 年」假日期。 无 breaking、无需改配置。

修复

  • 多 profile 下插件数据目录可能落到错误的 profile(#15,感谢 @jipika):当 profiles/ 下存在一个把整棵 node_modules 软链到别的 profile 的残留目录时,它和真正在跑的 profile 会同时通过 realpath 比较,胜负被交给 readdirSync 顺序 —— 插件于是把凭据写进一个空目录,状态路由显示未登录,看起来像"升级把凭据弄丢了"。现在:
    • 整目录软链的 profile 一律出局(单候选时也一样),并打 warn;
    • 宿主报告的运行中 profile(profileContext.dir)优先于任何目录推断;
    • 候选无法判定(0 个或 ≥2 个合格)时打 warn 并列出候选,不再静默挑一个;
    • 顺带修掉"数据目录在 apply() 早期就被冻结"的时序问题。
  • 国际版活动赠送包完全不可见(#16,感谢 @JeffTsuiCUG):国际版把活动包放在 dedicatedResourcePackages 数组里,此前从未被读取,所以 Qoder 网页上明明有的一笔额度(如「SOTA 专属积分」2,000)在侧栏与「Qoder 额度」明细里都不存在。现在它会按上游给出的多语言标题单独成行,并携带该包自己的到期日(活动代号不会出现在界面上)。
  • 9999-12-31 被当成真实日期(同 PR #16):上游对个人账号的"不设到期"回的是 253402214400000 哨兵,此前被原样渲染成 重置时间:9999年12月31日,并被复制给每一行、覆盖掉包级真实到期日。现在哨兵被识别为"没有到期":界面不再出现 9999,账号整体无到期时改为显示 PAT 授权时间。
  • 额度面板底部两行文案会并列出现:「PAT 授权于…」现在只在账号确实没有整体到期时间时才出现,不再与真实的「到期 …」同时显示(与插件卡片状态页口径一致)。

说明

  • 本次改动涉及路径判定与额度解析,未改变任何请求协议、配置文件格式或凭据存放位置(数据目录仍是 <profile>/.dsh-qoder-connect/)。
  • 关于 #15 为何长期未暴露(触发它需要两个候选解析到同一实体,常规安装形态下候选天然唯一),见 #15 的回复。

安装 / 升级

dsh plugin --profile web add dsh-qoder-connect@0.2.5
# 或跟随 latest
dsh plugin --profile web add dsh-qoder-connect@latest

升级后建议重启一次宿主并硬刷新页面,让 host 侧与浏览器端产物一起生效。