From 1521198cb19d08f3df4fef68d2c2d7ff02d62a89 Mon Sep 17 00:00:00 2001 From: pyr0ball Date: Tue, 5 May 2026 21:35:13 -0700 Subject: [PATCH] fix: code quality fixes from review (SSE abort, aria-live, shared types, type safety) - Add AbortController to SSE pull stream in OllamaModelPanel; abort on unmount - Fix SSE loop: break on success/error events, call fetchModels() after the loop - Add AbortController to fetchModels() and fetchProfile() one-shot fetches - Add onUnmounted cleanup to both panel components - Extract GpuEntry, ServiceInfo, NodeSummary to web/src/types/nodes.ts - Remove duplicate interface definitions from NodeCard, GpuRow, NodeManagementView - Fix aria-live regions: persistent container with v-if on inner span (avoids screen reader announcement miss on initial mount) - Tighten STATE_LABELS/STATE_ICONS to Record for exhaustiveness - Add explicit (await r.json()) as NodeSummary[] cast in fetchNodes() --- web/src/components/nodes/GpuRow.vue | 20 +-------- web/src/components/nodes/HfNodeModelPanel.vue | 25 +++++++---- web/src/components/nodes/NodeCard.vue | 29 +------------ web/src/components/nodes/OllamaModelPanel.vue | 42 +++++++++++++++---- web/src/components/nodes/ServiceBadge.vue | 4 +- web/src/types/nodes.ts | 27 ++++++++++++ web/src/views/NodeManagementView.vue | 42 ++++--------------- 7 files changed, 92 insertions(+), 97 deletions(-) create mode 100644 web/src/types/nodes.ts diff --git a/web/src/components/nodes/GpuRow.vue b/web/src/components/nodes/GpuRow.vue index 3de9cc5..e73d11a 100644 --- a/web/src/components/nodes/GpuRow.vue +++ b/web/src/components/nodes/GpuRow.vue @@ -1,25 +1,7 @@