В репозитории лежит package-lock.json и нет yarn.lock, поэтому yarn-workflow не кэшировал ничего (hashFiles по отсутствующему файлу) и ставил неразрешимые деревья зависимостей заново каждый раз. Переведено на npm ci с npm-кэшем по lockfile; проверка diff сборки ограничена выходной директорией LuCI htdocs, которую build реально производит. Применена prettier-нормализация недавно правленных исходников.