You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[V0.8.2] XDG-Stufe in AppLauncher implementieren + Snackbar-Feedback + Doku #34
Ziel-Reihenfolge: preferred_browser → XDG-Standardbrowser (xdg-settings + .desktop-Prüfung, dann detached gtk-launch; mit URL xdg-open) → Binary-Liste kKnownBrowsers als letzter Fallback.
Dateien
lib/services/app_launcher.dart (komplett ersetzen — neuer BrowserLaunchResult-Enum, injizierbare Zugriffe whichRunner/processStarter/outputReader/desktopEntryExists/configuredBrowser; vollständiger Code im Plan Task 2, Step 3)
lib/layouts/hub/hub_shell.dart:166-181 (Doc-Kommentar exakt 5 Zeilen + Fallback-Info-Snackbar; failed-Zweig ab Z. 182 unverändert)
Doku: docs/wiki/Admin-Hub.md:19-27, docs/handoff/panels/hub-shell.md:55 (Zeilennummern via grep), docs/design/feature-spec-admin-hub.md:42, docs/design/admin-hub-followups.md:23
Hinweise
Die .desktop-Prüfung bleibt nötig: aus einem detached Start kommt kein Exit-Code zurück — ohne Prüfung meldete der Launcher Erfolg, obwohl sich nichts öffnet
Gate-Test-Gate:flutter test grün (223 Tests gesamt), davon 19 neue in test/app_launcher_test.dart. Gate-Formate + globale Gates:dart format lib test 123 Dateien 0 geändert · check-versions.sh OK · flutter analyze 0 Findings · Python-Unittests 58 + 96 grün · packages/la_core analyze 0 Findings, format 25 Dateien 0 geändert, 68 Tests grün. Gate-Commit: liegt als Squash in add73e3; der Original-Branch-Commit mit der Nachricht fix(launcher): start the XDG default browser instead of the first listed binary steht als 388811d auf dem superseded Branch hardening/0.8.x-browser-xdg.
Härtung über die Spezifikation hinaus:_validDesktopId() (app_launcher.dart:216-220) prüft die von xdg-settings gelieferte Desktop-ID gegen /, .. und ein Namens-Regex.
Manueller Rest (bleibt offen, bei Basti): das Erfolgskriterium des Meilensteins — „auf Bastis Rechner öffnet das Browser-Werkzeug Brave Origin ohne Snackbar" — braucht Zorin OS 18.1 mit Desktop und ist aus der Cloud-Sandbox nicht prüfbar. Status ist in meilensteine-v0.8.1-v0.8.5.md (Meilenstein 2) ausdrücklich als offen vermerkt, ebenso die Checkliste in docs/design/admin-hub-followups.md:19-28.
Nachweis: docs/handoff/v0.8.2-xdg-browser-abschluss.md — folgt mit PR #154.
Activity
fix(launcher): start the XDG default browser instead of the first lis…
V0.8.x-Hardening: XDG-Browser-Kette (#33/#34, #47), deb-Depends (#35)…
Toqsick commentedon Oct 23, 2026
Abnahme — erledigt
Alle drei Gates aus diesem Issue sind erfüllt. Umsetzung in
mainalsadd73e3(PR #118, Squash).Dateien laut Scope:
lib/services/app_launcher.dart—BrowserLaunchResult-Enumapp_launcher.dart:6-16:46(_which),:49(_starter),:53(_outputReader),:57(_desktopEntryExists),:61(_configuredBrowser)kKnownBrowsersapp_launcher.dart:174-207.desktop-Existenzprüfung vor dem detached Startapp_launcher.dart:184-198lib/layouts/hub/hub_shell.dart— Doc-Kommentar exakt 5 Zeilenhub_shell.dart:143-147hub_shell.dart:154-158failed-Zweig unveränderthub_shell.dart:159-162docs/wiki/Admin-Hub.md:23-28docs/handoff/panels/hub-shell.md:55docs/design/feature-spec-admin-hub.md:44-46docs/design/admin-hub-followups.md:23Gate-Test-Gate:
flutter testgrün (223 Tests gesamt), davon 19 neue intest/app_launcher_test.dart.Gate-Formate + globale Gates:
dart format lib test123 Dateien 0 geändert ·check-versions.shOK ·flutter analyze0 Findings · Python-Unittests 58 + 96 grün ·packages/la_coreanalyze 0 Findings, format 25 Dateien 0 geändert, 68 Tests grün.Gate-Commit: liegt als Squash in
add73e3; der Original-Branch-Commit mit der Nachrichtfix(launcher): start the XDG default browser instead of the first listed binarysteht als388811dauf dem superseded Branchhardening/0.8.x-browser-xdg.Härtung über die Spezifikation hinaus:
_validDesktopId()(app_launcher.dart:216-220) prüft die vonxdg-settingsgelieferte Desktop-ID gegen/,..und ein Namens-Regex.Manueller Rest (bleibt offen, bei Basti): das Erfolgskriterium des Meilensteins — „auf Bastis Rechner öffnet das Browser-Werkzeug Brave Origin ohne Snackbar" — braucht Zorin OS 18.1 mit Desktop und ist aus der Cloud-Sandbox nicht prüfbar. Status ist in
meilensteine-v0.8.1-v0.8.5.md(Meilenstein 2) ausdrücklich als offen vermerkt, ebenso die Checkliste indocs/design/admin-hub-followups.md:19-28.Nachweis:
docs/handoff/v0.8.2-xdg-browser-abschluss.md— folgt mit PR #154.