Skip to content

v0.2.18

Choose a tag to compare

@goccx goccx released this 01 Nov 17:57
· 1 commit to main since this release

v0.2.18

Fixed & Changed

  • 真正跨帧提交 T0(消除 DispatchQueue.main.async 同帧合并阻塞):
    • 使用 RunLoop.main .common 模式 0 秒 Timer(带 withTaskCancellationHandler 即时取消),严格在当前事件周期 kCFRunLoopBeforeWaiting 将 T0 帧(左侧选中高亮 + 加载态)提交给屏幕之后再进入 T1,彻底避免 T0 与 T1 被合并到同一次主线程同步事务。
  • macOS 12 列表加载两阶段渐进挂载(T1 先挂 15 条视口行,T2 补齐全部行):
    • 列表挂载首帧仅测量并渲染首屏可见的 15 行(耗时 < 10ms),随后在 .task(id: page) 下一帧自动放开至全部行(保证滚动条与尾部分页 100% 完整);若在加载或挂载中途切换侧栏,.task 自动取消,绝不阻塞新点击。
  • 控制器层独占取消未完成的页面网络请求:
    • GotifySessionController 维护唯一 activePageLoadTask,切走时立即取消前一个未完成分类的底层网络请求。
  • 列表行标题与摘要彻底脱离主线程 AttributedString(markdown:):
    • plainTextSummary 与 listRowSummaryText 采用单遍纯字符流去标记算法(stripInlineMarkdownToPlainText),列表行挂载 0 次调用 CommonMark 富文本解析器。

Checksums (SHA-256)

bab56f66e94e674f9d7223b5383f99f010ef11337c6f8015920adee4c712eaeb  GotifyDesktop-macOS-arm64.dmg
ed31f617710c2b5193eabb5ebb1949d91fbbc362f5f37424f5a5f33bef0488f7  GotifyDesktop-macOS-amd64.dmg