diff --git a/.instructions.md b/.instructions.md index 5c67fba..8282a06 100644 --- a/.instructions.md +++ b/.instructions.md @@ -39,6 +39,7 @@ 6. **Ветки:** `master` — продакшен, `opus-fixes` и др. — для правок. Вливать в master когда готово. 7. **После правок:** коммит + пуш + (если сервер) деплой через SSH. 8. **Версия:** менять в трёх местах — `build.gradle.kts`, `index.html`, доки. +9. **Документировать изменения** в `doc/history/YYYY-MM-DD.md` после каждого сеанса работы. Формат: 🔴/🟡/🟢 для приоритета, по файлам. ## Структура сервера diff --git a/doc/history/2026-05-31.md b/doc/history/2026-05-31.md new file mode 100644 index 0000000..e5b92ab --- /dev/null +++ b/doc/history/2026-05-31.md @@ -0,0 +1,25 @@ +# 2026-05-31 + +## Сервер +- 🔴 **api/db.py** — WAL, `request_id` UNIQUE, `close()`, контекстный менеджер +- 🔴 **api/routes.py** — идемпотентность upload, `/ping-llm` кэш 60с, `/chat` через roles +- 🔴 **obd/protocol.py** — `reset_input_buffer()`, не затирать ERROR +- 🔴 **brain/client.py** — `LLMError`, обработка 429/5xx/Timeout, дефолт gpt-oss-120b +- 🟡 **api/config.py** — `@lru_cache` на `load()` +- 🟡 **api/routes.py** — импорты наверх +- Удалён мёртвый `elmer/elmer/` + +## Android +- 🔴 **ServerClient** — `request_id` (UUID), `X-Api-Key`, exponential backoff +- 🔴 **ElmProtocol** — дренаж буфера, не затирать ERROR +- 🔴 **SessionDb** — `ALTER TABLE` вместо DROP, индекс +- 🔴 **MainActivity** — throttle `/ping-llm`, `X-Api-Key`, `chatHistory` persistence +- 🔴 **ScriptRunnerService** — null-intent guard, убран мёртвый `paused` +- 🟡 **build.gradle.kts** — `buildConfigField API_KEY` + +## Прочее +- VIN → logo +- Версия: 0.35.0-dev → 0.36.0-dev +- `.instructions.md` — создан +- `doc/architecture.md` — CI/CD расписан +- GitHub Actions удалён и восстановлен (несколько раз) diff --git a/doc/history/2026-06-03.md b/doc/history/2026-06-03.md new file mode 100644 index 0000000..51f1ae2 --- /dev/null +++ b/doc/history/2026-06-03.md @@ -0,0 +1,13 @@ +# 2026-06-03 + +## Сервер +- Дефолтный LLM: `api.aillm.ru` → `api.deepseek.com` (deepseek-v4-flash) +- `doc/git-guide.md` — создана инструкция по git +- `doc/architecture.md` — уточнён деплой (git clone, не tar.gz) + +## Android +- `build.gradle.kts` — `buildFeatures.buildConfig = true` + +## Прочее +- Версия: 0.36.0-dev +- Сервер переведён на git-клон вместо tar.gz (удалён elmer.old) diff --git a/doc/history/2026-06-05.md b/doc/history/2026-06-05.md new file mode 100644 index 0000000..e27dd5e --- /dev/null +++ b/doc/history/2026-06-05.md @@ -0,0 +1,18 @@ +# 2026-06-05 + +## Сервер +- `car_info` в upload — водитель может описать авто текстом, передаётся в LLM +- GitHub Actions разрешён для APK (теперь CI собирает и деплоит) + +## Android +- **`ElmChecker.kt`** — новый: проверка ELM327 (версия, напряжение, BT) +- Поле «что за машина» — ввод описания авто перед диагностикой +- Индикаторы загрузки — улучшен UI +- Подпись APK — фиксированный ключ (APK обновляется без удаления) +- **GitHub Actions** — автосборка + деплой APK на сервер +- `gradlew` — добавлен в репо +- `ServerClient` — `ping()` / `pingLlm()` + +## Прочее +- Версия: 0.36.0-dev → 0.37.0-dev +- `doc/history/` — создана папка с журналом изменений по датам