From 1abe308742cde32a6ac90b9ca0b18b7d629b6890 Mon Sep 17 00:00:00 2001 From: ekko <152005280+EKKOLearnAI@users.noreply.github.com> Date: Thu, 23 Apr 2026 12:57:42 +0800 Subject: [PATCH] feat: add Node.js version warning, fix provider URL detection, and add v0.4.4 changelog (#146) - Display persistent warning bar when Node.js version < 23 - Fix provider model fetching to support non-v1 API versions (e.g. /v4) - Add v0.4.4 changelog entries to frontend - Bump version to 0.4.4 Co-authored-by: Claude Opus 4.6 --- package.json | 2 +- packages/client/src/App.vue | 27 +++++++++++++++++++ packages/client/src/api/hermes/system.ts | 1 + .../hermes/models/ProviderFormModal.vue | 2 +- packages/client/src/data/changelog.ts | 5 ++++ packages/client/src/i18n/locales/de.ts | 6 +++++ packages/client/src/i18n/locales/en.ts | 5 ++++ packages/client/src/i18n/locales/es.ts | 6 +++++ packages/client/src/i18n/locales/fr.ts | 6 +++++ packages/client/src/i18n/locales/ja.ts | 6 +++++ packages/client/src/i18n/locales/ko.ts | 6 +++++ packages/client/src/i18n/locales/pt.ts | 6 +++++ packages/client/src/i18n/locales/zh.ts | 6 +++++ packages/client/src/stores/hermes/app.ts | 3 +++ packages/server/src/controllers/health.ts | 1 + .../server/src/services/config-helpers.ts | 2 +- 16 files changed, 87 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index f91b596..234144b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "hermes-web-ui", - "version": "0.4.3", + "version": "0.4.4", "description": "Self-hosted AI chat dashboard for Hermes Agent — multi-model (Claude, GPT, Gemini, DeepSeek) web UI with Telegram, Discord, Slack, WhatsApp integration", "repository": { "type": "git", diff --git a/packages/client/src/App.vue b/packages/client/src/App.vue index f5d58f0..5dab6e0 100644 --- a/packages/client/src/App.vue +++ b/packages/client/src/App.vue @@ -2,6 +2,7 @@ import { onMounted, onUnmounted, computed, ref, watch } from 'vue' import { useRoute, useRouter } from 'vue-router' import { darkTheme, NConfigProvider, NMessageProvider, NDialogProvider, NNotificationProvider } from 'naive-ui' +import { useI18n } from 'vue-i18n' import { getThemeOverrides } from '@/styles/theme' import { useTheme } from '@/composables/useTheme' import AppSidebar from '@/components/layout/AppSidebar.vue' @@ -10,6 +11,7 @@ import { useAppStore } from '@/stores/hermes/app' import SessionSearchModal from '@/components/hermes/chat/SessionSearchModal.vue' const { isDark } = useTheme() +const { t } = useI18n() const appStore = useAppStore() const route = useRoute() const router = useRouter() @@ -20,6 +22,12 @@ const naiveTheme = computed(() => isDark.value ? darkTheme : null) const isLoginPage = computed(() => route.name === 'login') +const nodeVersionLow = computed(() => { + const v = appStore.nodeVersion + const major = parseInt(v.split('.')[0], 10) + return !isNaN(major) && major < 23 +}) + // Close mobile sidebar on route change watch(() => route.path, () => { appStore.closeSidebar() @@ -49,6 +57,9 @@ useKeyboard() +
+ {{ t('sidebar.nodeVersionWarning', { version: appStore.nodeVersion }) }} +