scripts/resolve-blender-url.sh, resolve-godot-version.sh, and test-lib.sh were committed as mode 644 (Windows checkouts don't preserve the git exec bit, and it was never set). publish.yml invokes the first two as ./scripts/resolve-*.sh, which needs it — the runner failed with "Permission denied". lib.sh stays 644, it's only sourced. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>