- Emit each bucket's `tests` as a JSON list of file paths instead of a
space-joined string. The workflow now uses jq to build a bash array,
removing word-splitting / glob hazards on test paths.
- Guard against an empty integration test list after `run_all` expansion:
if the glob returns nothing, suppress the run rather than invoking
pytest with no path argument (which would collect tests outside
tests/integration/).
- Add boundary-case unit tests for the bucketing decision: empty
selection, explicit small lists, exactly threshold (single bucket),
one over threshold (3 buckets), and run_all-with-empty-glob (no run).