Skip to content

perf(ci): выполнять fuzz corpus один раз - #480

Merged
lemone112 merged 2 commits into
mainfrom
perf/ci-single-fuzz-pass-20261006
Oct 6, 2026
Merged

lemone112 merged 2 commits into
mainfrom
perf/ci-single-fuzz-pass-20261006

Conversation

@lemone112

@lemone112 lemone112 commented Oct 6, 2026 •

Copy link
Copy Markdown
Contributor

Зачем

Обычный Vitest уже включает все девять файлов finiteness-fuzz через test/**/*.test.ts. Дополнительный шаг повторно выполнял тот же детерминированный набор после полного прохода. Это происходило и в CI, и в ручной проверке релиза.

Изменение

Удалён только повторный запуск. Все fuzz-файлы и их seeded workloads сохранены, новые файлы по-прежнему попадают в полный набор автоматически. Настоящий native CPU clock, browser conformance, mutation, typecheck, сборка, size и package checks остаются прежними. Отказ fuzz-теста сохраняется в общем результате Vitest и его диагностике.

Обновлён существующий CI-контракт: полная выборка не допускает исключения fuzz-файлов или незаметного возвращения второго прохода. Проверено 95 тестов этого контракта, без отказов и пропусков. Полный обязательный CI должен завершиться на текущем head перед обычным merge.

Границы

Новых кэшей, сервисов, зависимостей и настроек продуктов нет. Релиз остаётся ручным; теги, npm-публикация и права доступа не изменяются. Откат выполняется обычным revert этого PR.

Summary by CodeRabbit

  • Изменения
    • Убраны отдельные запуски fuzz-тестов на конечность из CI- и релизного процессов. Финальность по-прежнему проверяется в рамках общего набора тестов.
    • Обновлены проверки конфигурации тестирования и шагов CI.

@coderabbitai

coderabbitai Bot commented Oct 6, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

Warning

Review limit reached

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

Next included review available in 38 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used the included review currently available. Your 148 included PR review attempts over the past 7 days set your current allowance at 1 review per hour.

Learn how review limits work.

Review configuration:

⚙️ Run configuration
  • Configuration used: Organization UI
  • Review profile: ASSERTIVE
  • Plan: Team
  • Run ID: 224b6cb2-fed2-429c-a0ab-9df7a125978f
📥 Commits

Reviewing files that changed from the base of the PR and between c7fea74 and d972f12.

⛔ Files ignored due to path filters (1)
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
📒 Files selected for processing (1)
  • pnpm-workspace.yaml

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration
  • Configuration used: Organization UI
  • Review profile: ASSERTIVE
  • Plan: Team
  • Run ID: bfaea9c8-b080-47af-9b24-b00907cfb34c
📥 Commits

Reviewing files that changed from the base of the PR and between 6e198fc and c7fea74.

📒 Files selected for processing (3)
  • .github/workflows/ci.yml
  • .github/workflows/release.yml
  • test/ci-workflow-contract.test.ts
💤 Files with no reviewable changes (2)
  • .github/workflows/ci.yml
  • .github/workflows/release.yml

Included review availability: This review used your included allowance. 0 included reviews remain after this review. Your included PR review attempts over the past 7 days set your current allowance at 1 review per hour.


📝 Walkthrough

Walkthrough

Из CI- и release-workflows удалены отдельные шаги запуска fuzz-тестов на конечность. Контрактный тест обновлён: он проверяет конфигурацию Vitest, отсутствие этих команд и новый индекс шага Node.

Changes

Запуск fuzz-тестов на конечность

Layer / File(s) Summary
Изменение workflow и контрактных проверок
.github/workflows/ci.yml, .github/workflows/release.yml, test/ci-workflow-contract.test.ts
Из обоих workflows удалены отдельные шаги запуска fuzz-тестов на конечность. Контрактный тест проверяет наличие файлов fuzz-тестов, настройки vitest.config.js, отсутствие прежней команды в workflows и обновлённый индекс шага Node.

Priority: ⬇️ Low

Estimated code review effort: 2 (Simple) | ~10 minutes

Change: Other

Merge Risk: ⚪ Minimal · up to c7fea

The regular CI and release test runs still include all ten fuzz tests, and failures fail the corresponding job. No merge-blocking risk is evident.


Caution

Pre-merge checks failed

Please resolve all errors before merging. Addressing warnings is optional.

  • Ignore

❌ Failed checks (1 error)

Check name Status Explanation Resolution
тесты ❌ Error Тест не закрывает весь класс повторного запуска fuzz corpus в release workflow. test/ci-workflow-contract.test.ts:569-570 ищет только точную строку старой команды. Контрпример: заменить её на `pnpm … Проверять release workflow структурно: разобрать YAML и проверить команды всех шагов verify на отсутствие отдельного запуска Vitest с fuzz-файлами, сохранив обычный полный запуск pnpm test. Добавить проверку на класс команд, а не точное…
✅ Passed checks (8 passed)
Check name Status Explanation
Title check ✅ Passed Заголовок на русском и точно отражает цель изменения: запускать fuzz corpus один раз вместо повторного прохода в CI и проверке релиза.
Description check ✅ Passed Описание раскрывает причину изменения, его границы и результаты проверки. Оно не повторяет шаблонные разделы; для performance-изменения также не указаны baseline, методика и измеренный результат. Эти …
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
краткие русские документации ✅ Passed Проверка документации не выявила нарушений. В PR изменены только .github/workflows/ci.yml, .github/workflows/release.yml и test/ci-workflow-contract.test.ts; новые или изменённые документы отсут…
Diataxis ✅ Passed Проверка Diataxis неприменима к этому PR. По точному diff изменены только .github/workflows/ci.yml, .github/workflows/release.yml и test/ci-workflow-contract.test.ts. Документация не добавлена и…
архитектура ✅ Passed Изменения не вводят нарушений заданных архитектурных критериев. CI и release workflow удаляют только повторный запуск fuzz-корпуса. Обычный Vitest остаётся включён: package.json задаёт vitest run,…
промежуточные документы (напр. планы) ✅ Passed PR изменяет только .github/workflows/ci.yml, .github/workflows/release.yml и test/ci-workflow-contract.test.ts. Изменения удаляют повторный запуск fuzz-тестов и обновляют контрактный тест. Проме…
Full details: тесты

Explanation

Тест не закрывает весь класс повторного запуска fuzz corpus в release workflow. test/ci-workflow-contract.test.ts:569-570 ищет только точную строку старой команды. Контрпример: заменить её на pnpm exec vitest run --reporter=verbose test/*finiteness-fuzz.test.ts. Это снова запускает тот же corpus отдельно, но точная подстрока отсутствует, поэтому новая проверка проходит. Проверка CI сильнее: assertNativeGraph сравнивает все команды job tests с полным списком (test/ci-workflow-contract.test.ts:277-285, 357-358). Для release аналогичной проверки команд нет; существующий release-контракт проверяет диагностику Vitest и синтаксис workflow, а не отсутствие повторного запуска (test/release-workflow-contract.test.ts:246-265, 622-655). Тест конфигурации Vitest подтверждает широкое включение test/**/*.test.ts, но это не устраняет пробел в проверке release workflow.

Resolution

Проверять release workflow структурно: разобрать YAML и проверить команды всех шагов verify на отсутствие отдельного запуска Vitest с fuzz-файлами, сохранив обычный полный запуск pnpm test. Добавить проверку на класс команд, а не точное написание прежней строки. Подтвердить чувствительность контракта мутацией: добавить отдельный шаг с эквивалентной командой, например pnpm exec vitest run --reporter=verbose test/*finiteness-fuzz.test.ts, и убедиться, что тест падает.

✨ Finishing Touches 💡 1
📝 Generate docstrings
  • Commit to this branch
  • Create a new PR
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR
🛠️ Fix failing CI checks 💡
  • Commit to this branch
  • Create a new PR
  • Autopilot · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Comment @coderabbitai help to get the list of available commands.

coderabbitai[bot]
coderabbitai Bot previously requested changes Oct 6, 2026

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pre-merge checks failed. Please resolve the failing checks before merging.

Copy link
Copy Markdown
Contributor Author

В d972f12 исправлены зависимости, удерживавшие Static contract: Seroval разрешается в 1.6.8, source-map-js в 1.2.2. Frozen install, аудит зависимостей, TypeScript и все 95 проверок CI-контракта прошли. Команды и пороги аудита сохранены. Полный CI проверяет новый head. @coderabbitai review

@coderabbitai

coderabbitai Bot commented Oct 6, 2026 •

Copy link
Copy Markdown

@lemone112, запущу ревью изменений на текущем head с учётом коммита d972f120fec30686e25cddeeeec0e57f023567f3. Проверю обновление зависимостей и сохранение CI-контракта, команд и порогов аудита. Результаты локальных проверок не заменяют успешный полный CI перед merge.

⚠️ Action not completed

Review rate limited.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@lemone112 lemone112 left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Самостоятельное содержательное ревью d972f12: все девять finiteness-fuzz файлов входят в прежний полный Vitest include, исключения и фильтры не добавлены. Удалён только их второй идентичный запуск; штатные native CPU, browser, mutation, Node compatibility, package/size/typecheck проверки сохранены. Серия из 95 CI-контрактных тестов проходит, обновления Seroval 1.6.8 и source-map-js 1.2.2 установлены frozen-lockfile и проходят прежний аудит. Полный CI этого exact head сейчас SUCCESS, включая Chromium/Firefox/WebKit, Node 22/24 и test/fuzz. Первый запуск test/fuzz остановился на калибровке A/A heap до оценки кандидата; неуспешный журнал сохранён, повторно запускались только упавшие jobs без изменения порогов или исходников. Эксперимент с дополнительным прогревом остаётся вне этого PR. Подтверждённых замечаний к пяти изменённым файлам нет; устаревший Request changes относится только к прежнему состоянию checks, inline findings отсутствуют.

@lemone112
lemone112 dismissed coderabbitai[bot]’s stale review October 6, 2026 05:41

Первоначальный Request changes содержал только «Pre-merge checks failed» и не содержал inline findings. Все обязательные checks exact head d972f12 теперь SUCCESS: https://github.com/Labpics-Team/lab-motion/actions/runs/37417853627 . Исправлены уязвимые зависимости; содержательное самостоятельное ревью записано в review 5424230597. Снимается только устаревшее удержание; обязательные проверки и правила остаются прежними.

@lemone112
lemone112 merged commit fe71340 into main Oct 6, 2026
21 of 23 checks passed
@lemone112
lemone112 deleted the perf/ci-single-fuzz-pass-20261006 branch October 6, 2026 05:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant