aleksey
f4d89a262c
CI / test (push) Successful in 7m53s
CI / deploy-ift (push) Successful in 2m41s
CI / e2e-ift (push) Successful in 1m20s
CI / deploy-stage (push) Successful in 2m16s
CI / e2e-stage (push) Successful in 1m13s
feat(ai): пилотные метрики ИИ-подсказок — POST /v1/ai/hint-metrics + админ-сводка
Канон PRODUCT-AI (Spec#22): пилотные метрики L1-подсказок для расчёта
голосового гейта L2 (>=20% активных пользователей с >=2 подтверждённых
ghost-бронирований в месяц). Локальные счётчики в Mnesia, без LLM.
- таблица ai_hint_metric (миграция 20260820180000): счётчики
{user, день UTC, pattern, kind}; ленивый prune при >500 строк на
пользователя, retention 92 дня
- POST /v1/ai/hint-metrics (Bearer): батч <=20 событий shown/confirm/dismiss,
202 {accepted:N}; ETS rate limit 30 req/min на пользователя
- GET /v1/admin/ai-metrics/stats (админ-порт): by_kind, active_users_30d,
users_with_confirms_ge2_30d, gate_ratio_30d, top_patterns_by_confirm
- eunit logic_ai_metrics_tests (5/5); синхронизация списка миграций
в migration_engine_tests
Refs EventHub/EventHubBack#78
2026-08-20 18:35:29 +03:00
..
2026-07-17 15:16:46 +03:00
2026-07-17 15:16:46 +03:00
2026-07-17 15:16:46 +03:00
2026-07-17 18:09:31 +03:00
2026-07-17 15:16:46 +03:00
2026-07-17 15:16:46 +03:00
2026-07-17 15:16:46 +03:00
2026-07-17 15:16:46 +03:00
2026-07-17 15:16:46 +03:00
2026-07-17 15:16:46 +03:00
2026-07-17 15:16:46 +03:00
2026-07-17 21:48:24 +03:00
2026-07-17 15:16:46 +03:00
2026-07-17 15:16:46 +03:00
2026-07-17 15:16:46 +03:00
2026-07-17 15:16:46 +03:00
2026-08-16 18:30:05 +03:00
2026-07-17 15:16:46 +03:00
2026-07-17 15:16:46 +03:00
2026-07-17 15:16:46 +03:00
2026-07-17 15:16:46 +03:00
2026-07-17 15:16:46 +03:00
2026-07-17 15:16:46 +03:00
2026-07-17 15:16:46 +03:00
2026-07-17 15:16:46 +03:00
2026-07-17 15:16:46 +03:00
2026-07-17 15:16:46 +03:00
2026-07-17 15:16:46 +03:00
2026-07-17 15:16:46 +03:00
2026-07-17 15:16:46 +03:00
2026-07-17 15:16:46 +03:00
2026-07-24 20:12:53 +03:00
2026-07-17 15:16:46 +03:00
2026-07-17 15:16:46 +03:00
2026-07-17 15:16:46 +03:00
2026-07-17 15:16:46 +03:00
2026-04-22 23:15:20 +03:00
2026-07-07 19:33:24 +03:00
2026-08-15 23:48:12 +03:00
2026-08-16 10:04:16 +03:00
2026-07-17 15:16:46 +03:00
2026-07-17 23:10:00 +03:00
2026-07-17 15:16:46 +03:00
2026-08-16 18:30:05 +03:00
2026-07-17 18:09:31 +03:00
2026-04-28 12:42:10 +03:00
2026-07-17 15:16:46 +03:00
2026-07-20 22:10:48 +03:00
2026-04-22 23:15:20 +03:00
2026-07-17 15:16:46 +03:00
2026-07-17 15:16:46 +03:00
2026-07-17 15:16:46 +03:00
2026-07-20 00:39:30 +03:00
2026-07-21 20:18:49 +03:00
2026-04-28 12:42:10 +03:00
2026-08-04 10:46:32 +03:00
2026-08-20 18:35:29 +03:00
2026-08-01 12:18:36 +03:00
2026-07-17 00:44:09 +03:00
2026-08-16 18:30:05 +03:00
2026-07-10 19:29:17 +03:00
2026-08-20 18:35:29 +03:00
2026-08-16 18:30:05 +03:00
2026-04-28 12:42:10 +03:00
2026-07-17 18:09:31 +03:00
2026-08-15 23:48:12 +03:00
2026-08-15 23:20:11 +03:00
2026-08-15 23:48:12 +03:00
2026-08-15 00:32:33 +03:00
2026-08-15 23:48:12 +03:00
2026-08-17 16:25:51 +03:00
2026-08-18 23:30:15 +03:00
2026-07-17 18:09:31 +03:00
2026-08-17 14:59:30 +03:00
2026-08-15 20:19:44 +03:00
2026-07-17 15:16:46 +03:00
2026-08-15 23:48:12 +03:00
2026-07-24 20:12:53 +03:00
2026-08-01 18:17:23 +03:00
2026-07-20 21:08:12 +03:00
2026-08-19 22:01:07 +03:00
2026-07-22 18:52:35 +03:00
2026-07-27 21:17:15 +03:00
2026-07-17 00:44:09 +03:00
2026-08-14 21:27:34 +03:00
2026-08-04 10:46:32 +03:00
2026-08-15 21:50:08 +03:00
2026-08-20 18:35:29 +03:00
2026-07-17 23:10:00 +03:00
2026-07-22 16:12:52 +03:00
2026-07-17 15:16:46 +03:00