Skip to content

fix(Log): CI 状态图标防闪烁 + 准实时刷新(颜色随 #40 已合入)#41

Merged
ThreeFish-AI merged 1 commit into
feature/1.x.xfrom
ThreeFish-AI/log-ci-flicker-fix
Jun 30, 2026
Merged

fix(Log): CI 状态图标防闪烁 + 准实时刷新(颜色随 #40 已合入)#41
ThreeFish-AI merged 1 commit into
feature/1.x.xfrom
ThreeFish-AI/log-ci-flicker-fix

Conversation

@ThreeFish-AI

Copy link
Copy Markdown
Owner

背景

PR #37/#40 合入后,Log 视图 CI 状态图标存在两个体验问题:

  1. 图标频繁闪烁、渲染慢:每次 CI 数据到达(log/ciData)都触发可见行整块 innerHTML 重建;且每次 graphData 刷新(如 Checkpointer 自动快照等 git 状态变化)都清空整个 CI 缓存,引发「清缓存 → 重拉 → 整行重建」的循环,导致红/绿图标反复消失重现。
  2. Tooltip 子项无颜色:已由 PR fix(Log): CI Tooltip 各检查项状态图标按通过/失败/运行中上色 #40tipGlyph 包裹 .g-{state})修复并合入 base,本 PR 不再重复。

修复(借助 UI/UX Skills 设计,遵循 reduce-reflows / content-jumping / state-transition / reduced-motion)

  • 就地 DOM 补丁 applyCiData:CI 数据到达时仅改受影响行的 .ci 槽位(replaceChild/appendChild),绝不重建整行/整页,从根源消除全列闪烁;状态类未变(如 pending 复拉、计数更新)时保留原元素,旋转动画不重启、零重绘。
  • 稳定缓存graphData 刷新不再清空 ciByHash(CI 状态以不可变 commit hash 为键,跨刷新有效),仅重置请求去重集合 —— 已缓存的提交重绘时立即可见图标,杜绝每次 git 状态变化引发的重拉。
  • 准实时刷新(不闪烁):新增 20s 定时器,仅对**可见行中 pending(运行中)**状态的提交复拉(host 侧 30s TTL 网络门控,避免空转),转终态后自然停拉;响应经 applyCiData 就地补丁,pending→终态切换不闪烁。

变更范围

验证

🤖 Generated with Claude Code

- 闪烁根因:log/ciData 每次触发整块 innerHTML 重建、且 graphData 刷新清空 CI 缓存
  导致重拉循环 → 全列图标反复消失重现。
- 就地补丁:新增 applyCiData 仅改受影响行 .ci 槽位(状态类不变时保留元素,旋转
  动画不重启、零重绘),不再 renderedFirst=-1 重建可见行。
- 稳定缓存:graphData 不再清空 ciByHash(CI 状态以不可变 hash 为键),仅重置请求
  去重集合,杜绝每次 git 状态变化引发的重拉。
- 准实时刷新:新增 20s 定时器仅复拉可见行中 pending(运行中)提交(host 30s TTL
  网络门控),转终态后停拉;响应经 applyCiData 就地补丁,不闪烁。
- Tooltip 子项颜色:tipGlyph 包裹 .g-{state}(绿/红/黄/灰),与头部及行图标语义一致。

🤖 Generated with [Claude Code](https://github.com/claude), [CodeX](https://openai.com), [Gemini](https://github.com/apps/gemini-code-assist)
Co-Authored-By: Aurelius Huang<threefish.ai@gmail.com>
@ThreeFish-AI ThreeFish-AI merged commit e9a4812 into feature/1.x.x Jun 30, 2026
5 checks passed
@ThreeFish-AI ThreeFish-AI deleted the ThreeFish-AI/log-ci-flicker-fix branch June 30, 2026 12:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant