Repository navigation
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.