Ziel
Probes, Parser und Doctor laufen ohne GUI; die Reinheit erzwingt der Build. Voraussetzung für den Wächter (#66) und den Doctor (#78).
Scope
Logik, die ohne GUI laufen muss (Probes, Parser, Doctor), liegt in einem Paket ohne Flutter-Abhängigkeit — die Reinheit erzwingt der Build, nicht eine Konvention. Voraussetzung für LB3 (Wächter) und ST3 (Doctor).
Spike (eine Session, zuerst):
dart compile exe packages/la_core/bin/la_probe.dart mit dem Dart aus dem Flutter-SDK, lokal und in CI
- Messen: Binärgröße, Startzeit, Lauf ohne
DISPLAY/WAYLAND_DISPLAY
Danach (Spec + Plan):
CommandHelper umziehen (heute lib/helpers/command_helper.dart, nur dart:io)
- Logger-Shim ohne
flutter/foundation (heute hängt lib/services/logger.dart:1 daran)
- Probe-Vertrag:
Probe, ProbeResult{level: ok|warn|crit|unknown, key, params, at}
- Parser für free, df, uptime und ps aus
system_stats_service.dart:32, linux_filesystem.dart, linux_system.dart:36ff, linux_process.dart:19ff
- App bindet das Paket als path-Dependency ein;
test als dev_dependency (begründete Ausnahme vom pub-Budget)
Nicht: linux.dart komplett zerlegen — umgezogen wird nur, was Probes brauchen (M5 geht schrittweise weiter).
Abnahme
Stand 2026-09-30 (Branch feature/mla-gtk-scaffold, Draft-PR #89)
Spike und Probe-Vertrag sind im Branch umgesetzt und belegt (docs/mla-next/BASELINE.md §7, docs/mla-next/VERIFY.md Gate 1):
dart test in packages/la_core: 14/14 grün (Probe + Registry)
dart compile exe bin/la_probe.dart; Lauf mit env -u DISPLAY -u WAYLAND_DISPLAY: la_probe --version Exit 0
- Messwerte (Zorin OS 18.1, Dart 3.13.4): Binärgröße 6 547 240 Bytes, Median-Startzeit 3 ms (5 Läufe)
- Root-Gates unverändert grün:
flutter test +184, flutter analyze 0 Findings, Python-Tests 49 OK
- CI-Schritte für
la_core sind im Branch eingerichtet
Offen: build-deb.sh legt das Binary ab · Parser-Umzug · Logger-Shim/CommandHelper-Umzug · App-Einbindung als path-Dependency · Risiko-Fallback prüfen.
Erste Abnahmezeile: dart test ist erfüllt; flutter test im reinen Dart-Paket ist nicht sinnvoll (bewusst ohne Flutter-Abhängigkeit) → Formulierung im Spec klären, das Kästchen bleibt daher offen.
Andockpunkte (geprüft 2026-09-30)
lib/helpers/command_helper.dart (nur dart:io) und lib/services/logger.dart:1 (importiert flutter/foundation, braucht einen Shim)
- Parser:
parseFreeOutput in lib/services/system_stats_service.dart:32, lib/linux/linux_filesystem.dart, parseUptime in lib/linux/linux_system.dart, ps-Parser in lib/linux/linux_process.dart
- Im Branch
feature/mla-gtk-scaffold bereits vorhanden: packages/la_core/bin/la_probe.dart, lib/src/probe.dart, lib/src/module_descriptor.dart, lib/src/module_registry.dart
Teststrategie
dart test in packages/la_core (Stand 2026-09-30: 14/14); Root-flutter test bleibt grün (+184)
- Fixtures aus echten, geschwärzten Zorin-Ausgaben; die bestehenden Parser-Tests (
test/system_parsers_test.dart) laufen unverändert gegen die umgezogenen Parser
dart compile exe und Lauf ohne DISPLAY/WAYLAND_DISPLAY in CI
Risiko & Fallback
Die Verflechtung von linux.dart mit der UI ist größer als gedacht → Spike zuerst, nur Probe-relevantes umziehen; Fallback: Probes vorerst im App-Prozess, Wächter später. Paketierung des CLI (dart compile exe im deb-Build: CI-Zeit, Binärgröße) — Spike-Messung: 6 547 240 Bytes, Median-Start 3 ms (docs/mla-next/BASELINE.md §7).
Abhängigkeiten
Blockiert durch: #41 (V0.8.5 abgeschlossen)
Blockiert: #60, #66, #78
Gates
Tier: Core · Größe: L · Spec + Plan · zuerst im Epic.
Quelle: Ausbauplan V0.8.6–V1.0, Epic FU (Teilplan FU2).
MLA-Next-Bezug: MLA-Next A3 #93 (Rest des Dart-Kerns).
Ziel
Probes, Parser und Doctor laufen ohne GUI; die Reinheit erzwingt der Build. Voraussetzung für den Wächter (#66) und den Doctor (#78).
Scope
Logik, die ohne GUI laufen muss (Probes, Parser, Doctor), liegt in einem Paket ohne Flutter-Abhängigkeit — die Reinheit erzwingt der Build, nicht eine Konvention. Voraussetzung für LB3 (Wächter) und ST3 (Doctor).
Spike (eine Session, zuerst):
dart compile exe packages/la_core/bin/la_probe.dartmit dem Dart aus dem Flutter-SDK, lokal und in CIDISPLAY/WAYLAND_DISPLAYDanach (Spec + Plan):
CommandHelperumziehen (heutelib/helpers/command_helper.dart, nurdart:io)flutter/foundation(heute hängtlib/services/logger.dart:1daran)Probe,ProbeResult{level: ok|warn|crit|unknown, key, params, at}system_stats_service.dart:32,linux_filesystem.dart,linux_system.dart:36ff,linux_process.dart:19fftestals dev_dependency (begründete Ausnahme vom pub-Budget)Nicht:
linux.dartkomplett zerlegen — umgezogen wird nur, was Probes brauchen (M5 geht schrittweise weiter).Abnahme
flutter testunddart testinpackages/la_coregrünla_probe --versionläuft auf Zorin ohne Session-Variablenbuild-deb.shlegt das Binary nach/usr/lib/linux-assistant/Stand 2026-09-30 (Branch
feature/mla-gtk-scaffold, Draft-PR #89)Spike und Probe-Vertrag sind im Branch umgesetzt und belegt (
docs/mla-next/BASELINE.md§7,docs/mla-next/VERIFY.mdGate 1):dart testinpackages/la_core: 14/14 grün (Probe + Registry)dart compile exe bin/la_probe.dart; Lauf mitenv -u DISPLAY -u WAYLAND_DISPLAY:la_probe --versionExit 0flutter test+184,flutter analyze0 Findings, Python-Tests 49 OKla_coresind im Branch eingerichtetOffen:
build-deb.shlegt das Binary ab · Parser-Umzug · Logger-Shim/CommandHelper-Umzug · App-Einbindung als path-Dependency · Risiko-Fallback prüfen.Erste Abnahmezeile:
dart testist erfüllt;flutter testim reinen Dart-Paket ist nicht sinnvoll (bewusst ohne Flutter-Abhängigkeit) → Formulierung im Spec klären, das Kästchen bleibt daher offen.Andockpunkte (geprüft 2026-09-30)
lib/helpers/command_helper.dart(nurdart:io) undlib/services/logger.dart:1(importiertflutter/foundation, braucht einen Shim)parseFreeOutputinlib/services/system_stats_service.dart:32,lib/linux/linux_filesystem.dart,parseUptimeinlib/linux/linux_system.dart, ps-Parser inlib/linux/linux_process.dartfeature/mla-gtk-scaffoldbereits vorhanden:packages/la_core/bin/la_probe.dart,lib/src/probe.dart,lib/src/module_descriptor.dart,lib/src/module_registry.dartTeststrategie
dart testinpackages/la_core(Stand 2026-09-30: 14/14); Root-flutter testbleibt grün (+184)test/system_parsers_test.dart) laufen unverändert gegen die umgezogenen Parserdart compile exeund Lauf ohneDISPLAY/WAYLAND_DISPLAYin CIRisiko & Fallback
Die Verflechtung von
linux.dartmit der UI ist größer als gedacht → Spike zuerst, nur Probe-relevantes umziehen; Fallback: Probes vorerst im App-Prozess, Wächter später. Paketierung des CLI (dart compile exeim deb-Build: CI-Zeit, Binärgröße) — Spike-Messung: 6 547 240 Bytes, Median-Start 3 ms (docs/mla-next/BASELINE.md§7).Abhängigkeiten
Blockiert durch: #41 (V0.8.5 abgeschlossen)
Blockiert: #60, #66, #78
Gates
tool/check-versions.sh,dart format,flutter analyzemit 0 Findings,flutter test, Python-unittest)release-plaene-v0.8.1-v0.8.5.md, Task 7): keine Hosts, IPs, Ports,/home-PfadeTier: Core · Größe: L · Spec + Plan · zuerst im Epic.
Quelle: Ausbauplan V0.8.6–V1.0, Epic FU (Teilplan FU2).
MLA-Next-Bezug: MLA-Next A3 #93 (Rest des Dart-Kerns).