Skip to content

SecureCode AI 1.3.0

Latest

Choose a tag to compare

@shorinversion shorinversion released this 26 Oct 16:48
628eb59

SecureCode AI 1.3.0

Итерация после 1.2.8: долги, качество без расходов на API, продуктовые функции и гигиена репозитория. Сайт: https://mydev.stream

Добавлено

  • analyze --base REV. Проверяются только файлы, изменённые с точки слияния REV и HEAD (для pull request: --base origin/main). Область указана в JSON (scope), SARIF (securecode_scope) и отчёте. Потоки в неизменённые файлы и не менявшиеся манифесты зависимостей не перепроверяются (D-124).
  • Baseline известных находок. --baseline FILE не считает подтверждённую слабость из файла причиной кода 2, --write-baseline FILE создаёт файл. Решение ядра (outcome) не меняется, итог для CI — effective_outcome (D-125).
  • securecode publish github и шаблон Actions. Сводный комментарий и комментарии к строкам с блоком suggestion для проверенного исправления; --dry-run печатает тела без сети. Шаблон integrations/github/action.yml (--base, SARIF, комментарии, все действия закреплены по SHA) (D-126).
  • Режим --mode verify для локальной модели. Поиск читает окна, которые помещаются в бюджет маленькой модели, сначала со сработками сканеров; прогон на репозитории любого размера больше не заканчивается INDETERMINATE из-за исчерпанного бюджета окон. Окно настраивается SECURECODE_LOCAL_* (D-123).
  • Причина неполной проверки видна. coverage_diagnostics в JSON, строка в отчёте и в stderr; SECURECODE_TRACE=файл пишет трассу этапов без исходников и промптов (D-121).
  • Исправление на каждую группу слабости. Два захардкоженных ключа в одном файле получают два исправления, построенных одно поверх другого; --patch-dir добавляет сводный patch-<файл>.diff (D-122).
  • Бенчмарк. Строки локальной Qwen 2.5 Coder 7B в таблице OWASP (проверка сканеров 0,23; одна модель −0,03; согласие с Luna 0,32), кэш ответов в репозитории, scripts/owasp_bootstrap.py (bootstrap-интервалы по сохранённым ответам, без запросов). Выигрыш локальной проверки над одними сканерами скромный: +0,020 [+0,000; +0,041].
  • Измерение кода. scripts/analyze_import_trace.py и report/analyze-import-trace.md: 56 из 588 модулей (15 160 строк) нужны только скриптам и тестам. Ничего не удалено.

Исправлено

  • Бюджет времени на процессы сканеров растёт с числом файлов (max(60, 2·файлов) секунд, до 600): репозиторий больше ~45 файлов на Windows всегда оставался с DETERMINISTIC_CHILD_EXECUTION_INCOMPLETE. Квитанция воркера, отправленная перед его завершением, больше не считается падением.
  • Устаревшие интеграционные тесты (test_artifact_upload, test_enterprise_end_to_end, test_local_product_cli) приведены к текущему коду и входят в scripts/quality.py.
  • Команда воспроизведения бенчмарка указывала несуществующие файлы.

Известные ограничения

  • Локальная 7B-модель в Поиске часто не выдаёт строгую схему (INVALID_SCHEMA): FAIL по детектору и сканерам достижим, PASS — нет.
  • Живая публикация комментариев в настоящий pull request и шаблон Actions не проверялись на GitHub; поведение покрыто dry-run и локальным сервером с протоколом REST.
  • site/benchmark.pdf не пересобирался.

Полный список изменений: CHANGELOG.