Changelog

История изменений продукта и сайта.

v0.2.0

История сигнала по абоненту и редизайн страницы OLT

История сигнала ONU

  • Append-only история Rx/Tx с привязкой к номеру договора (numDogovor), а не к MAC. Когда абонент меняет ONU — история не разрывается.
  • Запись пишется только при значимом изменении (|Δrx| ≥ 1.0 dBm или переход LOS↔значение) — не раздувает БД, видны только реальные события.
  • Доступно в UI карточки абонента, через REST API и через MCP-tool onu.signal_history для LLM-ассистента — типовой запрос «покажи как менялся сигнал у абонента N за неделю» теперь обрабатывается одним вызовом.
  • Кроме сэмплов отдаётся агрегат: minRx / maxRx / avgRx / losTransitions и классификация уровня (good / medium / poor / los / overexposed). Видно, как сигнал просел перед отключением — для опережающей диагностики.

Редизайн страницы /olts

  • Foundation: единая палитра, типографика и токены — отвязались от унаследованных стилей предыдущей версии сервиса.
  • Карточки качества сигнала сверху страницы — мгновенно видно сколько OLT в зелёной / жёлтой / красной зоне, без скролла по таблице.
  • Sticky-поиск при прокрутке длинного списка.
  • Тёмная тема: подсветка строк ONU по уровню Rx (warning / error / overexposed) согласована со светлой палитрой; td:hover больше не «вспыхивает» белой подложкой.
  • Чистка action-кнопок в config-history: ghost-стиль вместо «карточных» групп — меньше визуального шума на странице с десятками версий конфига.

LLM-ассистент

  • Реже промахивается мимо config.search для запросов вида «где настроен VLAN N» — раньше уходил в olt.list и не находил.
  • Защита от пустого data.export после транслитерации параметров — больше не возвращает пустой ответ при опечатке в имени поля.

Под капотом

  • Миграции схемы БД — single source через DatabaseInitializer (Flyway убран). Меньше движущихся частей при первом старте.
v0.1.3

Рабочая форма обратной связи + новый знак GetOLT(*);

Что изменилось

  • Контактная форма заработала по-настоящему: вместо редиректа-заглушки /thanks теперь POST /api/contact с серверной валидацией и отправкой через SMTP. Письма падают на корпоративный ящик, в Reply-To — email отправителя, чтобы отвечать одним нажатием. Видны успех/ошибка и пер-полевые подсказки прямо в форме, без перезагрузки страницы.
  • Логотип в шапке и футере заменён: вместо пустого бирюзового квадрата — сам знак-марк (тот, что во вкладке-фавиконе) рядом с моно-вордмарком GetOLT(*);. В шапке справа от лого — медленно мерцающий зелёный индикатор ● online, как лампочка статуса на сетевом устройстве.

Под капотом

  • Лендинг переключён на Astro hybrid SSR (@astrojs/node standalone). Статические страницы остались статикой, серверный — только эндпоинт формы.
  • Образ Docker пересобран: вместо nginx — Node 24, внутренний порт 3000. Внешняя точка входа (reverse-proxy на хосте) не меняется.
v0.1.2

A11y-фикс палитры и настоящий OG-image

Что изменилось

  • Палитра: brand #0EA5A4#0F766E (teal-700). Контраст белого текста на брендовых кнопках/бейджах — 5.34:1 (было 3.02:1, ниже WCAG AA). brand-hover#115E59. brand-accent (#5EEAD4) для тёмных фонов оставлен.
  • Starlight ссылки: добавлено text-decoration: underline для inline-ссылок в docs — раньше link-in-text-block падал на любом цвете. Переопределены --sl-color-accent для light/dark тем под бренд.
  • Тёмные секции: text-ink-500text-ink-400/300 в ContactForm-дисклеймере и Screenshot-плейсхолдере (контраст 3.07/3.75:1 → 4.7/8.6:1).
  • Тест a11y ужесточён: блокирует critical + serious (раньше — только critical), параметризован по 3 страницам (/, /intro/what-is-getolt/, /changelog). Все зелёные.
  • OG-image: 1×1 placeholder PNG → реальная карточка 1200×630 через scripts/gen-og.mjs (Sharp + SVG, без ImageMagick).

Документация

  • docs/lighthouse-targets.md переписан: вместо «известных contrast-проблем» — таблица «было/стало».
  • docs/learnings.md — раздел про contrast обновлён (отмечено «РЕШЕНО»), добавлен раздел про OG-image и про workflow Playwright-скриншотов авторизованных сервисов.
  • docs/visual-language.md — палитра пересобрана с явными контрастами и контраст-правилами.
  • Новые файлы: docs/olt-service-redesign-brief.md (ТЗ на правки дизайна основного сервиса OLT), docs/todo.md (хвосты после редизайна, Lighthouse-прогон, mobile-проверка).
v0.1.1

Чистка публичного контента

Что изменилось

  • Убраны конкретные имена LLM-движков (Ollama, OpenAI, ChatGPT) из лендинга, FAQ, документации и Hero. На сайте — только обобщённое «LLM», «AI-ассистент». Параметры подключения движка согласуются индивидуально при внедрении.
  • Удалены устаревшие границы по числу абонентов (1 000 – 30 000, до 50 OLT и 30 000 ONU). На лендинге — «для FTTH-операторов любого размера»; в FAQ — «реальные инсталляции обслуживают 100 000+ абонентов».
  • Скрыты конкретные API-лимиты в документации (200 OLT и 50 совпадений за запрос → «лимиты задаются в конфигурации»).
  • Расширено решение в первой паре «боль → решение»: подсветка REST-интеграции в биллинг и поиска ONU по телефону, когда подгружены биллинговые данные.

Документация для разработчиков

  • Добавлен docs/learnings.md — версионная матрица Astro 4 ↔ интеграции, Starlight gotchas, контентные правила.
  • Расширен docs/content-strategy.md разделом «Запрещённое в публичном контенте».
v0.1.0

Публикация лендинга и документации

Что добавилось

  • Публичный лендинг с описанием продукта, поддерживаемого железа, цен и FAQ
  • Документация по разделам: Введение, Установка, Настройка, Эксплуатация, Интеграции, Для разработчиков
  • Форма обратной связи

Что внутри продукта на этот момент

  • Поддержка GateRay, BdCom, CData EPON/GPON
  • REST API + MCP-сервер
  • LLM-чат поверх данных
  • Тепловая карта сигнала ONU