ci: add a macOS e2e lane so platform-specific renderer regressions cannot sail through green
Open
- Dominant language
- TypeScript
- Stars
- 5.4k
- Forks
- 502
- Avg merge
- 1d 2h
- Merged PRs (30d)
- 715
Description
## 背景
Prompt rail 在 macOS 上的点击穿透回归(#2338 修复)说明了一个系统性缺口:桌面 e2e 只在 Linux(xvfb)跑,而渲染器有平台特有的行为差异,CI 永远抓不到。
## 已知的平台差异(本次实证)
- **scrollbar 模型**:macOS 是 overlay scrollbar——不占布局空间,但命中区域拦截指针,rail 画在滚动条上却点不到;Linux in-flow scrollbar 把内容列左移,同一份代码行为完全不同。
- **滚动后命中时序**:程序滚动后约 1.5s 内滚动容器内容命中短暂失效/碎片化(macOS 特有)。
- **后台窗口节流**:本地 4 workers 并行时,后台 Electron 窗口的 smooth scroll/IO 被节流,断言超时(配置注释已承认该本地并行问题)。
## 建议
在 .github/workflows 增加一个 macOS runner 的 e2e job(或复用 release-desktop.yml 的 macos lane 加 Playwright 步骤),与现有 e2e_shard 相同的 shard 配置。成本:macOS runner 时长与费用;收益:rail 类命中回归、滚动时序类问题在合入前即暴露。
关联:#2338 的平台注记(prompt-rail.spec.ts)目前只能要求'合入前在 macOS 手工跑一次'。
Contributor guide
Assessment
This issue has not been assessed yet.