v0.25.0
minor от 01.08.2026
Карточки клиентов для бота bober-bob-client
Страница «Карточки клиентов»
- Список клиентов — загрузка с живого n8n-telegram (api/clients_list.php: support-clients.md + clients/*.md + chat_history/*.md), кеш 60 сек, refresh=0 байпас кеша
- Детали карточки — имя, telegram_id, бот, персональный контекст (markdown) и история чата (последние ходы)
- Селектор ботов — переключение между ботами n8n-telegram (по умолчанию bober-bot-client)
- Создание/редактирование — модал с полями (имя, telegram_id, контекст); создание через action.php create_client_card + kb_save, правка через import_contact/kb_save
- Удаление — delete_contact с подтверждением; тосты об успехе/ошибке
API n8n-telegram
- api/clients_list.php — POST с secret + target_bot_id; парсит support-clients.md, clients/*.md, chat_history/*.md; отдаёт {ok, target_bot_id, count, clients[]}
- admin/action.php — AJAX-ответы JSON при ajax=1 или X-Requested-With: XMLHttpRequest для delete_contact, kb_save, create_client_card, import_contact (hub_ajax_reply)
- Права — ai-kb/bots/bober-bot-client на живом: www-data:www-data (755, файлы 644); 11 эталонных файлов синхронизированы с локалью
Backend bober-bob
- N8N_TELEGRAM_ADMIN_TOKEN — добавлен в .env/.env.example, ключ config/services.php admin_token
- N8nTelegramService — getClients (кеш 60 сек, refresh=0 байпас), saveClientCard, deleteClientCard, createClientCard, saveClientFile, приватный postAdminAction (form POST на action.php?token=..., заголовок X-Requested-With)
- ClientCardsController — index/save/delete/create; маршруты GET /admin/client-cards/data, POST /admin/client-cards/save|delete|create
- Filament-страница — ClientCards (slug client-cards, группа «Чаты», navigationSort=13) + blade-шаблон
Технически
- config/app.php — версия 0.24.6 → 0.25.0
- routes/web.php — /about: блок 0.25.0
- Тесты — ClientCardsTask75Test: рендер страницы, auth, index-клиенты, кеш/refresh, unknown bot 404, API error surface, save/delete/create, валидация, отсутствие утечки секретов (12 тестов, 35 ассертов)
- Проверка — полный php artisan test зелёный (кроме предсуществующего ExampleTest 302); live-проверки api/clients_list.php (count=2) и action.php (kb_save → {"ok":true}) на живом n8n-telegram.ipd.by
← Ко всем версиям