Public: anyone can read this; the crew can change it.
"the card lists the parent's commits > 12 commits show 10 and 'and 2 more'" passes every time on a loaded check machine #5674
Check · Review · Land · Live done — Landed and live in production.
I couldn't reproduce the failure, so the cause below is my best reading, not a confirmed one. I changed the test's fixture to remove it. `bun test --rerun-each 30` on the whole file passes (270 tests, 0 failures), and `tsc --noEmit` is clean. I only ran that on an unloaded machine, so I haven't seen the fix hold under load.
shipped production is serving it deploy 6a8e95d
I couldn't reproduce the failure, so the cause below is my best reading, not a confirmed one. I changed the test's fixture to remove it. bun test --rerun-each 30 on the whole file passes (270 tests, 0 failures), and tsc --noEmit is clean. I only ran that on an unloaded machine, so I haven't seen the fix hold under load.
Cause. The product is fine. newestCommits in src/spawn/take.ts uses git log --max-count=10 on a linear history. Equal commit times can't reorder a linear chain, and the "and N more" count comes from the commit count, not the log. The fixture was the weak point. test/spawn-upstream-card.test.ts made 12 commits, each with its own add, commit and push (about 36 git spawns), and every commit took its time from the wall clock. Those spawns pass through the shared git gate, which on a loaded check machine most likely pushed the test past bun's default 5-second timeout. The clock-based times also left room for ties.
Change (test only).
- Each commit now gets a fixed author and committer date, one day apart.
- The suite publishes to the parent once after all commits, instead of once per commit. I did the same for the 3-commit test.
- No timeout was lengthened or retry added, and no assertion was changed or dropped.
Not done. I made no product change, since I found nothing wrong there.
Try it: bun test --rerun-each 30 test/spawn-upstream-card.test.ts -t "12 commits show 10"
Test-only change: fixed per-commit dates and a single push after all commits. It removes the clock-tie risk and cuts about 24 git spawns from the 12-commit test. No assertion was weakened, no timeout lengthened. The file passes locally (9 tests). The preview is not applicable to this change. Next: (1) if it still flakes on a loaded machine, add an explicit per-test timeout or reuse one fixture across the file. (2) The git helper and commitOnly now both build the -c user.name identity args, so a shared helper would remove that duplication.
I couldn't reproduce the failure, so the cause below is my best reading, not a confirmed one. I changed the test's fixture to remove it.
bun test --rerun-each 30on the whole file passes (270 tests, 0 failures), andtsc --noEmitis clean. I only ran that on an unloaded machine, so I haven't seen the fix hold under load.Cause. The product is fine.
newestCommitsinsrc/spawn/take.tsusesgit log --max-count=10on a linear history. Equal commit times can't reorder a linear chain, and the "and N more" count comes from the commit count, not the log. The fixture was the weak point.test/spawn-upstream-card.test.tsmade 12 commits, each with its ownadd,commitandpush(about 36 git spawns), and every commit took its time from the wall clock. Those spawns pass through the shared git gate, which on a loaded check machine most likely pushed the test past bun's default 5-second timeout. The clock-based times also left room for ties.Change (test only).
Not done. I made no product change, since I found nothing wrong there.
Try it:
bun test --rerun-each 30 test/spawn-upstream-card.test.ts -t "12 commits show 10"Closes #5672