Что
Правка кодов возврата первой стадии из PR #312 закреплена ассерцией CI только для scripts/own-check.sh. Эквивалентная ветка в scripts/own-check.ps1 изменена и вычитана, но никогда не исполнялась — ни в CI, ни локально (в контейнере разработки PowerShell отсутствует).
Почему это стоит закрыть
Правка не косметическая. До неё падение первой стадии — сломанная сборка, упавший экстрактор — выходило с кодом 1, то есть с ярусом «проанализировано, есть находки». После смены дефолта Action на fail-on-finding: false это давало зелёную галочку над прогоном, который не проанализировал ничего. В .sh разрыв закрыт и закреплён шагом CI («A broken stage 1 is a hard error, never the "findings" tier»); в .ps1 — закрыт кодом, но не доказан.
Симметрия исходников — довод, а не доказательство. PowerShell-обёртка живёт своей жизнью: $LASTEXITCODE после & dotnet run, поведение при отсутствующем проекте, разница между exit внутри try/finally — всё это места, где зеркальная на вид логика может расходиться с оригиналом.
Что сделать
Шаг в CI на windows-latest, зеркальный существующему Linux-шагу:
# --Root в путь без проекта экстрактора => dotnet run падает с 1
# own-check.ps1 обязан отдать >= 2 (не смотрел), а не 1 (есть находки)
Проверить также, что обычные ярусы не сдвинулись: чисто → 0, находки с -FailOnFinding → 1, находки без него → 0, битый конфиг → 2.
Контекст
Что
Правка кодов возврата первой стадии из PR #312 закреплена ассерцией CI только для
scripts/own-check.sh. Эквивалентная ветка вscripts/own-check.ps1изменена и вычитана, но никогда не исполнялась — ни в CI, ни локально (в контейнере разработки PowerShell отсутствует).Почему это стоит закрыть
Правка не косметическая. До неё падение первой стадии — сломанная сборка, упавший экстрактор — выходило с кодом 1, то есть с ярусом «проанализировано, есть находки». После смены дефолта Action на
fail-on-finding: falseэто давало зелёную галочку над прогоном, который не проанализировал ничего. В.shразрыв закрыт и закреплён шагом CI («A broken stage 1 is a hard error, never the "findings" tier»); в.ps1— закрыт кодом, но не доказан.Симметрия исходников — довод, а не доказательство. PowerShell-обёртка живёт своей жизнью:
$LASTEXITCODEпосле& dotnet run, поведение при отсутствующем проекте, разница междуexitвнутриtry/finally— всё это места, где зеркальная на вид логика может расходиться с оригиналом.Что сделать
Шаг в CI на
windows-latest, зеркальный существующему Linux-шагу:Проверить также, что обычные ярусы не сдвинулись: чисто → 0, находки с
-FailOnFinding→ 1, находки без него → 0, битый конфиг → 2.Контекст
604272e— сама правка обеих обёрток.df69b41, чтобы не потеряться.