You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
🔌 In-panel plugin manager — установка платных плагинов через UI.
🤖 Smart Support плагин (платный) — UI установлен в платформу: SearchPage, ReportPage, SettingsPage, AuditPage. AI-анализ через OpenAI/OpenRouter/Gemini, журнал действий, быстрые действия в отчёте, карточка гипотез, scheduled_tasks lifecycle.
🛠 Plugin-loader инфраструктура — мульти-папка alembic, реестр плагинов на фронте.
🎨 UX-аудит (3 пакета) — EmptyState компонент, глобальный prefers-reduced-motion, ConfirmDialog для bulk-delete юзеров и access policies, фильтр внутри категории Settings, destructive-separator в DropdownMenu, новый пункт «Открыть в новой вкладке».
🖱 Middle-click на юзера в таблицах открывает в новой вкладке (нативно через <a href>).
⚡ UX и доступность
49 aria-label на иконочных кнопках в 17 файлах (Violations, Users, UserDetail, Hosts, Nodes, Squads, Admins, Settings, Notifications, Blocking, Backup, Header, Sidebar и др.) — screen reader'ы наконец-то понимают что делают эти кнопки.
Tabular-nums на ~20 числовых столбцах (Dashboard карточки, Analytics таблицы, Violations score, Users HWID/expire, Bedolaga рубли, Billing chart) — числа не прыгают при обновлении.
RefreshCw спиннер при isFetching на Dashboard / Violations / Settings.
Mobile pack: touch-targets 44pt в Header, pagination h-10/h-11 на мобиле, safe-area для iPhone notch и home-indicator (Header/Sidebar/sticky-toolbar), фикс iOS auto-zoom (input min 16px), touch press feedback через @media (hover: none), Sheet width 88% на 320px, breadcrumbs truncate, Recharts tooltip 13px.
Analytics таблицы — обёрнуты в overflow-x-auto две пропущенные точки (geo expanded users, sharedHwids users).
✅ Исправления
Кнопка «✅ Пропустить» → «🚫 Аннулировать» в нотификациях о нарушениях — теперь надпись соответствует поведению (callback vact:dismiss уже аннулирует в БД). Покрыто всё: бот, общий violation_notifier и traffic_rate_monitor.
Public API v3 возвращал 500 на /users, /nodes, /hosts, /stats — починены три бага сразу: UUID-объект → str через model_validator, Decimal → bigint в /stats, неверный фильтр WHERE online = true (нет такой колонки) заменён на JSONB-проверку raw_data->'userTraffic'->>'onlineAt.
Сбросы трафика по lastTrafficResetAt — cleanup детекции после #247.
Миграции бота — multi-head aware (когда плагины добавляют свои revision-ветки).
Smart-support — показ raw_user_agent, если ua_parser не распознал клиент.