1. Phase 53 — Eval Admin API (proxy admin-backend → agent)
— AdminEvalController с 16 endpoints 1:1 проксирует /api/admin/eval/* на agent: cases CRUD (list/create/get/update/publish/archive/history/bulk-import), runs (list/create/get/cancel/results/diff), stats, fsnb/validate, fsnb/search-autocomplete
— SSE pass-through для /runs/{id}/stream через SseEmitter (30-мин таймаут, virtual-thread executor)
— AgentEvalClient: admin JWT на admin-side, X-Service-Token + X-Admin-User-Id на agent-side, fallback на AGENT_INTERNAL_BASE_URL, 503 если токен не сконфигурирован
— Файлы: AdminEvalController.java (234 строк), AgentEvalClient.java (142 строк), версия v2.3.30
2. Phase 53 — Eval Admin UI каркас (Vue 3)
— 5 экранов под /admin/eval/* через proxy admin-backend: EvalDashboardView (карточки stats), CasesListView (таблица с фильтрами status/difficulty/q + пагинация 50), CaseEditorView (2-колоночный редактор vor_text+context+metadata vs эталон items с FSNB code validation, auto-save через 3-сек debounce), RunsListView (modal «новый прогон»), RunDetailView (SSE-прогрессбар через fetch+ReadableStream)
— evalApi в src/api/index.js с 17 методами, streamRun возвращает async iterator (EventSource не поддерживает JWT)
— Без Pinia, локальный reactive() state, версия v2.3.45 (843 добавленных строк UI-кода)
3. Phase 53 — баг-фиксы Eval UI
— v2.3.46: правка shape stats под реальный ответ агента (total_cases/by_status/by_difficulty/by_category/target вместо несуществующих stats.cases.total)
— v2.3.47: validateFsnb теперь читает r.exists, payload POST /cases с дефолтами difficulty=’medium’ и source=’expert_designed’ (agent отвергал null с 422)
— v2.3.50: дефолт фильтра статуса «любой» вместо draft-only, превью ВОР читает vor_text_preview из listCases
— v2.3.51: отмена отложенного auto-save при уходе со страницы (onBeforeUnmount + clearTimeout), решение create/update по form.value.id вместо isNew, пропуск auto-save при loading=true
4. Phase 56.A — таксономия осей характеристик ФСНБ (user-backend + admin-backend + admin-frontend)
— KoefCharacteristicMeta расширен полями applicable_to_fsnb (bool), fsnb_sbornik_codes (jsonb), value_synonyms (jsonb