Repinoid
|
cd1c0a977e
|
fix: hello чистит старые команды для device_id — новая сессия = чистый старт
|
2026-06-28 19:35:47 +04:00 |
|
Repinoid
|
25c8eb20b9
|
fix: атомарный dequeue, двойной ATI, MAX_RETRIES 620ms, ретеншн, фильтр device_id
|
2026-06-28 11:46:00 +04:00 |
|
Repinoid
|
c33bd8e2de
|
fix: раздельные execute для CREATE TABLE + INDEX
|
2026-06-28 11:32:07 +04:00 |
|
Repinoid
|
d80cb26ce5
|
fix: raw_elm.py на SQLite очередь (gunicorn-safe), таблица command_queue в db.py
|
2026-06-28 11:28:15 +04:00 |
|
Repinoid
|
45a6640dae
|
fix: build_dynamic_script — 6 PID (4 частых + 2 средних/редких), interval_ms 1200ms
|
2026-06-28 11:26:14 +04:00 |
|
Repinoid
|
c229b730c6
|
feat: raw relay — очередь команд, эндпоинты, консоль, index.html
|
2026-06-14 18:53:24 +04:00 |
|
Repinoid
|
d01028b12b
|
feat: raw ELM327 console — сырой слой, API, интерактивная консоль
|
2026-06-14 18:24:27 +04:00 |
|
Repinoid
|
658b161730
|
fix: старт 2000ms, шаг +500ms — агрессивнее
|
2026-06-14 15:01:26 +04:00 |
|
Repinoid
|
de54c1ff40
|
feat: POST /api/v1/test/next + авто-подбор
|
2026-06-14 14:05:00 +04:00 |
|
Repinoid
|
f9c2152c9d
|
fix: routes.py wait=1500, repeat=8
|
2026-06-14 13:58:16 +04:00 |
|
Repinoid
|
7c1391dcf4
|
test: wait=1500ms, 2 PID — минимальный тест связи
|
2026-06-14 13:57:35 +04:00 |
|
Repinoid
|
6e59fef093
|
feat: build_test_script + mode=test
|
2026-06-13 20:57:24 +04:00 |
|
Repinoid
|
50cc615d80
|
fix: SyntaxError - triple quotes
|
2026-06-10 21:39:44 +04:00 |
|
Repinoid
|
0598c5f8e1
|
fix: PUT profile создаёт профиль если его нет (upsert)
|
2026-06-10 21:33:47 +04:00 |
|
Repinoid
|
74808332be
|
docs: история 2026-06-10 — speed-test, адаптивный интервал, threading lock
|
2026-06-10 20:13:11 +04:00 |
|
Repinoid
|
008b1c11b5
|
fix: threading lock in Database for concurrent writes
|
2026-06-10 19:49:28 +04:00 |
|
Repinoid
|
31cba53798
|
fix: sessions API — нет колонки title, используем vin/car_info
|
2026-06-08 11:48:14 +04:00 |
|
Repinoid
|
4071a420c7
|
bump v0.86.0-dev, /api/v1/sessions
|
2026-06-08 11:33:48 +04:00 |
|
Repinoid
|
fd17b9d03e
|
bump v0.82.0-dev, fix ping-llm auth, шрифт 11sp
|
2026-06-08 09:04:43 +04:00 |
|
Repinoid
|
6aadf66a38
|
fix(server): X-Api-Key проверка на upload/chat/ping-llm, лимит 2000 ответов
|
2026-06-07 18:27:13 +04:00 |
|
Repinoid
|
b95cf1fbad
|
fix(server): лимит dynamic_samples — не более 1000
|
2026-06-07 12:54:52 +04:00 |
|
Repinoid
|
20be9103af
|
feat(server): приём dynamic_samples, выбор DYNAMIC_PROMPT
|
2026-06-07 12:12:26 +04:00 |
|
Repinoid
|
76abc22b79
|
feat(server): DYNAMIC_PROMPT для анализа временных рядов
|
2026-06-07 11:51:48 +04:00 |
|
Repinoid
|
290e289517
|
feat(server): скрипт ?mode=dynamic — 12 PID, интервал 250мс
|
2026-06-07 11:50:56 +04:00 |
|
Repinoid
|
fd2126c0cb
|
fix(db): executescript в try/except, индексы отдельно от миграций
|
2026-06-07 09:16:33 +04:00 |
|
Repinoid
|
d5e44060d3
|
fix(db): миграции ALTER TABLE для старых БД (device_uuid и др.)
|
2026-06-07 09:15:33 +04:00 |
|
“Naeel”
|
aa37a1a70c
|
v0.48.0 — пробинг ELM327, трехуровневый профиль, рефакторинг obd/
- obd/probe.py: трехуровневый каскад (L0/L1/L2)
- obd/commands.py: каталог всех AT-команд с метаданными
- obd/classifier.py: классификация ответов + определение уровня
- obd/connection.py: транспортный слой (SerialTransport)
- obd/protocol.py: init() только база, без ATAT1/ATST
- api/db.py: таблица device_profiles по BT MAC
- api/scripts.py: три уровня скриптов (l0/l1/l2)
- api/routes.py: /elm/probe, /elm/profile/<mac>, /script?level=
- web/templates/index.html: v0.48.0
- CHANGELOG.md, doc/architecture.md, resume.txt: версии
|
2026-06-07 05:55:02 +04:00 |
|
Repinoid
|
fd8059bb6a
|
docs: пояснения почему выбрана такая логика (reasoning)
|
2026-06-06 07:24:17 +04:00 |
|
Repinoid
|
8da4876cb8
|
docs: подробные docstring перед каждой функцией
|
2026-06-06 07:22:35 +04:00 |
|
Repinoid
|
7aaebf8481
|
refactor: разбил routes/db/protocol на отдельные модули
|
2026-06-06 07:16:51 +04:00 |
|
Repinoid
|
d2f42e99bb
|
fix: car_info сохраняется в БД
|
2026-06-06 07:06:56 +04:00 |
|
Repinoid
|
4c71d7a4c9
|
feat: идемпотентность DTC + prompt учитывает неточности данных
|
2026-06-06 07:02:56 +04:00 |
|
Repinoid
|
1e8fd62039
|
fix: parser — CAN multi-frame, ISO-TP, пустой {} в промпт, 91 тест
|
2026-06-06 06:59:26 +04:00 |
|
Repinoid
|
f83a14a1ce
|
chore: тесты, SETUP.md, фикс parser DTC (mode=43, не 03)
|
2026-06-06 06:53:28 +04:00 |
|
Repinoid
|
beecf2fb9e
|
feat: краткий диагноз, без воды
|
2026-06-06 06:47:32 +04:00 |
|
Repinoid
|
64acb8c60a
|
feat: DTC-коды: справочник, эндпоинты /dtc/decode, /dtc/upload
|
2026-06-06 06:40:50 +04:00 |
|
Repinoid
|
9d08ff4c75
|
feat: телефон — язык, часовой пояс, разрешение экрана
|
2026-06-06 06:23:24 +04:00 |
|
Repinoid
|
9049383e87
|
feat: device_uuid — UUID приложения в SharedPreferences
|
2026-06-06 06:16:00 +04:00 |
|
Repinoid
|
64fba6941d
|
fix: если переспросят — «С какой целью интересуешься?»
|
2026-06-05 18:43:00 +04:00 |
|
Repinoid
|
eb79072dd4
|
feat: LLM никогда не признаётся кто её создал — академические театры
|
2026-06-05 18:39:22 +04:00 |
|
“Naeel”
|
03bf84c289
|
feat: car_info в upload — свободное описание авто от водителя
|
2026-06-04 18:44:16 +03:00 |
|
“Naeel”
|
fc897367b6
|
fix: ping-llm адаптивный кэш — 60с при успехе, 7с при ошибке
|
2026-06-03 06:45:36 +03:00 |
|
Repinoid
|
820bcfcbb5
|
fix: nonlocal → global для _ping_llm_cache
|
2026-05-31 17:54:30 +03:00 |
|
Repinoid
|
6893ae33f5
|
fix(server): идемпотентность upload, WAL, буфер ELM, таймаут LLM
- api/db.py: WAL mode, busy_timeout, request_id UNIQUE, close(), контекстный менеджер
- api/routes.py: проверка request_id при upload, /ping-llm кэш 60с, /chat через roles
- api/config.py: lru_cache на load()
- obd/protocol.py: reset_input_buffer перед _write(), условный READY в send()
- brain/client.py: модель 120b, таймаут из параметра, LLMError класс, обработка 429/5xx
|
2026-05-31 16:56:21 +03:00 |
|
Repinoid
|
2db6cb68a8
|
refactor: архитектура сервера — obd/ brain/ api/
- obd/protocol.py — ELM327 стейт-машина AndrOBD (подробные докстринги)
- brain/client.py — LLM-клиент Diagnoser
- brain/prompts.py — системные промпты
- api/db.py — SQLite (sessions + старые таблицы)
- api/scripts.py — сборка диагностических скриптов
- api/parser.py — парсинг ответов ELM327
- api/routes.py — все REST-эндпоинты
- api/config.py — загрузка конфига
- web/app.py — точка входа Flask (упрощена)
Удалено: elmer/elm.py, elmer/elm_proto.py, web/raw_endpoint.py
|
2026-05-29 17:24:33 +03:00 |
|