Files
elmer/doc/session-2026-06-06.md
T

2.5 KiB
Raw Blame History

2026-06-06 — Полная сессия (полевой тест + 9 багов + фиксы)

Текущий статус

  • Версия: v0.47.0-dev
  • APK: https://obdai.ru/elmer.apk
  • Сервер: https://obdai.ru (5.172.178.213, nginx+gunicorn)
  • Android repo: github.com/Repinoid/elmer-android
  • Server repo: gitea.services.ngcloud.ru/Nail/elmer

Хронология коммитов (Android)

Коммит Описание
6a33048 fix: checkDevice() забыл connectAndInit()
739afa9 fix: connect() идемпотентный + run() без двойного connect
94b890f bump v0.43.0-dev
71618c6 fix: статус-строка — append вместо overwrite
d49f6d6 fix: все appendStatus с \n, таймер на своей строке
3ef3532 fix: scriptRegistered сброс в onDestroy
dead66c fix: init без ретраев, v1.5-совместимость

Все 9 багов

  1. checkDevice без connectAndInit — AT-команды без BT-сокета
  2. connect не идемпотентный — guard socket.isConnected
  3. run двойной connect
  4. Статус-строка overwrite — всё на appendStatus(\n...)
  5. Таймер съедал заголовок — \n вместо пробела
  6. scriptRegistered не сбрасывался после поворота
  7. init() 70 секунд на ATAT1 — write+tryRead(2s) вместо exec
  8. checkDevice слал v2-команды на v1.5 — проверка isV2
  9. recover/updateAtst/handle длинные таймауты — 2000-3000мс

ELM327: версии и команды (Wikipedia)

  • v1.5 НЕ СУЩЕСТВУЕТ — клон v1.0/v1.4 с фейковой версией
  • ATAT1 (adaptive timing): с v1.2
  • AT@1/AT@2 (device ID): с v1.3
  • ATST (set timeout): с v1.2
  • Базовые (ATI, ATDP, ATRV, ATSP, ATE0, ATL0, ATS0, ATWS): с v1.0

Правила для Copilot

  1. Коммит после каждой правки: git add -A && git commit -m "..." && git push
  2. При деплое bump версии в android/app/build.gradle.kts
  3. Формат: fix:/feat:/refactor:/bump:/docs:

TODO

  • Разбить MainActivity.kt (~470 -> <=200 строк)
  • Разбить ElmChecker.kt (~270 -> <=200 строк)
  • Подробные комментарии перед каждой функцией
  • Полевой тест v0.47.0-dev на машине