Files
sless/doc/thinking/2026-04-05.md
T

2.8 KiB
Raw Blame History

Thinking Log — 2026-04-05

Агент: GitHub Copilot (Claude Opus 4.6)


Задача: написать подробный план реализации Telemetry Pipeline для Sonnet

Контекст

Пользователь: "я не понял как этим пользоваться" — вкладка Телеметрия заглушка. Нужна полная цепочка: устройство -> данные в таблице.

Анализ — что уже есть

IoT-компоненты реализованы на 85%: CRD, controller, EMQX, MQTT auth/ACL, mqtt-bridge, IoT Console. mqtt-bridge: MQTT -> RabbitMQ (для function triggers). Данные НЕ сохраняются. Postgres для invocations есть, для IoT телеметрии — нет.

Ключевые решения при написании плана

  1. Postgres сразу (пользователь настоял)
  2. Отдельный Postgres инстанс (iot-postgres), но в namespace sless
  3. DATABASE per tenant (изоляция)
  4. mqtt-bridge: INSERT параллельно с RabbitMQ publish
  5. REST API: GET /v1/.../iot/telemetry (только limit, без from/to)
  6. Эмулятор: рандом temp 18-28, humidity 40-80

Результат

Записан подробный план в 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() (уход со страницы устройства).