diff --git a/frontend/src/App.vue b/frontend/src/App.vue index bd0b566..6c57c73 100644 --- a/frontend/src/App.vue +++ b/frontend/src/App.vue @@ -45,6 +45,12 @@ const pollingFallback = ref(false) // the socket never opens at all, and present it as a normal live state. const usePolling = computed(() => pollingFallback.value || socketFailures.value >= 3) +// Build versions shown in the footer. The client value is baked in at build +// time; the server value comes from /api/version. A mismatch means the browser +// is running a stale cached bundle. +const clientVersion = __BUILD_VERSION__ +const serverVersion = ref('') + let socket let pollTimer let statusTimer @@ -139,6 +145,7 @@ function handleMessage(message) { async function ensureFreshBuild() { try { const { version } = await api.getVersion() + serverVersion.value = version || '' if (!version || version === 'unknown') return if (version === __BUILD_VERSION__) return const key = `reloaded:${version}` @@ -255,5 +262,21 @@ onUnmounted(() => { + +