2026-10-20T05:15:06.82333562Z Current runner version: 'v0.5.0' 2026-10-20T05:15:06.82834725Z ##[group]GITHUB_TOKEN Permissions 2026-10-20T05:15:06.828379778Z Contents: read 2026-10-20T05:15:06.828385479Z Metadata: read 2026-10-20T05:15:06.828389003Z Packages: read 2026-10-20T05:15:06.828391946Z ##[endgroup] 2026-10-20T05:15:06.828395863Z Secret source: Actions 2026-10-20T05:15:06.828409874Z Cache mode: write 2026-10-20T05:15:06.828414728Z Prepare workflow directory 2026-10-20T05:15:06.829360222Z Prepare all required actions 2026-10-20T05:15:06.829487971Z Getting action download info 2026-10-20T05:15:06.942703563Z Download action repository 'actions/checkout@v4' (SHA:11d5960a326750d5838078e36cf38b85af677262) 2026-10-20T05:15:06.984395569Z Download action repository 'actions/setup-go@v7' (SHA:b7ad1dad31e06c5925ef5d2fc7ad053ef454303e) 2026-10-20T05:15:07.112815191Z Download action repository 'golangci/golangci-lint-action@v9.3.0' (SHA:ba0d7d2ec06a0ea1cb5fa41b2e4a3ab91d21278a) 2026-10-20T05:15:07.228732133Z Complete job name: test (ubuntu-latest) 2026-10-20T05:15:07.230353077Z ##[group]Run actions/checkout@v4 2026-10-20T05:15:07.230367059Z with: 2026-10-20T05:15:07.230370752Z repository: bnema/zut 2026-10-20T05:15:07.230373347Z token: *** 2026-10-20T05:15:07.230376601Z ssh-strict: true 2026-10-20T05:15:07.230379201Z ssh-user: git 2026-10-20T05:15:07.230381406Z persist-credentials: true 2026-10-20T05:15:07.230384095Z clean: true 2026-10-20T05:15:07.230386338Z sparse-checkout-cone-mode: true 2026-10-20T05:15:07.230393498Z fetch-depth: 1 2026-10-20T05:15:07.230395835Z fetch-tags: false 2026-10-20T05:15:07.230397773Z show-progress: true 2026-10-20T05:15:07.230400581Z lfs: false 2026-10-20T05:15:07.230407577Z submodules: false 2026-10-20T05:15:07.230419522Z set-safe-directory: true 2026-10-20T05:15:07.230426022Z allow-unsafe-pr-checkout: false 2026-10-20T05:15:07.230428178Z ##[endgroup] 2026-10-20T05:15:07.417307823Z Syncing repository: bnema/zut 2026-10-20T05:15:07.41733342Z ##[group]Getting Git version info 2026-10-20T05:15:07.417353212Z Working directory is '/home/runner/work/zut/zut' 2026-10-20T05:15:07.420425813Z [command]/usr/bin/git version 2026-10-20T05:15:07.425769464Z git version 2.53.0 2026-10-20T05:15:07.427921772Z ##[endgroup] 2026-10-20T05:15:07.427952784Z Temporarily overriding HOME='/home/runner/work/_temp/699f5c68-2414-4918-892e-e9176a9a9014' before making global git config changes 2026-10-20T05:15:07.428600233Z Adding repository directory to the temporary git global config as a safe directory 2026-10-20T05:15:07.428628332Z [command]/usr/bin/git config --global --add safe.directory /home/runner/work/zut/zut 2026-10-20T05:15:07.432955685Z Deleting the contents of '/home/runner/work/zut/zut' 2026-10-20T05:15:07.43300451Z ##[group]Initializing the repository 2026-10-20T05:15:07.43301786Z [command]/usr/bin/git init /home/runner/work/zut/zut 2026-10-20T05:15:07.441347546Z hint: Using 'master' as the name for the initial branch. This default branch name 2026-10-20T05:15:07.441390157Z hint: will change to "main" in Git 3.0. To configure the initial branch name 2026-10-20T05:15:07.441403863Z hint: to use in all of your new repositories, which will suppress this warning, 2026-10-20T05:15:07.441417051Z hint: call: 2026-10-20T05:15:07.441438932Z hint: 2026-10-20T05:15:07.441460267Z hint: git config --global init.defaultBranch 2026-10-20T05:15:07.441478048Z hint: 2026-10-20T05:15:07.441496264Z hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and 2026-10-20T05:15:07.441514547Z hint: 'development'. The just-created branch can be renamed via this command: 2026-10-20T05:15:07.441533926Z hint: 2026-10-20T05:15:07.44156997Z hint: git branch -m 2026-10-20T05:15:07.441599631Z hint: 2026-10-20T05:15:07.441615004Z hint: Disable this message with "git config set advice.defaultBranchName false" 2026-10-20T05:15:07.441642377Z Initialized empty Git repository in /home/runner/work/zut/zut/.git/ 2026-10-20T05:15:07.441679625Z [command]/usr/bin/git remote add origin http://ermite:7341/bnema/zut 2026-10-20T05:15:07.444153854Z ##[endgroup] 2026-10-20T05:15:07.444180847Z ##[group]Disabling automatic garbage collection 2026-10-20T05:15:07.444201429Z [command]/usr/bin/git config --local gc.auto 0 2026-10-20T05:15:07.449315173Z ##[endgroup] 2026-10-20T05:15:07.449349671Z ##[group]Setting up auth 2026-10-20T05:15:07.449370681Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand 2026-10-20T05:15:07.452026381Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :" 2026-10-20T05:15:07.485908592Z [command]/usr/bin/git config --local --name-only --get-regexp http\.http\:\/\/ermite\:7341\/\.extraheader 2026-10-20T05:15:07.488428891Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.http\:\/\/ermite\:7341\/\.extraheader' && git config --local --unset-all 'http.http://ermite:7341/.extraheader' || :" 2026-10-20T05:15:07.509828457Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir: 2026-10-20T05:15:07.512445368Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url 2026-10-20T05:15:07.536898889Z [command]/usr/bin/git config --local http.http://ermite:7341/.extraheader AUTHORIZATION: basic *** 2026-10-20T05:15:07.539020414Z ##[endgroup] 2026-10-20T05:15:07.539047616Z ##[group]Fetching the repository 2026-10-20T05:15:07.541239425Z [command]/usr/bin/git -c protocol.version=2 fetch --no-tags --prune --no-recurse-submodules --depth=1 origin +e56ec0ea6fda17e95ee06e9017b54a839e9e929b:refs/remotes/pull/2/merge 2026-10-20T05:15:07.804402854Z From http://ermite:7341/bnema/zut 2026-10-20T05:15:07.804434293Z * [new ref] e56ec0ea6fda17e95ee06e9017b54a839e9e929b -> pull/2/merge 2026-10-20T05:15:07.80694161Z ##[endgroup] 2026-10-20T05:15:07.806969576Z ##[group]Determining the checkout info 2026-10-20T05:15:07.806974932Z ##[endgroup] 2026-10-20T05:15:07.806993143Z [command]/usr/bin/git sparse-checkout disable 2026-10-20T05:15:07.812630116Z [command]/usr/bin/git config --local --unset-all extensions.worktreeConfig 2026-10-20T05:15:07.812657735Z ##[group]Checking out the ref 2026-10-20T05:15:07.815316091Z [command]/usr/bin/git checkout --progress --force refs/remotes/pull/2/merge 2026-10-20T05:15:07.888208001Z Note: switching to 'refs/remotes/pull/2/merge'. 2026-10-20T05:15:07.888245828Z 2026-10-20T05:15:07.888262704Z You are in 'detached HEAD' state. You can look around, make experimental 2026-10-20T05:15:07.888317817Z changes and commit them, and you can discard any commits you make in this 2026-10-20T05:15:07.888343045Z state without impacting any branches by switching back to a branch. 2026-10-20T05:15:07.888351917Z 2026-10-20T05:15:07.888358721Z If you want to create a new branch to retain commits you create, you may 2026-10-20T05:15:07.888365351Z do so (now or later) by using -c with the switch command. Example: 2026-10-20T05:15:07.888377294Z 2026-10-20T05:15:07.888387716Z git switch -c 2026-10-20T05:15:07.888398297Z 2026-10-20T05:15:07.888410082Z Or undo this operation with: 2026-10-20T05:15:07.888420413Z 2026-10-20T05:15:07.888430401Z git switch - 2026-10-20T05:15:07.888439868Z 2026-10-20T05:15:07.888450424Z Turn off this advice by setting config variable advice.detachedHead to false 2026-10-20T05:15:07.888456848Z 2026-10-20T05:15:07.88846209Z HEAD is now at e56ec0e Merge 6acf8ba24d4b73936dc6f1ce2c120067281a6c4d into a9d674e0d05c093e5ff7dea21bc7d6723527b490 2026-10-20T05:15:07.888468734Z ##[endgroup] 2026-10-20T05:15:07.89078639Z [command]/usr/bin/git log -1 --format=%H 2026-10-20T05:15:07.893617786Z e56ec0ea6fda17e95ee06e9017b54a839e9e929b 2026-10-20T05:15:07.901007343Z ##[group]Run actions/setup-go@v7 2026-10-20T05:15:07.901024538Z with: 2026-10-20T05:15:07.901029382Z go-version: 1.26 2026-10-20T05:15:07.901032921Z cache: true 2026-10-20T05:15:07.901038871Z check-latest: false 2026-10-20T05:15:07.901042297Z ##[endgroup] 2026-10-20T05:15:08.02790631Z Setup go version spec 1.26 2026-10-20T05:15:08.02794573Z Attempting to download 1.26... 2026-10-20T05:15:08.297787406Z matching 1.26... 2026-10-20T05:15:08.297830156Z Acquiring 1.26.9 from https://github.com/actions/go-versions/releases/download/1.26.9-37875104533/go-1.26.9-linux-x64.tar.gz 2026-10-20T05:15:09.512332131Z Extracting Go... 2026-10-20T05:15:09.523394456Z [command]/usr/bin/tar xz --warning=no-unknown-keyword --overwrite -C /home/runner/work/_temp/fa027776-c5c3-413a-896d-e387e2d0e32c -f /home/runner/work/_temp/d6326c55-31d0-4dd7-bc4a-0a265f6cca50 2026-10-20T05:15:10.901694589Z Successfully extracted go to /home/runner/work/_temp/fa027776-c5c3-413a-896d-e387e2d0e32c 2026-10-20T05:15:10.901733025Z Adding to the cache ... 2026-10-20T05:15:14.731000434Z Successfully cached go to /opt/hostedtoolcache/go/1.26.9/x64 2026-10-20T05:15:14.73103085Z Added go to the path 2026-10-20T05:15:14.731034922Z Successfully set up Go version 1.26 2026-10-20T05:15:14.745491691Z [command]/opt/hostedtoolcache/go/1.26.9/x64/bin/go env GOMODCACHE 2026-10-20T05:15:14.747876715Z [command]/opt/hostedtoolcache/go/1.26.9/x64/bin/go env GOCACHE 2026-10-20T05:15:14.747906381Z /home/runner/go/pkg/mod 2026-10-20T05:15:14.750131162Z /home/runner/.cache/go-build 2026-10-20T05:15:14.771407955Z Cache is not found 2026-10-20T05:15:14.77233165Z go version go1.26.9 linux/amd64 2026-10-20T05:15:14.772358304Z 2026-10-20T05:15:14.772365994Z ##[group]go env 2026-10-20T05:15:14.894172909Z AR='ar' 2026-10-20T05:15:14.894217379Z CC='gcc' 2026-10-20T05:15:14.894225904Z CGO_CFLAGS='-O2 -g' 2026-10-20T05:15:14.894232324Z CGO_CPPFLAGS='' 2026-10-20T05:15:14.89424627Z CGO_CXXFLAGS='-O2 -g' 2026-10-20T05:15:14.894254026Z CGO_ENABLED='1' 2026-10-20T05:15:14.894260935Z CGO_FFLAGS='-O2 -g' 2026-10-20T05:15:14.894271883Z CGO_LDFLAGS='-O2 -g' 2026-10-20T05:15:14.894279453Z CXX='g++' 2026-10-20T05:15:14.894293658Z GCCGO='gccgo' 2026-10-20T05:15:14.894306643Z GO111MODULE='' 2026-10-20T05:15:14.894319991Z GOAMD64='v1' 2026-10-20T05:15:14.894327699Z GOARCH='amd64' 2026-10-20T05:15:14.894338555Z GOAUTH='netrc' 2026-10-20T05:15:14.894347992Z GOBIN='' 2026-10-20T05:15:14.894361965Z GOCACHE='/home/runner/.cache/go-build' 2026-10-20T05:15:14.89436976Z GOCACHEPROG='' 2026-10-20T05:15:14.894380846Z GODEBUG='' 2026-10-20T05:15:14.894389392Z GOENV='/home/runner/.config/go/env' 2026-10-20T05:15:14.894397533Z GOEXE='' 2026-10-20T05:15:14.894402186Z GOEXPERIMENT='' 2026-10-20T05:15:14.894417129Z GOFIPS140='off' 2026-10-20T05:15:14.894426814Z GOFLAGS='' 2026-10-20T05:15:14.894436399Z GOGCCFLAGS='-fPIC -m64 -pthread -Wl,--no-gc-sections -fmessage-length=0 -ffile-prefix-map=/tmp/go-build1155314187=/tmp/go-build -gno-record-gcc-switches' 2026-10-20T05:15:14.894447495Z GOHOSTARCH='amd64' 2026-10-20T05:15:14.894455385Z GOHOSTOS='linux' 2026-10-20T05:15:14.894468674Z GOINSECURE='' 2026-10-20T05:15:14.894477866Z GOMOD='/home/runner/work/zut/zut/go.mod' 2026-10-20T05:15:14.894488085Z GOMODCACHE='/home/runner/go/pkg/mod' 2026-10-20T05:15:14.894492516Z GONOPROXY='' 2026-10-20T05:15:14.894500134Z GONOSUMDB='' 2026-10-20T05:15:14.8945045Z GOOS='linux' 2026-10-20T05:15:14.894512619Z GOPATH='/home/runner/go' 2026-10-20T05:15:14.894522384Z GOPRIVATE='' 2026-10-20T05:15:14.894547755Z GOPROXY='https://proxy.golang.org,direct' 2026-10-20T05:15:14.894562194Z GOROOT='/opt/hostedtoolcache/go/1.26.9/x64' 2026-10-20T05:15:14.89457322Z GOSUMDB='sum.golang.org' 2026-10-20T05:15:14.894582532Z GOTELEMETRY='local' 2026-10-20T05:15:14.894592393Z GOTELEMETRYDIR='/home/runner/.config/go/telemetry' 2026-10-20T05:15:14.894602591Z GOTMPDIR='' 2026-10-20T05:15:14.894616689Z GOTOOLCHAIN='local' 2026-10-20T05:15:14.894627879Z GOTOOLDIR='/opt/hostedtoolcache/go/1.26.9/x64/pkg/tool/linux_amd64' 2026-10-20T05:15:14.894636319Z GOVCS='' 2026-10-20T05:15:14.894647458Z GOVERSION='go1.26.9' 2026-10-20T05:15:14.894653521Z GOWORK='' 2026-10-20T05:15:14.894657698Z PKG_CONFIG='pkg-config' 2026-10-20T05:15:14.894660987Z 2026-10-20T05:15:14.894666043Z ##[endgroup] 2026-10-20T05:15:14.903091033Z ##[group]Run go vet ./... 2026-10-20T05:15:14.90310607Z go vet ./... 2026-10-20T05:15:14.903150338Z shell: /usr/bin/bash -e {0} 2026-10-20T05:15:14.903166433Z env: 2026-10-20T05:15:14.90317079Z GOTOOLCHAIN: local 2026-10-20T05:15:14.903172587Z ##[endgroup] 2026-10-20T05:15:14.987290801Z go: downloading github.com/google/uuid v1.6.0 2026-10-20T05:15:14.987335961Z go: downloading github.com/klauspost/compress v1.19.0 2026-10-20T05:15:14.98737757Z go: downloading golang.org/x/mod v0.35.0 2026-10-20T05:15:14.994804422Z go: downloading golang.org/x/term v0.45.0 2026-10-20T05:15:15.095087792Z go: downloading golang.org/x/sys v0.47.0 2026-10-20T05:15:15.098756337Z go: downloading github.com/mattn/go-runewidth v0.0.16 2026-10-20T05:15:15.154206341Z go: downloading github.com/sahilm/fuzzy v0.1.1 2026-10-20T05:15:15.165460681Z go: downloading golang.org/x/net v0.57.0 2026-10-20T05:15:15.305434464Z go: downloading github.com/alecthomas/chroma/v2 v2.23.1 2026-10-20T05:15:15.563313425Z go: downloading golang.org/x/image v0.43.0 2026-10-20T05:15:15.589440761Z go: downloading github.com/rivo/uniseg v0.2.0 2026-10-20T05:15:15.611898496Z go: downloading github.com/dlclark/regexp2 v1.11.5 2026-10-20T05:15:39.18975108Z ##[group]Run diff=$(gofmt -l .) 2026-10-20T05:15:39.189775917Z diff=$(gofmt -l .) 2026-10-20T05:15:39.189779156Z if [ -n "$diff" ]; then 2026-10-20T05:15:39.189781069Z  echo "gofmt issues:" 2026-10-20T05:15:39.189782799Z  echo "$diff" 2026-10-20T05:15:39.189784946Z  exit 1 2026-10-20T05:15:39.189786744Z fi 2026-10-20T05:15:39.189807396Z shell: /usr/bin/bash -e {0} 2026-10-20T05:15:39.189816646Z env: 2026-10-20T05:15:39.189823115Z GOTOOLCHAIN: local 2026-10-20T05:15:39.189825054Z ##[endgroup] 2026-10-20T05:15:39.487784005Z ##[group]Run go test -race ./... 2026-10-20T05:15:39.487802701Z go test -race ./... 2026-10-20T05:15:39.487831652Z shell: /usr/bin/bash -e {0} 2026-10-20T05:15:39.487841993Z env: 2026-10-20T05:15:39.487848057Z GOTOOLCHAIN: local 2026-10-20T05:15:39.487850203Z ##[endgroup] 2026-10-20T05:15:47.43473703Z ? github.com/bnema/zut [no test files] 2026-10-20T05:16:11.952741283Z ok github.com/bnema/zut/cmd/zut 1.101s 2026-10-20T05:16:11.952802926Z ? github.com/bnema/zut/examples/extensions/approve [no test files] 2026-10-20T05:16:11.952812347Z ? github.com/bnema/zut/examples/extensions/guard [no test files] 2026-10-20T05:16:11.952824354Z ? github.com/bnema/zut/examples/extensions/hello [no test files] 2026-10-20T05:16:11.952835579Z ? github.com/bnema/zut/examples/extensions/secret [no test files] 2026-10-20T05:16:11.952842163Z ? github.com/bnema/zut/examples/extensions/weather [no test files] 2026-10-20T05:16:11.952848743Z ? github.com/bnema/zut/examples/rpc/go [no test files] 2026-10-20T05:16:11.95285503Z ? github.com/bnema/zut/examples/sdk [no test files] 2026-10-20T05:16:38.46194266Z ok github.com/bnema/zut/packages/agent 22.755s 2026-10-20T05:16:38.461983385Z ok github.com/bnema/zut/packages/agent/ext 1.026s 2026-10-20T05:16:38.461992495Z ok github.com/bnema/zut/packages/agent/extensions 2.606s 2026-10-20T05:16:38.462000559Z ok github.com/bnema/zut/packages/agent/extproto 1.009s 2026-10-20T05:16:38.462007134Z ok github.com/bnema/zut/packages/agent/internal/orchestration 1.010s 2026-10-20T05:16:38.462017479Z ok github.com/bnema/zut/packages/agent/lsp 2.103s 2026-10-20T05:16:38.46202791Z ok github.com/bnema/zut/packages/agent/mcp 7.926s 2026-10-20T05:16:38.462033972Z ok github.com/bnema/zut/packages/agent/modes 10.219s 2026-10-20T05:16:38.462039333Z ok github.com/bnema/zut/packages/agent/modes/bot 1.115s 2026-10-20T05:16:38.46204656Z ok github.com/bnema/zut/packages/agent/modes/telegram 1.012s 2026-10-20T05:16:38.462052103Z ok github.com/bnema/zut/packages/agent/scheduler 1.015s 2026-10-20T05:16:38.462060828Z ok github.com/bnema/zut/packages/agent/sdk 1.147s 2026-10-20T05:16:38.462069722Z ok github.com/bnema/zut/packages/agent/skills 2.115s 2026-10-20T05:16:38.462078749Z ok github.com/bnema/zut/packages/agent/subagents 5.017s 2026-10-20T05:16:45.561894813Z ok github.com/bnema/zut/packages/agent/tools 19.164s 2026-10-20T05:16:47.131009844Z ok github.com/bnema/zut/packages/core 18.656s 2026-10-20T05:16:47.131055734Z ok github.com/bnema/zut/packages/ignore 1.014s 2026-10-20T05:17:10.295989201Z ok github.com/bnema/zut/packages/provider 38.556s 2026-10-20T05:17:10.296075102Z ok github.com/bnema/zut/packages/provider/auth 3.602s 2026-10-20T05:17:10.296085578Z ? github.com/bnema/zut/packages/provider/auth/assets [no test files] 2026-10-20T05:17:10.296092896Z ok github.com/bnema/zut/packages/tui 3.380s 2026-10-20T05:17:10.326071585Z ##[group]Run bash .github/scripts/next-release-tag_test.sh 2026-10-20T05:17:10.326089933Z bash .github/scripts/next-release-tag_test.sh 2026-10-20T05:17:10.326115744Z shell: /usr/bin/bash -e {0} 2026-10-20T05:17:10.326122352Z env: 2026-10-20T05:17:10.326166073Z GOTOOLCHAIN: local 2026-10-20T05:17:10.326176857Z ##[endgroup] 2026-10-20T05:17:10.355737624Z /home/runner/work/zut/zut/.github/scripts/next-release-tag.sh: line 42: /dev/fd/63: No such file or directory 2026-10-20T05:17:10.357210313Z ##[error]Process completed with exit code 1. 2026-10-20T05:17:10.358547861Z Post job cleanup. 2026-10-20T05:17:10.441648456Z [command]/usr/bin/git version 2026-10-20T05:17:10.443895935Z git version 2.53.0 2026-10-20T05:17:10.448415326Z Temporarily overriding HOME='/home/runner/work/_temp/9be2d0e3-54ee-4b36-ab50-3568df82b332' before making global git config changes 2026-10-20T05:17:10.448464953Z Adding repository directory to the temporary git global config as a safe directory 2026-10-20T05:17:10.448485371Z [command]/usr/bin/git config --global --add safe.directory /home/runner/work/zut/zut 2026-10-20T05:17:10.452825243Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand 2026-10-20T05:17:10.454943543Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :" 2026-10-20T05:17:10.476724313Z [command]/usr/bin/git config --local --name-only --get-regexp http\.http\:\/\/ermite\:7341\/\.extraheader 2026-10-20T05:17:10.476776499Z http.http://ermite:7341/.extraheader 2026-10-20T05:17:10.47960111Z [command]/usr/bin/git config --local --unset-all http.http://ermite:7341/.extraheader 2026-10-20T05:17:10.482324061Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.http\:\/\/ermite\:7341\/\.extraheader' && git config --local --unset-all 'http.http://ermite:7341/.extraheader' || :" 2026-10-20T05:17:10.503457285Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir: 2026-10-20T05:17:10.506065733Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url 2026-10-20T05:17:10.5312057Z Cleaning up orphan processes 2026-10-20T05:17:10.531664323Z ##[warning]Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/