Skip to the content.

Task 92 — Mesh profiles & backend health

Phase: 7 Initiative: 48 Status: done Owner: — Slug: web-mesh-profiles-health

Goal

MeshProfileController (task_070) отдаёт GET /api/mesh/profiles, GET /api/mesh/profiles/{name}, GET /api/mesh/profiles/{name}/backends, GET /api/mesh/backend-status, GET /api/mesh/backend-status/{backend}. Web использует только mesh-метрики из MeshController; profile-management и live backend-health в UI не выведены. Нужна панель, которая показывает активный профиль, состояние каждого бэкенда (Healthy/Degraded/Unavailable) и degradation-policy.

Acceptance criteria

Sub-tasks

Implementation notes

Round 1 (this tick) — completed

Mesh Profile & Backend Health панель для src/pages/memmesh.astro (Phase 7 task_092).

API (src/lib/api.ts) — добавлены 5 методов и 6 DTO:

Расхождение DTO со spec’ом: Спека перечисляла BackendStatusDto с полями (kind, enabled, isHealthy, healthState, lastCheckedAt, latencyMs, lastError). Реальный wire-формат контроллера (MeshProfileController.BackendHealthDto) использует (role, kind, state, lastCheckedAt, consecutiveFailures, lastError). latencyMs — это метрика peer-агента, не backend’а, и в backend-эндпоинте для бэкендов её нет; enabled живёт на MeshProfileBackendDto (конфиг), а не на health-эндпоинте. DTO в api.ts зеркалит реальный wire-format, чтобы избежать полей-призраков; в комментариях отмечено расхождение.

Компонент (src/components/MeshProfilePanel.astro) — новый:

Интеграция (src/pages/memmesh.astro):

README (src/hercules-web/README.md):

Round 1 — validation

Notes