v0.5.0
TLDR. The issue labeler's logic has moved out of the workflow YAML and into scripts/issue-labeler.js, where it can be read in one place and is tested on every make check (scripts/issue-labeler.test.js, plain node, no dependencies). The workflow is now two lines: check out the default branch, call the script. Behaviour is unchanged — verified by a 3,000-case differential against the previous inline version — and the label allowlist for area:* is still read from your labels.yml, now straight from the checkout. This closes the one standing exception to "workflows never contain logic" (ADR-0008).
If you upgrade: take the labeler workflow together with scripts/issue-labeler.js, scripts/issue-labeler.test.js, scripts/check-issue-labeler.sh, scripts/check-label-forms.sh and the two check: lines in the Makefile. make check now needs node (CI already has it) and will tell you if the set is torn — a thin-caller workflow without the script, or the script beside an older inline workflow, both fail with the fix named.