fix: OpenSearch status field mismatch, adopt RouteFlow flows prop
All checks were successful
CI / build (push) Successful in 56s
CI / cleanup-branch (push) Has been skipped
CI / docker (push) Successful in 1m43s
CI / deploy (push) Successful in 38s
CI / deploy-feature (push) Has been skipped

Fix admin OpenSearch page always showing "Disconnected" by aligning
frontend field names (reachable/nodeCount/host) with backend DTO.

Update design system to v0.1.10 and adopt the new multi-flow RouteFlow
API — error-handler nodes now render as labeled segments with error
variant instead of relying on legacy auto-separation.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
hsiegeln
2026-03-25 18:34:58 +01:00
parent 2bbca8ae38
commit 20ee448f4e
8 changed files with 74 additions and 43 deletions

View File

@@ -12,7 +12,7 @@ import {
Badge,
useGlobalFilters,
} from '@cameleer/design-system'
import type { Column, KpiItem, RouteNode } from '@cameleer/design-system'
import type { Column, KpiItem } from '@cameleer/design-system'
import {
useSearchExecutions,
useExecutionStats,
@@ -21,7 +21,7 @@ import {
} from '../../api/queries/executions'
import { useDiagramLayout } from '../../api/queries/diagrams'
import type { ExecutionSummary } from '../../api/types'
import { mapDiagramToRouteNodes } from '../../utils/diagram-mapping'
import { mapDiagramToRouteNodes, toFlowSegments } from '../../utils/diagram-mapping'
import styles from './Dashboard.module.css'
// Row type extends ExecutionSummary with an `id` field for DataTable
@@ -355,9 +355,9 @@ export default function Dashboard() {
: (detail.children ?? [])
: []
const routeNodes: RouteNode[] = useMemo(() => {
const routeFlows = useMemo(() => {
if (diagram?.nodes) {
return mapDiagramToRouteNodes(diagram.nodes || [], procList)
return toFlowSegments(mapDiagramToRouteNodes(diagram.nodes || [], procList)).flows
}
return []
}, [diagram, procList])
@@ -475,8 +475,8 @@ export default function Dashboard() {
<div className={styles.panelSection}>
<div className={styles.panelSectionTitle}>Route Flow</div>
{routeNodes.length > 0 ? (
<RouteFlow nodes={routeNodes} />
{routeFlows.length > 0 ? (
<RouteFlow flows={routeFlows} />
) : (
<div style={{ color: 'var(--text-muted)', fontSize: 12 }}>No diagram available</div>
)}