fix: WebSocket race conditions, Vue error handler, remove sudo podman, add container health checks

- F1: Guard connectWebSocket against concurrent calls with isWsConnecting flag
- F2: Serialize mesh send operations with sendQueue to prevent fetchMessages races
- F3: Add global Vue error handler with toast notification
- S1: Replace sudo podman with podman across all scripts (rootless Podman)
- S2: Add health-cmd to all 40 container run commands in first-boot-containers.sh

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Dorian
2026-03-21 01:11:05 +00:00
parent c299199d37
commit 38dc845f57
10 changed files with 301 additions and 110 deletions

View File

@@ -4,6 +4,7 @@ import './style.css'
import App from './App.vue'
import router from './router'
import i18n from './i18n'
import { useToast } from '@/composables/useToast'
const app = createApp(App)
const pinia = createPinia()
@@ -12,4 +13,10 @@ app.use(pinia)
app.use(router)
app.use(i18n)
app.config.errorHandler = (err, _instance, info) => {
console.error('[Vue Error]', err, info)
const { error } = useToast()
error('Something went wrong. Please refresh the page.')
}
app.mount('#app')