Окна «Создать пользователя» и «Создать OIDC-клиент» по доске с проверкой полей; баннер безопасности
всегда виден; кнопки действий без иконок; подписи иконок приложений как на доске; поиск в таблице passkeys.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Полоса показателей — один Frame с линиями и плашками, колонки по порогам контейнера; баннер в одну строку
с «Объяснить»; бренд «Единый вход · SSO», заголовки групп капсом; пороги монитора в шапке как на доске.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Таблицы по анатомии доски: «Таблица/Карточки», поиск, «Колонки», виды линией со счётчиками, панель
массовых действий, переключатель и меню «⋮» в строке. Вкладки страниц — линия с мелким счётчиком.
Строки настроек (пароль, ротация журнала, меню), «Объяснить» в баннерах с панелью разбора,
палитра с ассистентом и OIDC-клиентами, сворачиваемые группы меню, плашка «Обновлено · Live»,
данные досок «Изменения» и «Доступ по приложениям», права доступа вкладками.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Плитки приложений и лента событий собраны по разметке доски: Frame с шапкой, сетка auto-fit
от 260px, иконка, плашка, описание и адрес; лента — время, точка с линией, плашка и подпись.
На «Приложениях» возвращена полоса KPI, «Весь журнал» открывает таблицу.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
QuickActionGrid получил autoFit: Frame с отступами и сетка auto-fit от 17rem, плитки больше не
вылетают за границы. Центр состояния в шапке, меню пользователя (тема, плотность, контраст),
точки проблем в меню, размытая шапка, высокий контраст и видимый фокус приведены к макету v2.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Права, сброс passkeys, отключение и удаление уже есть в панели прав и меню строки,
сессии и события — в «Входах» и «Изменениях». Страница откроется из коммита 007ece4.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Права, вход и passkeys, сессии, активность и опасная зона. Каталог пользователей вынесен в общее
состояние макета, поэтому правки видны и в списке, и в профиле. Переходы: меню строки «Профиль»,
«Открыть профиль» в панели прав, хлебные крошки в шапке.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Слева приложения с переключателем и счётчиком выданных разделов, справа разделы с уровнем
«Нет / Чтение / Запись / Админ». «Сохранить права» активна только при изменении,
закрытие с правками спрашивает подтверждение.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Строки с накопленными правками подсвечиваются и получают плашку (getRowStatus из DataGrid v9),
удаление применяется при «Сохранить», в каталоге пользователей добавлено «Удалить…» в панели
массовых действий.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
PreviewSectionGrid получил onReorder: ручка DataGridTableDndRowHandle и DataGridTableDndRows
из ReUI. Порядок меняется перетаскиванием, меню строки осталось запасным путём.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Установщик ReUI обновил skill для Claude/Codex/Cursor/OpenCode, правила в AGENTS.md
и MCP-конфиги (ключ только ссылкой на REUI_LICENSE_KEY). План и решения — docs/reui-upgrade.md.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Порядок с номером и ручкой, плитки иконок, переключатель «В меню» в строке, меню строки
(в начало, выше, ниже, в конец), сброс порядка, вкладка «Меню» в стиле settings-10 с
предпросмотром, форма приложения с выбором иконки и режима входа.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Убрана строка «Получено… GET /api/…» из шапок страниц (свежесть в кнопке i), дублирующий
баннер на «Пользователях», KPI на «Приложениях». Контент ограничен шириной 1480px.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Шрифты Geist и Geist Mono (только пока смонтирован макет), плашки статуса с глифом
и точкой в первой колонке, счётчики в видах таблиц с запоминанием вида,
закреплённые пункты меню, автосворачивание меню до 1100px, индикатор свежести
в шапке, вызов палитры кнопкой только на узких экранах, главная кнопка в Sheet
и предупреждение «Закрыть без сохранения».
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Плитки собираются хелпером kpi(): иконка по тону, значение с пояснением, бейдж статуса.
Для четырёх плиток сетка переходит на 2 колонки раньше (kpi-cols).
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Добавлена ветка маршрутов /design-preview без авторизации и без запросов к API:
вход (вне оболочки), приложения, безопасность (passkeys), пользователи
(права доступа по приложениям и разделам, создание, массовые действия,
удаление вводом email, сброс passkeys), входы (история и сессии),
изменения (лента Timeline, таблица, ротация журнала), OIDC-клиенты
(issuer, создание, секрет один раз), ссылки приложений.
Оболочка: сайдбар с группами «Портал» и «Админ», переключатель на 8
приложений, свёрнутый вид с точками проблем, шапка с крошками и
монитором, меню пользователя с темой/плотностью/контрастом, палитра ⌘K,
панель «Не сохранено» с diff. Данные — суррогатные, названия из
@authportal/shared. В audit-log-timeline добавлены min-w-0, чтобы лента
не вызывала горизонтальный скролл на узких экранах.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
checkout для push-событий был fetch-depth: 2, но github.event.before
при пуше пачки коммитов лежит глубже HEAD~1 — git diff падал с
'bad object'. Теперь fetch-depth: 0 + fallback на полный пайплайн,
если before-SHA недоступен (переписанная история).
- .turbo в actions/cache (пересборки shared/db переиспользуются между прогонами)
- typecheck в web/api джобах, lint бэкенда в api-джобе
- убран пустой turbo test --filter=web (в web нет тестов)
- timeout-minutes на все джобы
- Dockerfile: USER node + --chown; прекомпрессия статики gzip+brotli на этапе
сборки (Traefik не сжимает); compose: chown 1000:1000 data в инструкции
- pnpm catalog: один typescript 6.0.3 и vitest 4.1.10 на весь монорепо
- задача turbo typecheck; tsc вынесен из build web (блокировал vite build)
- eslint-конфиги для api/db/shared (бэкенд не линтился)
- turbo test больше не зависит от ^build (тесты идут по исходникам)
- react-day-picker перенесён из web в ui (потребитель calendar.tsx)
- из web удалены неиспользуемые motion/@dnd-kit×4/react-virtual/date-fns