github.event.pull_request.base.sha is frozen at PR creation, so the
changed-files detection on a long-lived PR diffs against the original
branch point and picks up all of master's churn since then. This week
that list crossed the kernel's per-env-var size limit (MAX_ARG_STRLEN),
killing the pre-commit step with "Argument list too long" before bash
could start — observed on #41127, where the frozen base predated the
antd v6 upgrade and the i18n catalog canonicalization.
Diff against HEAD^1 instead: HEAD is the PR merge commit, so its first
parent is the current base-branch tip and the diff is exactly the PR's
own files. Also fall back to --all-files when the computed list exceeds
100KB, so a PR that legitimately touches thousands of files degrades to
a full sweep instead of an unstartable step.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>