mirror of
https://github.com/siteboon/claudecodeui.git
synced 2026-06-26 13:35:49 +08:00
feat(version): warn when the server was updated but not restarted (#898)
When the package is updated on disk but the long-lived server process is not restarted, the new frontend bundle (served from disk) talks to the old running backend. New DB-backed features then fail silently — e.g. deleting/archiving a session appears to do nothing — because the new schema/routes only take effect on restart. Nothing currently detects this skew: useVersionCheck only compares the frontend's build-time version against the latest GitHub release. This exposes the running server's version (captured once at startup) via /health, compares it to the frontend's build-time version in useVersionCheck, and shows a "restart required" banner in the sidebar (and a small indicator in the collapsed sidebar) when they differ. - server: add `version` (RUNNING_VERSION, read once at startup) to /health - useVersionCheck: return `restartRequired` / `runningVersion` - SidebarFooter / SidebarCollapsed: surface a restart-required banner - i18n: add `version.restartRequired` to all 10 sidebar locales Verified with `tsc --noEmit` (client + server) and eslint. Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Co-authored-by: Simos Mikelatos <simosmik@gmail.com>
This commit is contained in:
@@ -115,7 +115,8 @@
|
||||
"restoreSessionError": "Fehler beim Wiederherstellen der Sitzung. Bitte erneut versuchen."
|
||||
},
|
||||
"version": {
|
||||
"updateAvailable": "Update verfügbar"
|
||||
"updateAvailable": "Update verfügbar",
|
||||
"restartRequired": "Update installiert – zum Anwenden Server neu starten"
|
||||
},
|
||||
"search": {
|
||||
"modeProjects": "Projekte",
|
||||
|
||||
@@ -115,7 +115,8 @@
|
||||
"restoreSessionError": "Error restoring session. Please try again."
|
||||
},
|
||||
"version": {
|
||||
"updateAvailable": "Update available"
|
||||
"updateAvailable": "Update available",
|
||||
"restartRequired": "Update installed — restart the server to apply"
|
||||
},
|
||||
"search": {
|
||||
"modeProjects": "Projects",
|
||||
|
||||
@@ -115,7 +115,8 @@
|
||||
"restoreSessionError": "Erreur lors de la restauration de la session. Veuillez réessayer."
|
||||
},
|
||||
"version": {
|
||||
"updateAvailable": "Mise à jour disponible"
|
||||
"updateAvailable": "Mise à jour disponible",
|
||||
"restartRequired": "Mise à jour installée — redémarrez le serveur pour l'appliquer"
|
||||
},
|
||||
"search": {
|
||||
"modeProjects": "Projets",
|
||||
|
||||
@@ -115,7 +115,8 @@
|
||||
"restoreSessionError": "Errore durante il ripristino della sessione. Riprova."
|
||||
},
|
||||
"version": {
|
||||
"updateAvailable": "Aggiornamento disponibile"
|
||||
"updateAvailable": "Aggiornamento disponibile",
|
||||
"restartRequired": "Aggiornamento installato — riavvia il server per applicarlo"
|
||||
},
|
||||
"search": {
|
||||
"modeProjects": "Progetti",
|
||||
|
||||
@@ -114,7 +114,8 @@
|
||||
"restoreSessionError": "セッションの復元でエラーが発生しました。もう一度お試しください。"
|
||||
},
|
||||
"version": {
|
||||
"updateAvailable": "アップデートあり"
|
||||
"updateAvailable": "アップデートあり",
|
||||
"restartRequired": "更新が適用されていません。サーバーを再起動してください"
|
||||
},
|
||||
"deleteConfirmation": {
|
||||
"deleteProject": "プロジェクトを除去",
|
||||
|
||||
@@ -114,7 +114,8 @@
|
||||
"restoreSessionError": "세션 복원 오류. 다시 시도해주세요."
|
||||
},
|
||||
"version": {
|
||||
"updateAvailable": "업데이트 가능"
|
||||
"updateAvailable": "업데이트 가능",
|
||||
"restartRequired": "업데이트가 설치됨 — 적용하려면 서버를 재시작하세요"
|
||||
},
|
||||
"deleteConfirmation": {
|
||||
"deleteProject": "프로젝트 제거",
|
||||
|
||||
@@ -115,7 +115,8 @@
|
||||
"restoreSessionError": "Ошибка при восстановлении сеанса. Попробуйте снова."
|
||||
},
|
||||
"version": {
|
||||
"updateAvailable": "Доступно обновление"
|
||||
"updateAvailable": "Доступно обновление",
|
||||
"restartRequired": "Обновление установлено — перезапустите сервер для применения"
|
||||
},
|
||||
"search": {
|
||||
"modeProjects": "Проекты",
|
||||
|
||||
@@ -115,7 +115,8 @@
|
||||
"restoreSessionError": "Oturum geri yüklenirken hata oluştu. Lütfen tekrar dene."
|
||||
},
|
||||
"version": {
|
||||
"updateAvailable": "Güncelleme mevcut"
|
||||
"updateAvailable": "Güncelleme mevcut",
|
||||
"restartRequired": "Güncelleme yüklendi — uygulamak için sunucuyu yeniden başlatın"
|
||||
},
|
||||
"search": {
|
||||
"modeProjects": "Projeler",
|
||||
|
||||
@@ -115,7 +115,8 @@
|
||||
"restoreSessionError": "恢复会话时出错,请重试。"
|
||||
},
|
||||
"version": {
|
||||
"updateAvailable": "有可用更新"
|
||||
"updateAvailable": "有可用更新",
|
||||
"restartRequired": "已安装更新 — 请重启服务器以生效"
|
||||
},
|
||||
"search": {
|
||||
"modeProjects": "项目",
|
||||
|
||||
@@ -114,7 +114,8 @@
|
||||
"restoreSessionError": "還原工作階段時出錯,請重試。"
|
||||
},
|
||||
"version": {
|
||||
"updateAvailable": "有可用更新"
|
||||
"updateAvailable": "有可用更新",
|
||||
"restartRequired": "已安裝更新 — 請重新啟動伺服器以套用"
|
||||
},
|
||||
"search": {
|
||||
"modeProjects": "專案",
|
||||
|
||||
Reference in New Issue
Block a user