Some checks failed
check / gate (push) Has been cancelled
Telemetry Boss found jobs_finished=43 vs 8 ci.run rows. Root cause: the high-water mark was the job id, but jobs FINISH out of id order, so every long job that started before the mark and finished after it was silently never emitted. Now a (finish time, id) cursor; finish = stopped, or updated for skipped jobs with no stop time. Heartbeat finished/failed/ cancelled counts are derived from exactly the rows emitted, so sum(jobs_finished) == count(ci.run) by construction (dry run on real data: 97 == 97, failed 2 == 2, cancelled 13 == 13). posted_to_github now set from the bridge's own rules. duration_ms = Gitea whole seconds x 1000. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>