Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

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

オープン
#1,297 コメント 2 件 リアクション 0 件 担当者 1 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

@1lck がすでに取り組んでいます。

2026年10月17日 から。

評価

この issue はまだ評価されていません。

説明

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 图片没有被修改。不要直接跳过这个测试。
主要言語
TypeScript
スター
1.8k
フォーク
151
平均マージ
11時間 45分
マージ済み PR(30日)
293

環境構築

このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

1lck/Lithe-IDEA のほかの issue

1lck/Lithe-IDEA の issue をすべて見る

似ている issue

TypeScript の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。