32 lines
2.3 KiB
Markdown
32 lines
2.3 KiB
Markdown
# 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?
|