# Changelog — AegisOne MAX Bot

## 1.7.0 (29.05.2026)
### Новые функции
- **Рефакторинг архитектуры:** плоская структура модулей (models.py, yandex_gpt.py, keyboards.py, email_sender.py, config_reader.py) вместо вложенных пакетов
- **VCF + User Model (Q2):**
  - BotUser расширен: patronymic, email, organization, address, vcf_raw, contact_hash, phone_verified, email_verified
  - VCF-парсер: FN, N, TEL, EMAIL, ORG, ADR — все поля сохраняются
  - Upsert пользователя при повторном контакте (greeting.py)
  - total_conversations инкремент, last_interaction обновление
  - handle_contact_share сохраняет все VCF-поля (handoff.py)
  - total_tickets инкремент в _finalize_ticket (inquiry.py)
- **NLP history context:** _get_user_history_context() — последние 10 сообщений + открытые заявки → YandexGPT
- **Broadcast с превью и таймером (Q1):** модалка подтверждения с таймером 10 секунд
- **CSS-переменные (Q3):** var(--white)→var(--bg-card), var(--text)→var(--text-primary)
- **bot_settings (Q4):** showNotification(), max_bot_id редактируемый
- **Webhook secret (Q5):** проброс X-Max-Bot-Api-Secret через прокси
- Маскировка sensitive API-ключей в /api/bot/settings
- dialog_cleared handler — сброс состояния диалога
- Миграции через _add_column_if_not_exists() — новые колонки BotUser
- Rate limit в broadcast: asyncio.sleep(0.5) после каждых 10
- Уточнение сообщения (contact.py) с учётом conv.intent
- Тесты: test_yandex_gpt.py, test_email_sender.py
