Follow-up from #32.
Evidence
The full push gate for b2e7dbe5e9bc2a27a87ff1bad8be8b0be777e46e completed green:
https://github.com/zig-utils/zig-js/actions/runs/29170980761
The unit/TSan-unit timeout was fixed by sharding and bounding the heap-limit fixture, but threads-gil (shard 1/4) remained the final long pole. It started at 2026-07-11T22:43:56Z and completed near the end of the run, after all other jobs were green.
Goal
Make the serialized/GIL threads corpus shard distribution less lopsided and easier to diagnose when one shard is slow.
Sketch
- Add per-case progress output or a case timing summary to
conformance/threads_test.zigwhen runningshardmode. - Use timing evidence to rebalance the shard partition, or move known heavy cases to a separate named leg.
- Keep the local
zig build threads-testworkflow convenient.
Acceptance criteria
- A slow serialized corpus shard reports the active/slow case(s), not only the shard number.
- The main CI gate does not routinely wait ~50+ minutes on
threads-gil (shard 1/4)after all other legs have cleared. - Any rebalancing preserves the existing PR-249 allowlist semantics.