v1.8.2: AGENTS.md, consent revocation, delete bot users, dialogues fix, intent improvements, CI for max_bot
This commit is contained in:
@@ -1,5 +1,47 @@
|
||||
# Changelog — AegisOne MAX Bot
|
||||
|
||||
## 1.8.2 (02.06.2026)
|
||||
### Новые функции
|
||||
- **AGENTS.md:** правила проекта для AI-агентов
|
||||
- **Отзыв согласия:** handle_revoke_consent(), паттерн «отозвать согласие» в handle_message
|
||||
- **Удаление бот-пользователей:** DELETE /api/bot/users/{user_id} (каскад: user + conversations + messages + logs)
|
||||
- **consent_revoked_date:** поле в BotUser для фиксации даты отзыва согласия
|
||||
### Исправления
|
||||
- **Диалоги:** одна переписка = одна карточка (убрано создание new conv при completed/escalated)
|
||||
- **Analyze intent:** агрессивное определение ticket по ключевым словам услуг, улучшен промпт
|
||||
- **Clarify intent:** ограничение 1 раз за диалог (prev_intent == unknown), маркерные слова пропускают уточнение
|
||||
- **History context:** фильтр по времени (10 мин) вместо лимита 10 сообщений
|
||||
- **Быстрые правила:** ticket-паттерны и приветствие до NLP
|
||||
- **Send message:** параметр conversation_id + сохранение исходящих сообщений в BotMessage
|
||||
|
||||
## 1.8.1 (01.06.2026)
|
||||
### Новые функции
|
||||
- **YandexGPT-only NLP:** удалены Groq/Gemini, YandexGPT единственный провайдер
|
||||
- **Unknown questions:** BotUnknownQuestion, автогенерация KB-карточки при 3+ уникальных пользователях, UI
|
||||
- **Callback dedup:** processed_callbacks set в main.py — пропуск дублей callback_id, очистка при 1000
|
||||
- **Consent flow:** split-based word matching (_matches_any), refuse words до quick_intent, operator handler
|
||||
- **DELETE conversations:** каскадное удаление (BotMessage + BotProcessingLog + BotConversation)
|
||||
- **UTC+3:** moscow_now() в greeting.py и inquiry.py
|
||||
- **Bot tickets:** contact_name, contact_phone, contact_email в BotTicket
|
||||
- **Payload parsing:** message_created из body.message.body.text, message_callback из body.callback.payload + recipient.user_id
|
||||
### Исправления
|
||||
- **Plain text phones:** MAX Platform не рендерит markdown-ссылки — 📞 +7 (xxx) xxx-xx-xx
|
||||
- **Webhook secret:** _verify_secret() возвращает True если заголовок пуст (optional)
|
||||
- **Nginx:** добавлен /webhook proxy на HTTP порт 80
|
||||
|
||||
## 1.8.0 (01.06.2026)
|
||||
### Новые функции
|
||||
- **Consent keyboard:** consent_keyboard(), contact_keyboard(), return_to_consent_keyboard()
|
||||
- **Escape hatch:** locked states проверяют analyze_intent — «question» → analyze_and_respond
|
||||
- **Completed state:** completed/escalated → анализируем и создаём новый диалог
|
||||
- **handle_greeting fix:** убран analyze_and_respond после приветствия, state=awaiting_input
|
||||
- **Auto-detect sidebar:** parse_sidebar_menu() определяет пункты меню через API
|
||||
### Исправления
|
||||
- **handle_message:** refuse слова проверяются ДО analyze_intent в состояниях consent
|
||||
- **operator_words:** «оператор» → contacts вместо analyze_intent
|
||||
- **handle_manual_contact:** refuse words → consent_refused
|
||||
- **clarify_intent:** temperature 0.1, пост-обработка удаление приветствий, anti-AI-signs
|
||||
|
||||
## 1.7.1 (29.05.2026)
|
||||
### Новые функции
|
||||
- **Тестовый прогон:** мок MAX API для test user_id (>=999999000) — сообщения не уходят в MAX
|
||||
|
||||
Reference in New Issue
Block a user