doc: session 2026-04-05 — autoTimer fix deploy, progress и thinking log

This commit is contained in:
Naeel
2026-04-05 09:53:11 +03:00
parent 5e3c82d12a
commit 661218bb73
2 changed files with 58 additions and 1 deletions
+32 -1
View File
@@ -1,6 +1,37 @@
# Прогресс разработки
Последнее обновление: 2026-04-01
Последнее обновление: 2026-04-05
---
## 2026-04-05 — IoT Telemetry: деплой финального фикса autoTimer (iot-pg-telemetry)
### Задача
Задеплоить незадеплоенный фикс из предыдущей сессии: `switchTab` больше не убивает `autoTimer`.
### История багов (исправлены за сессию 2026-04-03..05)
| Коммит | Баг | Фикс |
|--------|-----|------|
| `b902e13` | HTTP 500 на вкладке Телеметрия (БД тенанта не существует) | `isDBNotExistErr()` → 200 + пустой массив |
| `233e285` | Эмулятор отключается при публикации (ACL-mismatch topic) | Topic исправлен: `{ns}/telemetry/{deviceId}` в `MQTTAuth`+`MQTTAcl` |
| `233e285` | Bridge не подписывался (`+/telemetry/+` запрещён ACL) | Bridge clientid получил разрешение subscribe |
| `911f2bd` | `autoTimer` зависел от DOM (`#emu-payload`) при переключении вкладок | `S.autoTopic` + `generateSensorPayload()` без DOM-зависимости |
| `5e3c82d` | `switchTab` убивал `autoTimer` при любом переходе на другую вкладку | Убраны все вызовы `mqttStopAuto()` из `switchTab` |
### Архитектура autoTimer после фиксов
- `autoTimer` — фоновый процесс, живёт независимо от активной вкладки
- Останавливается только: явный клик "Стоп", `mqttDisconnect()`, `nav()` (уход со страницы устройства)
- При возврате на вкладку Эмулятор кнопка показывает правильный статус из `S.autoTimer`
### E2E статус (подтверждено `233e285`)
Цепочка устройство → MQTT → bridge → Postgres → REST API работает:
`mosquitto_pub` → bridge log `forwarded IoT telemetry``GET /v1/.../iot/telemetry``{"count":1,"items":[...]}`
### Текущий статус
- ✅ Все баги телеметрии задеплоёны
- ✅ Ветка `iot-pg-telemetry`, последний коммит `5e3c82d`
- ⏳ Merge в main — когда пользователь скажет
---
+26
View File
@@ -24,3 +24,29 @@ Postgres для invocations есть, для IoT телеметрии — нет
### Результат
Записан подробный план в doc/iot-mvp-plan.md — 7 шагов с файлами, кодом и YAML.
---
## GitHub Copilot (Claude Sonnet 4.6)
## Задача 1 — Задеплоить фикс switchTab (продолжение прошлой сессии)
### Контекст
Предыдущая сессия: autoTimer убирался из switchTab, но не был задеплоен.
Файл `internal/api/ui/iot-console.html` уже изменён, нужно build+push+rollout+commit.
### Анализ состояния кода
Проверил `switchTab` — вызовов `mqttStopAuto()` нет. Кнопка авто рендерится шаблоном
`${S.autoTimer ? 'Стоп' : 'Запустить'}` — при возврате на вкладку эмулятора DOM перерисовывается
с `emulatorTab(d)`, state `S.autoTimer` актуален → кнопка отображает правильный статус.
### Выполнено
1. docker build --no-cache → `3838130c0f33`, tagged v0.1.59 ✅
2. docker push → digest `sha256:f467a2c6...`
3. kubectl rollout restart → `successfully rolled out`
4. git commit `5e3c82d` "fix: autoTimer runs as background process, not killed on tab switch" ✅
5. git push → `iot-pg-telemetry`
### Итог
autoTimer теперь не убивается при переключении вкладок.
Останавливается только явным нажатием "Стоп", mqttDisconnect, или nav() (уход со страницы устройства).