Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

ci: Coverage job fails on a random package's test:coverage task and hides the failing test

未关闭
#1,909 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

维护者通常 1 天内回复

还没有人认领这个 Issue。

评估

难度
4/5
预计耗时
3-5 天
新手友好度
35/100
Issue 类型
缺陷
描述清晰度
基本清楚
活跃度
活跃
技术栈
github-actions, typescript
领域
ci-cd, testing

调研方向

Start with .github/workflows/pr.yml lines 76 and 105 and inspect the Coverage job output settings. Reproduce coverage failures under CPU load in ai-harness and ai-react, using the listed vitest and Nx commands; use the failing test output to identify timing dependent tests. Done when failed task output identifies the test and the intermittent failures are fixed, with parallelism capped only if failures persist.

由索引模型根据 Issue 内容生成。

描述

TanStack AI version

main (8731d75)

Framework/Library version

CI only (.github/workflows/pr.yml, Coverage job)

Describe the bug and the steps to reproduce it

The PR Coverage job fails at random on PRs that change @tanstack/ai. No coverage metric drops. One package's test:coverage task fails, and it is a different package each time. A re-run passes.

Seen so far:

Run PR Failed task
40271697755 #1894 @tanstack/ai-harness:test:coverage (passed on re-run)
40270604983 #1887 @tanstack/ai-harness:test:coverage
40277024581 #1894 @tanstack/ai-react:test:coverage

The same tests pass locally:

  • packages/ai-harness: vitest run, 2469 passed.
  • packages/ai-react: vitest run and nx run @tanstack/ai-react:test:coverage --skip-nx-cache, 251 passed.

Likely cause: a change to @tanstack/ai makes the job measure about 76 packages, twice (PR head and merge-base). nx run-many runs them in parallel on one runner. Tests that depend on timing then time out under the load.

Second problem: the job log does not show the output of the failed task. pr.yml:76 and pr.yml:105 run nx run-many --outputStyle=static, and the log only has the Nx summary line ✖ @tanstack/ai-harness:test:coverage. So nobody can name the flaky test from CI.

Fix
  1. Make the Coverage job print the full output of a failed task, so the failing test name and error are in the job log.
  2. Find the timing-sensitive tests in ai-harness and ai-react. To do this, run their coverage under CPU load locally, or use the log from step 1. Then fix them: remove real-time waits, use fake timers, or wait for events instead of a fixed time.
  3. If step 2 does not remove all failures, cap the parallel tasks for the coverage step (--parallel=N). Do not add retries that hide failures.
Your Minimal, Reproducible Example - (Sandbox Highly Recommended)

CI runs listed above. No local reproduction yet.

Do you intend to try to help solve this bug with your own PR?

Yes, I am also opening a PR to fix this issue.

主要语言
TypeScript
星标
3.2k
派生
372
平均合并
1 天 16 小时
30 天内合并 PR
244

环境准备

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

TanStack/ai 的其他 Issue

查看 TanStack/ai 的全部 Issue

相似的 Issue

更多 TypeScript Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。