Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

ci(macos): Mac mini runner 上 AgentBrandIconResourceTests 品牌图标渲染测试必然失败

Closed
#1,297 2 comments 0 reactions 1 assignee View on GitHub

Maintainers usually reply within 1 day

@1lck is already working on this.

Since Oct 17, 2026.

Assessment

This issue has not been assessed yet.

Description

review: medium

现象

AgentBrandIconResourceTests.composerBrandMarksStayVisibleInNativeMenus(name:isDark:)(macos/Tests/LitheTests/AgentBrandIconResourceTests.swift)在 Mac mini 自托管 runner 上有 3 个用例必然失败:

  • Claude / 浅色
  • Claude / 深色
  • Codex / 深色

三个用例的断言都是:

Expectation failed: (markPixels → 0) > 10

也就是对原生 Agent 选择菜单的图标区域截图后,一个品牌图标像素都没统计到。Codex / 浅色能通过;其余测试全部通过(这一轮共 2262 个测试,只有这 3 个用例失败)。

示例失败日志:https://github.com/1lck/Lithe-IDEA/actions/runs/38992103274/job/117276751213

影响范围

#1262(2026-10-16 合入 preview)把 macOS CI 改成按空闲池动态分配 Mac mini runner。从那以后,最近 100 次已完成的 CI 里,凡是实际执行了 Swift tests 的任务全部失败,而且都失败在这个测试上:

分支 Runner
feat/issue-1250-archived-agent-history(#1286) mac-mini-2、xin53deMac-mini
feat/process-termination-policy(#1285) xin53deMac-mini
feat/agent-context-ring-appear-on-first-report xin53deMac-mini
codex/git-terminal-resize mac-mini-3

目前所有 ready PR 的 macOS CI 都因此过不了。preview 自己最近几次运行的 Swift tests 是 skipped,所以在 preview 上看不出这个问题。

和 PR 改动无关的依据

  • 上面这些 PR 都没有改过 AgentComposerView、品牌图标资源或这个测试。
  • 本地(Darwin 27,比 CI 的 Xcode 26.6 更新)在 #1286 分支上执行 ./.agents/skills/write-stable-tests/scripts/test-stability-macos.sh -- --filter AgentBrandIconResourceTests,3 个用例全部通过。

可能的原因(尚未验证)

这个测试用 cacheDisplay 截取原生 Menu label 的区域,再统计像素。Mac mini runner 上可能是以下情况之一:

  1. 没有真实的 WindowServer / 图形会话,原生控件截出来是空白;
  2. Xcode 26.6 SDK 下原生 Menu label 的位置或配色不一样,固定的裁剪区域没有覆盖到图标。

建议

  • 先在一台 Mac mini runner 上单独执行这个测试,确认是上面哪一种情况。
  • 如果是图形会话的问题,修 runner 准备脚本;如果是渲染差异,调整测试的取样方式。
  • 无论哪种,都需要保留这个测试原本的意图:原生选择器里能看到品牌图标,且共享的 template 图片没有被修改。不要直接跳过这个测试。
Dominant language
TypeScript
Stars
1.8k
Forks
151
Avg merge
11h 36m
Merged PRs (30d)
301

Getting set up

This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from 1lck/Lithe-IDEA

All issues in 1lck/Lithe-IDEA

Similar issues

More TypeScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.