Files
elmer/doc/audit-prompt.md
T

3.1 KiB
Raw Blame History

Задание: аудит проекта 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 — локальная БД

Сервер

  1. api/routes.py — эндпоинты (script, upload, chat, ping)
  2. api/db.py — SQLite-схема и миграции
  3. api/scripts.py — скрипты L0/L1/L2/dynamic
  4. brain/prompts.py — SYSTEM_PROMPT, DYNAMIC_PROMPT
  5. 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 с отчётом. Формат:

## Найдено
### 🔴 Критичные
- описание бага, файл, строка, как исправить

### 🟡 Средние
...

### 🟢 Косметика
...