builds: separate runs queued at different times !452

merged merged by cmc on 2026-09-21 05:51 UTC · krz/gitbay:builds-run-split into main

Discussion

cmc

groupRuns keyed on the commit alone, so a scheduled job firing against an unchanged branch tip folded every day into one row with the newest timestamp and status. krz/skunky-art's nine daily instances runs on 32e337bd1c showed as one row of nine identical chips.

Runs are now keyed on the commit and created_at. A push queues its jobs in one loop and they share the timestamp to the second; a schedule's are a day apart. Over krz/skunky-art's current 50 builds that gives 23 runs: nine dated instances rows, and each push still one row of three chips.

The count line said "15 runs" above 23 builds. It names both now.

feedLines folds the same way and has no queue moment to key on — its events are recorded per job when a build finishes — so it splits on a repeated job name. That fixes "ran 9 jobs on" for nine separate days, at the cost of the oldest scheduled line on a commit folding in the push's jobs; TestFeedLinesScheduleAbsorbsPushJobs records that.

A second-resolution created_at means a queue loop that straddles a second boundary would show one push as two rows. None of the 15 pushes in krz/skunky-art's history does.

Closes #240