Skip to content

v1.0.1

Choose a tag to compare

@github-actions github-actions released this 16 Oct 00:52
· 16 commits to main since this release

修复

  • 展开面板始终显示「未选中会话」,当前会话的用量明细因此不可用。

    根因不是取值逻辑写错,而是客户端读取了一个未在 inject 中声明的服务
    (uiSession)。Cordis 对未声明服务的属性访问会直接抛错
    (cannot get property "uiSession" without inject),而这段读取被 try/catch
    吞掉,于是当前会话 id 恒为空字符串。

    • inject 补上 sessions 与 uiSession
    • 不再自行复刻「谁是当前会话」的规则,直接读取宿主自己的主视图绑定
      uiSession.adapter.current
    • 同时订阅 sessions.list:侧边栏比对话界面先渲染,挂载那一刻宿主还在发布
      空绑定,必须等会话就绪后重新解析。这是独立于上面那个原因的时序问题,一并处理
  • 测试脚手架两处会造成假通过的缺陷(因此之前的绿灯不可信):

    问题 后果
    check() 未等待异步断言 失败会变成未处理的 rejection,而计数照报「通过」、进程还退出 0
    textOf() 从不渲染嵌套函数组件 展开面板的内容其实从未被断言过,读到的永远是空字符串

    修正后,原先那条「点击展开面板」的绿灯立刻变成了失败——真问题被暴露出来。

  • 新增回归用例:会话在挂载后才出现时必须被重新解析。

  • 测试用的假 ctx 现在像 Cordis 一样对未声明的服务抛错,这类 bug 以后会在测试里就死掉。

  • 用变异测试确认新断言确实会失败(改坏面板标题、去掉 inject 中的服务),随后逐字节还原(sha256 一致)。

验证

  • 全套 20 项测试通过(宿主 11 + 客户端 9),并在下载到的发布产物上复跑通过。
  • 发布产物与源码逐字节一致。

安装

dsh plugin --profile desktop add "https://github.com/ZeroOT-Liu/dsh-usage-widget/releases/latest/download/dsh-usage-widget.tgz"

装好后刷新页面(Ctrl+R)。

完整变更:v1.0.0...v1.0.1