Skip to content

docs: Admin-Hub Feature-Spec (Werkzeuge-Sektion: Browser, Quick Notes, Dateimanager, Systemmonitor) - #12

Merged
Toqsick merged 1 commit into
mainfrom
feature/admin-hub-spec
Aug 22, 2026
Merged

Toqsick merged 1 commit into
mainfrom
feature/admin-hub-spec

Conversation

@Toqsick

@Toqsick Toqsick commented Aug 22, 2026

Copy link
Copy Markdown
Owner

🛠️ Admin-Hub: Feature-Spezifikation für v0.8

Erweitert die Sidebar (v0.7.1) um eine „Werkzeuge"-Sektion mit vier Features:

Feature Ansatz Aufwand
🌐 Browser-Verknüpfung Brave-Launch mit Fallback-Kette (brave → brave-browser → xdg-open), konfigurierbar ½ Tag (PR E1)
📝 Quick Notes Lokale Markdown-Notizen (~/.local/share/linux-assistant/notes/), Autosave, Master-Detail, Monospace-Editor 1–2 Tage (PR E2)
📁 Dateimanager Eingebettet via dart:io (kein Shell-out), Breadcrumbs, Destructive-Confirms, Symlink-Policy 2–3 Tage (PR E4)
📊 Systemmonitor Echtzeit-Metriken aus /proc (CPU/RAM/Disks/Netz/Thermal) + optional nvidia-smi, 1s-Refresh mit Performance-Budget 3–4 Tage (PR E3)

Design-Integration

Abhängigkeiten

Reine Spezifikation – kein App-Code.

Copilot AI lite review requested due to automatic review settings August 22, 2026 14:41

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@Toqsick
Toqsick merged commit c255389 into main Aug 22, 2026
1 check failed
Toqsick added a commit that referenced this pull request Sep 29, 2026
…odies

Spiegel der GitHub-Stände vom 2026-09-30: sieben MLA-Next-Milestones
(#12-#18 auf GitHub), 17 Issues #90-#106 (Label track:mla-next) und die
ausgearbeiteten Bodies der Roadmap-Issues #58-#87. Nur neue Dateien unter
docs/mla-next/; kein Code, keine Policy, kein Packaging.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Toqsick added a commit that referenced this pull request Sep 30, 2026
* docs(mla): add isolated GTK scaffold and coding-agent master plan

* docs(mla): add scaffold setup, IPC contract and verification gates

* docs(mla): add SDD execution plan (gate 0, baseline, la_core spike + registry)

* docs(mla): gate 0 automated verification on zorin (wayland + x11)

* docs(mla): complete gate 0 wayland evidence chain (review fix)

* docs(mla): add A0 baseline and evidence map

* feat(la_core): minimal headless spike per issue #59 (probe contract, compile exe)

* feat(la_core): module descriptor + registry validation per issue #60

* feat(la_core): registry lifecycle - single-flight activation, reverse stop per issue #60

* docs(mla): check off gate 1 spike + registry portions with evidence

* docs(mla): true up gate evidence (final review fix)

* chore(analyze): adopt analyzer excludes auto-written by flutter tool

* fix(la_core): align sdk bound with committed lockfile (^3.11.0)

* style(la_core): apply dart format to registry and tests

* ci(mla): run la_core gates and headless compile in Dart workflow

* fix(analyze): exclude nested packages from root analyzer (monorepo)

* docs(mla): mirror MLA-Next milestones/issues and elaborated roadmap bodies

Spiegel der GitHub-Stände vom 2026-09-30: sieben MLA-Next-Milestones
(#12-#18 auf GitHub), 17 Issues #90-#106 (Label track:mla-next) und die
ausgearbeiteten Bodies der Roadmap-Issues #58-#87. Nur neue Dateien unter
docs/mla-next/; kein Code, keine Policy, kein Packaging.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

* refactor(la_core): reine Parser aus der App in den Kern verschieben (#93)

Schnitt 1 von #93: es wandern nur Modelle und Parse-Funktionen, die Runner
bleiben app-seitig (sie hängen an Linux.runCommandWithCustomArguments bzw.
CommandHelper, ein Umzug würde runInShell/expandCommand/kDebugMode verschieben).

Neu in packages/la_core: parseDfOutput + DeviceInfo, parsePsOutput +
ProcessStat, parseUptime + Uptime, parseLoadAvg, MemoryInfo.parseFreeOutput +
MemoryInfo. Die Rümpfe sind 1:1 aus der App übernommen, nur static -> Top-Level;
@immutable entfällt, damit der Kern dependency-frei bleibt.

Neu: test/parsers_test.dart mit denselben Fixtures wie der App-Test, inline -
eine gemeinsame Fixture-Ablage ist #94 und von diesem Schnitt blockiert.
dart test 14 -> 30.

Das SDK-Bound bleibt bei ^3.11.0 (bf4942b, deckungsgleich mit
packages/la_core/pubspec.lock); ergänzt ist nur ein Kommentar, der erklärt,
warum ein Absenken kein No-op wäre: die Spracheversion steuert, welche
Formatierer-Regeln `dart format` auf das Paket anwendet.

Co-Authored-By: Claude Code <noreply@anthropic.com>

* refactor(linux): Parser-Aufrufe an la_core delegieren (#93)

Die drei Fassaden lib/linux/{linux_filesystem,linux_process,linux_system}.dart
halten nur noch Klassenrumpf und Runner; die Parser-statics delegieren prefixed
an la_core und die Modelle werden re-exportiert:

  import 'package:la_core/la_core.dart' as core;
  export 'package:la_core/la_core.dart' show DeviceInfo;

Das Präfix ist Pflicht, nicht Stil: ein unqualifizierter Aufruf im Body eines
gleichnamigen static bindet über den Class-Scope auf sich selbst und ergäbe eine
Endlosrekursion, die sauber kompiliert und von keinem Analyzer-Gate gefangen wird.

lib/services/system_stats_service.dart bekommt import UND export von MemoryInfo:
ein export importiert nicht in dieselbe Library, der import deckt den eigenen
Scope (Feld SystemStats.memory, Aufruf in refresh), der export hält
package:linux_assistant/... als Bezugsweg für den bestehenden Test offen.
SystemStats und SystemStatsService bleiben unverändert app-seitig.

test/system_parsers_test.dart bleibt byte-identisch (kein Diff). Gates:
la_core dart test 30/30, analyze/format/compile exe + Headless-Probe grün;
App flutter test +184, gezielter Parser-Test +22, flutter analyze sauber,
dart format 0 changed, tool/check-versions.sh konsistent, Python 49 OK.

Nebenbei, unabhängig von #93: flutter pub get hat die gegen die installierte
Flutter 3.47.5 veraltete pubspec.lock neu aufgelöst - intl 0.20.2 -> 0.20.3
(flutter_localizations verlangt intl ^0.20.3), test_api 0.7.12, matcher 0.12.20,
meta 1.19.0, vector_math 2.4.3; die sdks-Zeile steht damit auf dart >=3.11.0,
was zum SDK-Bound von la_core passt.

Co-Authored-By: Claude Code <noreply@anthropic.com>

* docs(mla): Gate-1-Nachweis für #93 Schnitt 1 (Parser-Umzug)

Handoff-Abschnitt zu den Commits 94b5ef8 und 755665c: Basis-SHA, Pfade der
verschobenen Parser, die zwei Fallen (Class-Scope-Schatten im Delegator,
export importiert nicht), alle tatsächlich ausgeführten Gates mit Ausgabe,
nicht ausgeführte Gates (CI triggert den Branch nicht; kein Runner-
Verhaltensnachweis) und Rückfallplan. Dazu die festgehaltene Planabweichung:
das SDK-Bound blieb ^3.11.0 statt wie geplant auf ^3.4.0 zu sinken.

Unabhängige Verifikation durch den read-only Workflow mla-93-parser-move-verify
(vier Linsen + Synthese, 5 Agenten): Synthese-Verdikt PASS ohne Blocker;
Endlosrekursion, gespaltener Typ und Logikdrift gezielt ausgeschlossen, Rümpfe
gegen 513def1 byte-identisch. Festgehalten sind auch die Einschränkungen der
Runde: leere Belegketten der Linsen 1/2/4, bewegter Arbeitsbaum während der
Verifikation, und die Formatierer-Methodik (dart format liest die
Spracheversion aus .dart_tool/package_config.json - erst dart pub get, dann
formatieren).

Co-Authored-By: Claude Code <noreply@anthropic.com>

* docs(mla): Push-Status im #93-Handoff nachziehen

Der Handoff-Abschnitt in VERIFY.md stand nach dem Push noch auf "unpushed"
und listete nur zwei der drei Commits. Jetzt: drei Commits, gepusht als
Fast-Forward 513def1..080becf. Im Rückfallplan entfällt der reset-Weg, weil
der Branch geteilt ist -- revert ist der gangbare Pfad.

Co-Authored-By: Claude Code <noreply@anthropic.com>

* feat(mla): Modul-Registry und HubModule-Adapter ersetzen acht Navigations-Switches (#60)

Die acht navigationsrelevanten switch-Blöcke in lib/layouts/hub/hub_shell.dart sind
durch Lookups in die neue Registry lib/layouts/hub/hub_module.dart ersetzt (HubModule,
hubModules, hubModuleOf). Die Enums HubSection/HubTool ziehen dorthin um und werden von
hub_shell.dart re-exportiert.

Die neun Einträge reichen je einen ModuleDescriptor aus packages/la_core durch — la_core
bleibt unangetastet und Flutter-frei. HubModule ergänzt den Kern um Icon, Tier,
screenBuilder und isAvailable(Environment).

Vier neue ARB-Keys (browser, quickNotes, fileManager, systemMonitor) in allen vier
ARB-Dateien plus regenerierte app_localizations*.dart. SystemStatsService bekommt den
nur lesenden Test-Seam sectionActive.

en/de sind byte-identisch: die Charakterisierungstests H1–H8 wurden zuerst gegen den alten
switch-Code geschrieben und blieben unverändert grün. Für it/fi zeigen die vier
Werkzeugtitel jetzt echte Übersetzungen statt des englischen _tr-Fallbacks — vom l10n-Gate
erzwungen, nicht gewählt.

Tests: test/hub_navigation_test.dart (H1–H9), test/hub_module_registry_test.dart (T1–T7),
test/hub_test_harness.dart. Voller Lauf +200 grün. Der Abschnitt „Abnahme #60" in
docs/mla-next/VERIFY.md belegt alle Gates mit ausgegebener Ausgabe.

Co-Authored-By: Claude Code <noreply@anthropic.com>

* docs(mla): Abnahme-Abschnitt für #60 in VERIFY.md

Basis-SHA, Gate-Tabelle mit tatsächlichen Ausgaben, Rest-Switch-Beweis, Abnahmekriterien,
Synthese-Verdikt (PASS), akzeptierte Befunde, nicht ausgeführte Gates, Test-Nebenwirkung,
Planabweichungen, Leak-Grep-Einordnung und Rückfallplan. Dazu drei alte Stellen korrigiert:
la_core dart test 14 -> 30, Gate-1-Box für #60 mit geliefertem Adapter, HubModule-Adapter
nicht mehr als offen geführt.

Co-Authored-By: Claude Code <noreply@anthropic.com>

* docs: Nutzernamen aus Handoff-Auszügen entfernen (öffentliches Repo)

Journal- und pkexec-Auszüge in drei Handoff-Dateien trugen den lokalen Nutzernamen
(viermal unix-user/pkexec bzw. eine uid-Zeile, dazu ein --home-Pfad) sowie einen absoluten
Repo-Pfad. Ersetzt durch <user> bzw. $HOME. Kein Code, keine Aussage geändert.

Co-Authored-By: Claude Code <noreply@anthropic.com>

---------

Co-authored-by: Claude Sonnet 5.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants