From a6d1a648d17ab74eaada85ae4b90c1597a17b812 Mon Sep 17 00:00:00 2001 From: Schalli Date: Thu, 17 Sep 2026 16:00:56 +0200 Subject: [PATCH] feat(desktop): Setup-Seite zeigt Version und Stand der installierten App MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Neues Command get_client_info liefert "Tessera-App X.Y.Z · Stand " (ohne Stempel nur die Version); die Setup-Seite blendet die Zeile beim Erststart und unter "Server-Adresse ändern" dezent ein. So ist ohne Adressleiste erkennbar, welcher Client-Stand läuft. Co-Authored-By: Claude Opus 5 (1M context) --- CHANGELOG.md | 1 + apps/desktop/src-tauri/src/lib.rs | 36 ++++++++++++++++++++++++++++++- apps/desktop/src/setup.html | 18 ++++++++++++++++ 3 files changed, 54 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1e5164c..dc03d25 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,7 @@ Diese Liste beschreibt in einfachen Worten, was sich von Version zu Version an T - Desktop-App: das Symbol im Infobereich zeigt den verbundenen Tessera-Server – im Hinweistext und als erste Zeile des Menüs; in der App auch unter Einstellungen → Desktop-App als „Verbunden mit: …“ - Desktop-App: Server-Adresse nachträglich änderbar über „Server-Adresse ändern…“ im Menü des Infobereich-Symbols – ohne Neustart - Desktop-App: Update mit einem Klick – „Auf Version X.Y.Z aktualisieren“ im Menü des Infobereich-Symbols lädt das signierte Paket, installiert es und startet die App neu (Windows und Linux); Voraussetzung ist eine https-Adresse, bereits installierte Versionen bis 1.2.0 wechseln einmal noch über den Browser +- Desktop-App: die Seite „Server-Adresse ändern“ (und der Erststart) zeigt Version und Stand der installierten App, z. B. „Tessera-App 1.2.0 · Stand 7479cb4“ ### Geändert diff --git a/apps/desktop/src-tauri/src/lib.rs b/apps/desktop/src-tauri/src/lib.rs index ce828d2..8558a4e 100644 --- a/apps/desktop/src-tauri/src/lib.rs +++ b/apps/desktop/src-tauri/src/lib.rs @@ -163,6 +163,19 @@ fn release_labels(current: &Version, release: &Version) -> (String, String) { update_labels(version_changed, &version, commit) } +/// Beschriftung fuer die Setup-Seite: Version und Commit-Stempel der +/// installierten App, damit Anwender sehen, welchen Stand sie fahren +/// (Beta-Baue teilen sich die X.Y.Z-Version, nur der Stempel unterscheidet +/// sie). Ohne Stempel (lokaler Bau ohne Git) nur die Version. +fn client_info_label(version: &str, commit: &str) -> String { + let commit = commit.trim(); + if commit.is_empty() { + format!("Tessera-App {version}") + } else { + format!("Tessera-App {version} · Stand {commit}") + } +} + /// Parst eine vom Nutzer eingegebene Server-Adresse und erlaubt nur http/https /// -- dieselben Fehlertexte wie bisher inline in `check_server`. `check_server`, /// `save_server_url` und `open_server` rufen ausschliesslich diesen Helfer; @@ -490,6 +503,12 @@ fn open_server(app: AppHandle) -> Result<(), String> { Ok(()) } +/// Version und Commit-Stempel der laufenden App fuer die Setup-Seite. +#[tauri::command] +fn get_client_info() -> String { + client_info_label(env!("CARGO_PKG_VERSION"), env!("APP_COMMIT")) +} + pub fn run() { let app = tauri::Builder::default() .plugin(tauri_plugin_store::Builder::new().build()) @@ -505,7 +524,8 @@ pub fn run() { check_server, save_server_url, get_server_url, - open_server + open_server, + get_client_info ]) .setup(|app| { let server_url = stored_server_url(app.handle()); @@ -710,6 +730,20 @@ mod tests { ); } + #[test] + fn client_info_label_mit_stempel() { + assert_eq!( + client_info_label("1.2.0", "7479cb4"), + "Tessera-App 1.2.0 · Stand 7479cb4" + ); + } + + #[test] + fn client_info_label_ohne_stempel() { + assert_eq!(client_info_label("1.2.0", ""), "Tessera-App 1.2.0"); + assert_eq!(client_info_label("1.2.0", " "), "Tessera-App 1.2.0"); + } + #[test] fn update_labels_bei_gleicher_version_beta_commit() { let (menu_text, body) = update_labels(false, "1.1.0", "abc1234"); diff --git a/apps/desktop/src/setup.html b/apps/desktop/src/setup.html index e13f7a5..312d737 100644 --- a/apps/desktop/src/setup.html +++ b/apps/desktop/src/setup.html @@ -141,6 +141,13 @@ cursor: not-allowed; } + .client-info { + margin: 20px 0 0; + font-size: 0.75rem; + color: oklch(0.6 0 0); + min-height: 1em; + } + .current-server { display: none; text-align: left; @@ -192,6 +199,7 @@ +