Files
elmer/doc/opus-recheck-request-2026-06-28.md
T

2.3 KiB

Opus — переанализ после фаз 0–6

Дата: 2026-06-28 Предыдущий анализ: doc/history/opus-plan-analysis-2026-06-28.md

Что изменилось

Твой план из 6 фаз реализован в ветке opus-fixes. Изменённые файлы:

Android (:raw — тестовый модуль, пакет ru.elmer.raw)

  • /home/naeel/elmer/android/raw/src/main/java/ru/elmer/raw/ElmProtocol.kt — канонический init (ATE0→ATL0→ATS0→ATI→detectClone→ветвл→ATSP0), ATST96 для клонов, MAX_RETRIES=6, @Volatile state, drain после sendCommand, handle STOPPED/NO DATA/UNABLE
  • /home/naeel/elmer/android/raw/src/main/java/ru/elmer/raw/ElmActor.kt — single-thread executor вокруг ElmProtocol (новый файл)
  • /home/naeel/elmer/android/raw/src/main/java/ru/elmer/raw/RawRelayService.kt — переведён на ElmActor

Сервер (Python)

  • /home/naeel/elmer/obd/protocol.py — канонический init (тот же порядок, clone detect, drain после send)
  • /home/naeel/elmer/api/raw_elm.py — полная переработка: SQLite command_queue вместо глобальных переменных (gunicorn-safe, -w 4)
  • /home/naeel/elmer/api/db.py — таблица command_queue
  • /home/naeel/elmer/api/scripts.py — build_dynamic_script: 6 PID, interval_ms 1200
  • /home/naeel/elmer/config.yaml — api_key → env LLM_API_KEY (безопасность)

НЕ тронуто

  • :app модуль (ru.elmer.client) — весь старый код без изменений

Что нужно

  1. Валидация — нет ли новых ошибок, противоречий, race conditions в новом коде
  2. ElmActor.kt — корректна ли реализация single-thread executor? Нет ли deadlock при init()?
  3. ElmProtocol.kt (raw) — правильный ли порядок init? Корректна ли обработка двойного ответа ATWS?
  4. raw_elm.py — корректна ли SQLite-очередь? Атомарен ли dequeue?
  5. Общая оценка — можно ли с этим кодом запускать тесты на реальном ELM327 v1.5?