hermes-agent/scripts/ci
ethernet 8fd2efe223 feat(ci): per-step gantt segments + setup-vs-work breakdown in timing report
The gantt drew one bar per job and threw away the step timings it was
already collecting, so "which part of this job is slow" meant opening the
run in the GitHub UI and reading steps by hand.

Job bars are now segmented by step, with a divider and a hover tooltip
(name, duration, category) per segment, and clicking a job expands it into
per-step rows on the same time axis. There's an expand/collapse-all control.
No new data is fetched — `_normalize_job` already recorded every step's
start/end; this is rendering only, so the report job costs the same.

Adds a "Setup vs Work" section that buckets every step into setup / work /
teardown and reports the split as a stacked bar plus a table of the
individual overhead steps that cost the most summed across jobs. On the run
this was built against: 62% of accounted step time is setup+teardown, and
checkout alone (1675s across 42 jobs) exceeds all real work combined —
which is the kind of thing the report should say out loud rather than leave
to inference.

Classification is deliberately conservative: unrecognized step names count
as work, so the figure under-reports overhead rather than inflating it.

Also strips the pinned SHA from action refs when displaying step names —
"Run actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd" renders as
"Run actions/checkout". Display only; the raw name stays the key for
baseline comparison, since two different pins are two different steps.
Applied to the pre-existing step-details and regressions tables too, which
had the same readability problem.
2026-07-31 14:37:58 -04:00
..
assemble_review_comment.py fix(windows): sweep remaining bare read_text/write_text sites + linter rule 2026-07-24 17:10:39 -07:00
classify_changes.py ci: surface E2E screenshots in review comment (#69631) 2026-07-22 23:19:53 +00:00
e2e_screenshot_status.py ci: surface E2E screenshots in review comment (#69631) 2026-07-22 23:19:53 +00:00
emit_review_status.py ci: surface E2E screenshots in review comment (#69631) 2026-07-22 23:19:53 +00:00
live_comment.py fix(ci): retain delayed and composite-action jobs in review (#69768) 2026-07-22 22:43:21 -04:00
lockfile_diff.py fix(windows): sweep remaining unguarded text-mode subprocess sites codebase-wide 2026-07-24 11:45:57 -07:00
publish_e2e_evidence.py fix(windows): sweep remaining unguarded text-mode subprocess sites codebase-wide 2026-07-24 11:45:57 -07:00
resource_profile.py feat(ci): resource profiler 2026-07-31 14:15:25 -04:00
timings_report.py feat(ci): per-step gantt segments + setup-vs-work breakdown in timing report 2026-07-31 14:37:58 -04:00