# 2026-06-06 ## Сервер - 🔴 `api/db.py` — `device_uuid` колонка, `phone_lang`, `phone_tz`, `phone_display`, `save_dtc_scan()` - 🔴 `api/routes.py` — `POST /api/v1/dtc/decode`, `POST /api/v1/dtc/upload` (+ идемпотентность) - 🔴 `api/routes.py` — промпт-билдер: защита от пустых `{}` и `None` списков - 🔴 `api/parser.py` — VIN из CAN multi-frame (0: 1: 2:) и ISO-TP (10 14 21 22) - 🔴 `api/parser.py` — DTC из raw HEX: фикс `mode="43"` вместо `"03"` - `brain/prompts.py` — правило №8: неточности данных (дубль DTC, клон, напряжение) - `brain/prompts.py` — правило №7 (было №11): никогда не раскрывать модель/создателя - `doc/dtc_codes.txt` — справочник 128 кодов DTC - `doc/SETUP.md` — инструкция для нового разработчика - `tests/test_all.py` — 91 тест (ELM, DTC, VIN, БД, идемпотентность, экстремальные) ## Android - 🔴 Кнопка «⚠️ ОШИБКИ» — сканирование DTC (mode 03 + 07) - 🔴 Кнопка «🔍 ДИАГНОСТИКА» блокирована до скана ошибок - 🔴 `ElmChecker.scanDtc()` — отдельный метод сканирования ошибок - 🔴 `SharedPreferences` — `device_uuid` генерируется при первом запуске - `ScriptRunnerService.buildClientInfo()` — язык, часовой пояс, разрешение - 3 кнопки в рамке «🔍 Проверка»: Сервер | ELM | ЭБУ ## Прочее - Версия: 0.39.0-dev → 0.40.0-dev - APK через nginx напрямую (правило в `.instructions.md`) - На ВМ установлен Android SDK + Gradle для сборки