0.8.1: Fix Auto-Cloud-Switch beim Update von 0.7 auf 0.8

Beim Upgrade von 0.7 auf 0.8 wurden Lokal-Installationen ungewollt in den
Cloud-Modus geschoben, weil das Production-Build VITE_SUPABASE_URL enthielt
und adapter.js dies als Default-Cloud-URL gesetzt hat — auch wenn bereits
lokale Daten in localStorage vorhanden waren.

Fix in adapter.js: Auto-Cloud-Switch nur noch wenn
  - kein rapport_backend_chosen gesetzt
  - UND keine lokalen Daten (studio_data_v1) vorhanden
  - UND nicht in Tauri (Desktop-User wählen immer aktiv)

Damit klaut der Web-Deploy weiter automatisch Cloud-Konfig (kein BackendChoice
für Browser-User mit Server-URL), aber Tauri-Updates und Browser-User mit
bestehenden Lokal-Daten bleiben unangetastet.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
2026-05-23 19:31:42 +02:00
parent 0257f98524
commit 40a28d5ff5
6 changed files with 27 additions and 15 deletions
+10 -3
View File
@@ -50,11 +50,18 @@ function createAdapter() {
// gesetzt hat (z.B. via .env.production) und der User noch nichts gewählt hat,
// wird Cloud automatisch der Modus. Damit landet ein Browser, der app.rapport.kgva.ch
// öffnet, direkt im Cloud-Login (bzw. Init-Dialog wenn Server leer).
// Dev (`npm run dev`) ist ausgenommen — dort sieht der User weiterhin den
// BackendChoice-Screen, weil .env.local oft auf localhost zeigt.
//
// Bewusst NICHT auto-cloud wenn:
// - Dev-Build (`npm run dev`) — User sieht weiterhin BackendChoice
// - lokale Daten existieren (würde bestehenden Lokal-User auf Cloud zwingen
// und seine Daten unsichtbar machen) — Bug bei 0.7→0.8-Upgrade
// - Tauri-Desktop-App (Tauri-User sollen immer aktiv wählen, nicht implizit
// aufgrund von .env.production eines Builds umgehauen werden)
if (typeof localStorage !== "undefined" && import.meta.env.PROD) {
const envUrl = import.meta.env.VITE_SUPABASE_URL;
if (envUrl && !localStorage.getItem("rapport_backend_chosen")) {
const hasLocalData = !!localStorage.getItem(STORAGE_KEY);
const isTauri = typeof window !== "undefined" && !!window.__TAURI_INTERNALS__;
if (envUrl && !localStorage.getItem("rapport_backend_chosen") && !hasLocalData && !isTauri) {
localStorage.setItem("rapport_backend_chosen", "1");
localStorage.setItem("rapport_backend", "cloud");
if (!localStorage.getItem("rapport_cloud_url")) {