feat(mla): #94 Gemeinsame Fixtures + Fehler-/Stale-Modelle - #108
Merged
Merged
Conversation
Task 1 von 5 zu #94: test/fixtures/ wird die eine Ablage für Parser-Fixtures beider Test-Tracks. - Fünf echte, geschwärzte Zorin-Ausgaben (zorin_*.txt) mit den exakten Produktions-Aufrufen capturiert (df ohne LC_ALL mit deutschem Locale, ps nach pcpu sortiert, uptime/free unter LC_ALL=C, /proc/loadavg); zorin_ps.txt auf die ersten 60 von 682 Zeilen gekürzt (dokumentierte Abweichung). - Schwärzung nach den Plan-Regeln (/home|/media -> user, URLs -> example.invalid, IPs entfernt) plus jenseits der Regeln: QEMU-Serial, MAC, Bind-IPs, Xwayland-Auth-Suffix, eine Konto-URL und der Domain-Anteil im Brave-Installationspfad. Alles in test/fixtures/README.md dokumentiert, inklusive der bewusst behaltenen Reste (UID 1000, Chromium-Sitzungswerte). - Sieben synthetische Edge-Vektoren aus den bisherigen Inline-Samples von test/system_parsers_test.dart unverändert übernommen (Doppelgerät, Mountpoint mit Leerzeichen, Kernel-Thread-Zeile, drei Uptime-Wortlautvarianten, fehlender Swap). - Neu: additional/python/tests/test_fixture_leak_check.py (stdlib unittest) - LeakDetection mit den verbindlichen MUST_FLAG-/ MUST_NOT_FLAG-Vektoren und FixturesClean, das jede *.txt-Datei in test/fixtures/ gegen die Musterkategorien (IPv4, IPv6-Heuristik, /home//media mit erlaubtem Namen user, TLD-Allowlist, user@host) prüft. README.md wird nicht gescannt, weil es die Regeln selbst dokumentiert (Begründung im Docstring). - Keine Dart-Dateien angefasst; die Umschaltung der Parser-Tests auf die Fixtures ist Task 3. Gates: Python 53 Tests OK (49 bestehende + 4 neue, RED zuvor beobachtet: FixturesClean 2x FAIL wegen fehlendem Verzeichnis); flutter test +200, analyze sauber, dart format 0 changed (nur zur Seite proving, dass die neuen Nicht-Dart-Dateien inert sind). Co-Authored-By: Claude Code <noreply@anthropic.com>
…#94) Task 2 von 5 zu #94: die fuenf Beobachtungszustaende unknown/running/ok/ stale/failed als getrennte Werte in la_core, nach dem Vertrag aus docs/mla-next/IPC_CONTRACT.md. - Neu: ProbeState-Enum und finale Wertklasse ProbeStatus<T> mit den Konstruktoren unknown/running/ok/failed; ok traegt data + observedAt, failed nur error. stale ist ein UI-/Transportzustand und nur ueber den privaten _stale-Konstruktor erreichbar. - markStale() ist nur aus ok gueltig (sonst StateError) und erhaelt data und observedAt; stale -> stale wirft ebenfalls, ein stiller Rueckweg stale -> ok existiert nicht - frische Beobachtungen bauen ein neues ok. - Wertgleichheit ueber alle vier Felder (state/data/observedAt/error), hashCode via Object.hash, sprechendes toString. - Barrel la_core.dart um export 'src/probe_status.dart'; ergaenzt (alphabetisch nach probe_registry). - TDD: probe_status_test.dart zuerst angelegt, RED beobachtet (Compile-Fehler: Couldn't find constructor 'ProbeStatus' / Undefined name 'ProbeState' bei 52 weiterhin gruenen Bestands- tests), dann implementiert, dann GREEN mit 8 neuen Tests. Gates: dart pub get OK; dart format --output=none 0 changed (nach einmaligem Nachformatieren der beiden neuen Dateien); dart analyze "No issues found!"; dart test +60: All tests passed! (52 bestehende + 8 neue). Co-Authored-By: Claude Code <noreply@anthropic.com>
…tieren, Leak-Check erweitern (#94)
8 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Dritter MLA-Next-Kern-Arbeitsblock nach #93: Issue #94 — Gemeinsame Fixtures + Fehler-/Stale-Modelle ([Next 0.0.3]). Basis
e4c1346, 9 Commits, SDD-Ausführung mit je Task Implementer + Two-Reviewer-Gate; Details im Handoffdocs/mla-next/VERIFY.md→ „Handoff #94".Was drin ist
test/fixtures/(neu): fünf echte, geschwärzte Zorin-Ausgaben (zorin_df/ps/uptime/free/loadavg.txt— Capture exakt der Produktions-Aufrufe inkl. LC_ALL-Parität) plus sieben synthetische Edge-Vektoren +README.md(Capture-Kommandos, Schwärzungsregeln, GTK-/Python-Track-Nutzung).additional/python/tests/test_fixture_leak_check.py: stdlib-unittest, läuft bei jedem CI-Lauf mit; MUST_FLAG/MUST_NOT_FLAG-Vektoren (inkl. engeport=/host:port-Muster, Uhrzeiten bleiben unberührt); auf allen zwölf*.txtleer.la_core:ProbeState { unknown, running, ok, stale, failed }+ProbeStatus<T>—stalenur übermarkStale()ausok(behält data/observedAt), kein stillschweigender Weg zurück zuok(IPC_CONTRACT.md:16); 8 neue Tests.test/system_parsers_test.dart+packages/la_core/test/parsers_test.dartladen alle 12 Dateien, Inline-Duplikate entfernt, Erwartungswerte an die echten Captures gepinnt (Asserts teils gestrafft).Abnahme (alle Boxen, Details in
docs/mla-next/ISSUES.md→ #94)/home-Pfade leer; Ports inport=/host:port-Form geprüft, bloße Dienstports dokumentiert behalten)Gates (2026-09-30, auf
8bddeb6/1ad1c55)la_core format
0 changed· analyzeNo issues found!· dart test+60(52+8) ·la_probecompile + display-less--version· Root format0 changed· flutter analyze clean · flutter test+200· PythonRan 53 tests / OK(49+4) · check-versions konsistent. Vollständige Tabelle im Handoff.Reviews
Je Task Reviewer A (Korrektheit) + B (Vollständigkeit), alle clean (Task 4 mit einer Fix-Runde + Re-Review); Final-Whole-Branch-Review: A READY_FOR_PR, B NEEDS_FIXES → Fix
8bddeb6(Brave-Crash-Client-ID geschwärzt, Port-Umgang dokumentiert + Leak-Check erweitert, ISSUES-Wortlaut präzisiert, Plan-Erratum) → Re-Review READY_FOR_PR, keine offenen Findings.Nicht ausgeführt (ehrlich benannt)
build-deb.shlokal (kein Paketbezug; CI baut mit diesem PR), CI für den Branch vor dem PR, manuelle Gate-0-Checks (BASELINE §3 — unverändert offen, von #94 unberührt). Merge nur nach gesonderter Freigabe.