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 }) }} +