From 2d9b41507af8348a0c2a405eac9efd762b981e7b Mon Sep 17 00:00:00 2001 From: Repinoid Date: Sun, 7 Jun 2026 18:17:35 +0400 Subject: [PATCH] =?UTF-8?q?docs:=20=D0=BF=D1=80=D0=BE=D0=BC=D0=BF=D1=82=20?= =?UTF-8?q?=D0=B4=D0=BB=D1=8F=20=D0=B0=D1=83=D0=B4=D0=B8=D1=82=D0=B0=20?= =?UTF-8?q?=D0=BF=D1=80=D0=BE=D0=B5=D0=BA=D1=82=D0=B0=20=D0=B4=D1=80=D1=83?= =?UTF-8?q?=D0=B3=D0=B8=D0=BC=20=D0=B0=D0=B3=D0=B5=D0=BD=D1=82=D0=BE=D0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- doc/audit-prompt.md | 63 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 doc/audit-prompt.md diff --git a/doc/audit-prompt.md b/doc/audit-prompt.md new file mode 100644 index 0000000..f1d7334 --- /dev/null +++ b/doc/audit-prompt.md @@ -0,0 +1,63 @@ +# Задание: аудит проекта elmAI на баги и уязвимости + +## Контекст + +elmAI — Android-приложение + Python-сервер для диагностики авто через ELM327. +Текущая версия: v0.70.0-dev, ветка dynamic-tests. +Уже было найдено и исправлено ~15 багов, но гарантии что всё чисто — нет. + +## Что анализировать + +Проверь код на: +1. Гонки потоков (Android: несколько потоков работают с UI и BT одновременно) +2. Утечки ресурсов (BluetoothSocket, SQLite-соединения, таймеры) +3. NPE / краши (особенно при отсутствии Bluetooth, ELM, интернета) +4. Логические ошибки (состояния кнопки-трансформера, порядок инициализации) +5. Сервер: SQL-инъекции, валидация входных данных, таймауты, OOM +6. Потерю данных (динамические тесты, история, офлайн-режим) + +## Какие файлы читать + +### Android (максимально критичные) +1. `android/app/src/main/java/ru/elmer/client/ui/MainActivity.kt` — главный файл, стейт-машина, UI +2. `android/app/src/main/java/ru/elmer/client/elm/ElmChecker.kt` — BT-подключение, DTC, ЭБУ +3. `android/app/src/main/java/ru/elmer/client/script/DynamicCollector.kt` — сбор 12 PID 250мс +4. `android/app/src/main/java/ru/elmer/client/script/ScriptRunnerService.kt` — фоновая диагностика +5. `android/app/src/main/java/ru/elmer/client/server/ServerClient.kt` — HTTP к серверу +6. `android/app/src/main/java/ru/elmer/client/db/SessionDb.kt` — локальная БД + +### Сервер +7. `api/routes.py` — эндпоинты (script, upload, chat, ping) +8. `api/db.py` — SQLite-схема и миграции +9. `api/scripts.py` — скрипты L0/L1/L2/dynamic +10. `brain/prompts.py` — SYSTEM_PROMPT, DYNAMIC_PROMPT +11. `brain/client.py` — HTTP-клиент к LLM + +## Что УЖЕ исправлено (не трать время) + +- Двойной вызов checkLlm/checkEcu +- setIndicator не в UI-потоке +- Кнопка СТОП не работала +- ECU не зеленел после сканирования +- Дублирование данных при отправке dynamic_samples +- elmChecker переиспользуется между операциями +- 12 PID захардкожены (не дёргаем сервер) +- Диагноз сохраняется в локальную БД +- Миграции ALTER TABLE для старых БД +- deploy.sh на master вместо fat-client + +## Куда сохранить результат + +Создай файл `doc/audit-2026-06-07.md` с отчётом. +Формат: +``` +## Найдено +### 🔴 Критичные +- описание бага, файл, строка, как исправить + +### 🟡 Средние +... + +### 🟢 Косметика +... +```