Release notes (2026-04-09) — Дневник самонаблюдений + test bot tooling
Источник: /Users/masaltsev/Documents/dev/crm/docs/RELEASE_NOTES_2026-04-09.md.
Summary
- Добавлен функционал «Дневник самонаблюдений» (модель, webhook, админка Filament, интеграция в MAX‑бот).
- Настроены инструменты разработки: test bot через long polling, симуляция webhook‑пейлоада, экспорт истории дневника.
Features
Diary (CRM + MAX)
- Webhook из Яндекс.Форм:
POST /api/diary/yandex-webhookс проверкой секрета (X-Yandex-Form-SecretилиX-Webhook-Token). - Хранение в БД: таблица
diary_entries, модельDiaryEntry, автоматическое выделение red-flag по ключевым словам, идемпотентность поyandex_form_id. - Админка (Filament):
DiaryEntryResourceдля просмотра записей.- На форме волонтёра и пары добавлены переключатели дневника и сводки (кол-во записей/флагов/последняя запись).
- MAX‑бот:
- предложение дневника после сохранения отчёта (если дневник включён);
- меню «📖 Мой дневник» + действия: показать последнюю запись и экспорт.
Export
- Экспорт истории дневника отправляется файлом
.txtчерез workflowPOST /uploads→ upload →POST /messagesсattachments. - Содержимое файла в формате Markdown, сгруппировано по подопечному, а внутри — по датам (старое → новое). Это задел для будущего PDF.
Dev tooling
php artisan bot:poll— long polling для test bot MAX (локальная разработка без webhook).php artisan diary:webhook:simulate— генерация тестового payload Яндекс.Форм для локальной отладки.- В локальной среде в дневнике бота добавлена кнопка «🧪 Симулировать webhook» (создаёт тестовую запись).
Config & migrations
New env vars
MAX_BOT_TOKEN_TEST— токен test bot для polling.DIARY_YANDEX_FORM_URL— базовый URL Яндекс.Формы (для кнопки «Открыть дневник»).DIARY_YANDEX_WEBHOOK_SECRET— секрет webhook Яндекс.Форм.DIARY_EXPORT_FORMAT— пока используетсяtxt.
DB changes
- Новая таблица:
diary_entries. - Новые поля в
volunteer_profiles:diary_enabled(defaultfalse)diary_is_student(defaultfalse)
Note: “Студент‑психолог” (future)
Поле «Студент‑психолог» (volunteer_profiles.diary_is_student) — это заготовка для будущих релизов.
Сейчас оно:
- хранится в БД и редактируется в CRM;
- не меняет пользовательский флоу (в MAX и в Яндекс.Форме).
Планируемое назначение — включать/отключать дополнительный вопрос дневника (профессиональная рефлексия) для студентов‑психологов, когда появится управляемая версия формы.
Commits included
d17d63cBot: add long polling command for test bot26b1938Max bot: fix binding and improve menus07ceb9bDiary: add webhook ingestion and persistencee919a3aFilament: add diary UI and resources5d3868bDiary: add export formatter and webhook payload simulator1e300e2Tests: cover diary webhook and max bot diary flow5542f4aDocs: add diary architecture and operations spec