3.1 KiB
3.1 KiB
quick_id, type, wave, autonomous, files_modified
| quick_id | type | wave | autonomous | files_modified | ||||
|---|---|---|---|---|---|---|---|---|
| 260929-d37 | quick | 1 | true |
|
Quick 260929-d37: Desktop-Client nur einmal starten (Single-Instance)
Problem
User report (29.09.2026, Windows 11): at system start Tessera launches twice and two tray icons appear.
apps/desktop/src-tauri/src/lib.rs has no single-instance guard. Autostart via tauri-plugin-autostart
(HKCU Run key, only set when the user ticks "Mit Windows starten"); a second launch source (Windows 11
"restart restartable apps after sign-in", a stale Run/Startup entry from an older install, or a manual
double-click) starts a second full process with its own tray icon.
Goal
Only one Tessera desktop process runs per user session. A second launch hands off to the running one (show + unminimize + focus the main window) and exits immediately — no second tray icon.
Task 1: Single-instance plugin
- files: apps/desktop/src-tauri/Cargo.toml, apps/desktop/src-tauri/Cargo.lock, apps/desktop/src-tauri/src/lib.rs
- action:
- Add
tauri-plugin-single-instance = "2"to[dependencies](resolve with cargo; lockfile updated). - Register it as the FIRST plugin in
tauri::Builder(plugin docs require it to be registered first):.plugin(tauri_plugin_single_instance::init(|app, _argv, _cwd| { focus main window })). - Callback: reuse the exact show/unminimize/set_focus sequence already used by the tray "open" handler
(around lib.rs:820-835). If that sequence is duplicated 3x already, extract a small helper
fn show_main_window(app: &AppHandle)and use it in all places (keep behavior identical). - Short German comment above the plugin line explaining why (double start at Windows sign-in, two tray icons).
- No capabilities/permissions change needed (plugin has no JS API); verify by building.
- Add
- verify:
cd apps/desktop/src-tauri && cargo buildsucceeds;cargo test(existing unit tests) green;cargo clippyno new warnings if clippy is available. - done: builds, tests green, commit
fix(desktop): nur eine Instanz — zweiter Start holt das Fenster nach vorne.
Task 2: CHANGELOG
- files: CHANGELOG.md
- action: under
## Unveröffentlichtadd a### Behobensection (after### Neu) with one plain-German bullet (app text uses "Sie"), e.g.: "Desktop-App: Tessera startet nicht mehr doppelt. Wird die App ein zweites Mal gestartet – etwa beim Anmelden an Windows –, holt sie nur das vorhandene Fenster nach vorne; im Infobereich erscheint nur noch ein Symbol." Follow existing CHANGELOG style; run the repo's changelog/umlaut checks if any exist (web tests touching CHANGELOG, e.g.pnpm --filter web test -- changelog). - done: commit
docs(changelog): Desktop-App startet nicht mehr doppelt.
Constraints
- Commit locally only. NEVER
git push. - Do not touch the desktop version numbers (release process handles them).
- Real Windows verification is not possible from here; state in SUMMARY that the Windows check (VM 8233 or user's PC after next desktop release) is open.