Skip to content

Loggableim/lastbrowser3

Repository files navigation

LastBrowser 3 — Plugin-basierte Desktop-Runtime

LastBrowser 3 ist eine modulare Python/PySide6-Desktop-App, die als stabile Basis für Plugin-basierte Sidekick-Funktionen, Hermes-Integration und Self-Repair-Workflows dient. Entwickelt mit Fokus auf Runtime-First-Architektur, Event-getriebener losen Kopplung und Erweiterbarkeit.

Status: Phase 5B.1 — Natives Hermes Plugin (kein WebView) · Python ≥ 3.11 · PySide6 · MIT License


Übersicht

Attribut Wert
Projekt LastBrowser 3
App-Name LastBrowser Sidekick
Status Phase 5B.1 — Natives Hermes Plugin
Python ≥ 3.11
GUI PySide6 (Qt for Python)
Autor Pup Cid
Lizenz MIT

Features

✅ Abgeschlossen (Phase 1 — 5B.1)

Phase Name Status
1 Basis (App Bootstrap, Config, Logging, Splash, MainWindow, QSS-Theming)
2 Runtime Layer & Plugin Foundation (EventBus, Runtime-Manager, ManagedProcess, ServiceRegistry, HealthMonitor, Plugin-System, Command Palette)
3 Plugin Runtime Maturity (Lifecycle-States, PluginWatchdog, UI-Injection, CommandRegistry, SettingsSchema, EventMonitor, Dependencies, Hot Reload)
4A Plugin Manager, Distribution & Safety (Installer, PackageValidator, API-Versioning, Packager, Testsuite, Diagnostics, Failure Fixtures)
4B Browser Features & Hermes Integration (Hermes WebUI Plugin, Store-System mit 6 Tabs, SourceManager, Self-Repair Readiness, Failure Mode Tests)
5A Self-Repair Safety Core (8 Agenten: Backup, Rollback, Diff, Workspace, PatchValidator, GitAnalyzer, RepairRules, AllowedPaths + UI)
5B Hermes Integration & Validation (8-State-HermesService, Hermes AI Bridge, Store-Integration, 21 Tests)
5B.1 Natives Hermes Plugin (KEIN WebView — native QWidget-Panels, 52 Tests)

📦 Mitgelieferte Plugins

Plugin Beschreibung
Hermes Natives Hermes-Plugin — Chat, Agents, Tasks, Tools, Memory, Runtime-Steuerung in 8 QWidget-Panels
Hermes WebUI Legacy WebView-Plugin (ersetzt durch natives Hermes-Plugin, aber kompatibel)
Crypto Feeds Echtzeit-Krypto-Marktdaten-Dashboard powered by FreeCryptoAPI
Sample Plugin Minimales Beispiel-Plugin für Entwickler

Architektur

Das System folgt einer Runtime-first-Architektur mit EventBus als zentralem Rückgrat für lose Kopplung:

┌─────────────────────────────────────────────────────────────────┐
│                         UI Layer                                 │
│  Dashboard · Store (6 Tabs) · Self-Repair · Hermes (8 Panels)   │
│  Event Monitor · Logs · Settings · WebView · Command Palette     │
└───────────────────────┬─────────────────────────────────────────┘
                        │ EventBus (thread-safe Singleton)
┌───────────────────────▼─────────────────────────────────────────┐
│                       Runtime Layer                               │
│  ┌──────────────┐  ┌────────────┐  ┌───────────────────┐        │
│  │RuntimeManager│  │   Service  │  │   HealthMonitor   │        │
│  │(Orchestrator)│  │  Registry  │  │  (period. Checks)  │        │
│  └──────┬───────┘  └────────────┘  └───────────────────┘        │
│         │                                                        │
│  ┌──────▼───────┐  ┌────────────┐  ┌───────────────────┐        │
│  │ProcessManager│  │   Plugin   │  │  Hermes Service    │        │
│  │(ManagedProc) │  │  Registry  │  │  (8-State-Machine) │        │
│  └──────────────┘  └────────────┘  └───────────────────┘        │
│                                                                    │
│  ┌─────────────────────────────────────────────────────┐         │
│  │           Self-Repair Safety Core (Phase 5A)        │         │
│  │  Backup · Rollback · Diff · Workspace · Validator   │         │
│  │  Git Analyzer · Repair Rules · Allowed Paths        │         │
│  └─────────────────────────────────────────────────────┘         │
└─────────────────────────────────────────────────────────────────┘

Zentrale Konzepte

  • EventBus — Globaler Publish/Subscribe-Bus (thread-safe Singleton) für lose Kopplung
  • Plugin-System — BasePlugin-ABC mit 11-stufigem Lifecycle, Permission-Modell (11 Permissions), UI-Injection, Settings-Schema, Abhängigkeitsmanagement
  • Self-Repair Safety Core — 8 Pure-Python-Module (kein Qt) für sicheres Backup/Rollback/Patch-Validierung — rein lesend, kein automatisches Apply
  • Hermes AI Bridge — Loses Bridge-Interface zu Hermes als AI Provider (stdlib-only, kein Qt, headless-fähig)
  • Store-System — Plugin-Verwaltung mit 6 Tabs (Installed, Browse, Updates, Sources, Developer, Diagnostics) und SourceManager

Quick Start

# 1. Repository klonen
git clone https://github.com/Loggableim/lastbrowser3.git
cd lastbrowser3

# 2. Virtuelle Umgebung erstellen
python -m venv .venv
source .venv/bin/activate  # Linux/Mac
# .venv\Scripts\activate   # Windows

# 3. Abhängigkeiten installieren
pip install -e .

# 4. App starten
python -m lastbrowser

Dependencies

Paket Zweck
PySide6 Qt6-Bindings für Python (GUI-Framework)
platformdirs Plattformunabhängige XDG-Verzeichnisse
psutil System-Informationen (CPU, RAM, Disk)
rich Strukturierte Konsolenausgabe (Dev-Hilfe)

Optional:

Paket Zweck
PySide6-WebEngine Chromium-basierte WebView
requests HTTP-Healthchecks (HealthMonitor)

Projektstruktur

lastbrowser3/
├─ pyproject.toml              # Build & Package-Konfiguration
├─ README.md                   # Diese Datei
├─ KANBAN.md                   # Aufgabenverwaltung
├─ LICENSE                     # MIT License
├─ .gitignore / .gitattributes
├─ docs/                       # Dokumentation (32 Dateien)
│  ├─ architecture.md
│  ├─ runtime-architecture.md
│  ├─ plugin-system.md
│  ├─ plugin-runtime.md
│  ├─ developer-mode.md
│  ├─ plugin-ui-system.md
│  ├─ settings-schema-system.md
│  ├─ plugin-distribution.md
│  ├─ plugin-api-versioning.md
│  ├─ plugin-testing.md
│  ├─ diagnostics.md
│  ├─ store-system.md
│  ├─ self-repair-safety.md
│  ├─ backup-rollback-system.md
│  ├─ diff-workspaces.md
│  ├─ repair-readiness.md
│  ├─ hermes-runtime.md
│  ├─ hermes-bridge.md
│  ├─ hermes-webui-plugin.md
│  ├─ hermes-troubleshooting.md
│  ├─ phase{1-5}*-plan.md     # Phasenpläne
│  └─ reviews/                 # Final Reviews
│
├─ src/lastbrowser/            # Haupt-App
│  ├─ __init__.py / __main__.py / _version.py
│  ├─ app.py                   # Application Bootstrap (QApplication, Splash, MainWindow)
│  ├─ config.py                # Singleton-basiertes Config-Management (JSON)
│  ├─ logging_setup.py         # Logging (RotatingFile + Console im Dev-Modus)
│  ├─ paths.py                 # XDG-konforme Pfade (Config, Logs, Runtime)
│  ├─ ports.py                 # TCP-Port-Management
│  ├─ health.py                # Healthchecks (Phase 1)
│  ├─ supervisor.py            # Prozess-Supervisor (Phase 1)
│  │
│  ├─ core/                    # Foundations (Phase 2)
│  │  ├─ events.py             # EventBus (thread-safe Singleton)
│  │  ├─ runtime_state.py      # Runtime-Statusmaschine
│  │  ├─ command_registry.py   # CommandRegistry (Phase 3)
│  │  ├─ developer_mode.py     # Hot Reload & Developer Mode (Phase 3)
│  │  ├─ settings_schema.py    # Settings Schema Engine (Phase 3)
│  │  └─ plugin_registry.py    # Plugin-Registry (Singleton)
│  │
│  ├─ runtime/                 # Runtime Layer (Phase 2+3)
│  │  ├─ runtime_manager.py    # Runtime-Manager (Orchestrierung)
│  │  ├─ managed_process.py    # ManagedProcess + ProcessManager
│  │  ├─ service_registry.py   # ServiceRegistry (ServiceInfo, ServiceType)
│  │  ├─ health_monitor.py     # HealthMonitor (periodische Checks)
│  │  └─ plugin_watchdog.py    # PluginWatchdog (Phase 3)
│  │
│  ├─ plugins/                 # Plugin System (Phase 2-4B)
│  │  ├─ base_plugin.py        # BasePlugin (ABC) + PluginMetadata
│  │  ├─ plugin_context.py     # PluginContext + PluginPermission
│  │  ├─ plugin_loader.py      # PluginLoader (Discovery + dynamisches Laden)
│  │  ├─ plugin_manager_ui.py  # PluginManager-Dialog (Qt-UI)
│  │  ├─ installer.py          # PluginInstaller (Phase 4A)
│  │  ├─ package_validator.py  # PackageValidator (Phase 4A)
│  │  ├─ api_version.py        # API Versioning (Phase 4A)
│  │  ├─ plugin_packager.py    # PluginPackager (Phase 4A)
│  │  ├─ test_runner.py        # TestRunner (Phase 4A)
│  │  ├─ self_repair_readiness.py # SelfRepairReadiness (Phase 4B)
│  │  ├─ source_manager.py     # SourceManager + CatalogPlugin (Phase 4B Store)
│  │  └─ manifests/            # Built-in Plugin-Manifeste
│  │
│  ├─ self_repair/             # Self-Repair Safety Core (Phase 5A, 8 Agenten)
│  │  ├─ allowed_paths.py      # A1 — Path-Whitelist/Blacklist
│  │  ├─ repair_rules.py       # A2 — Limits + Blocked Operations
│  │  ├─ diff_manager.py       # A3 — Unified-Diffs (kein Apply)
│  │  ├─ backup_manager.py     # A4 — Backup/Manifest/Validierung
│  │  ├─ rollback_manager.py   # A5 — Rollback-Points/Preview
│  │  ├─ workspace_manager.py  # A6 — Temporäre Workspaces
│  │  ├─ patch_validator.py    # A7 — 7-stufige Patch-Validierung
│  │  └─ git_analyzer.py       # A8 — Lesender Git-Status
│  │
│  ├─ release/                 # Release-Tools (Phase 4A)
│  │  ├─ build_info.py         # BuildInfo
│  │  └─ environment_check.py  # EnvironmentChecker + Diagnostic Bundle
│  │
│  ├─ services/                # Service-Definitionen (Phase 2-5B)
│  │  ├─ hermes_service.py     # HermesService (8-State-Machine, 1113 Zeilen)
│  │  └─ hermes_bridge.py      # Hermes AI Bridge Interface (stdlib-only, headless)
│  │
│  └─ ui/                      # UI-Komponenten
│     ├─ main_window.py        # Hauptfenster mit Sidebar + Pages
│     ├─ splash.py             # Splashscreen (QSplashScreen)
│     ├─ settings_page.py      # Einstellungen-Seite
│     ├─ settings_renderer.py  # Dynamischer Settings-Renderer
│     ├─ logs_page.py          # Log-Anzeige (live aus Datei)
│     ├─ webview_page.py       # WebView (QWebEngineView) oder Platzhalter
│     ├─ command_palette.py    # Command Palette Ctrl+K (Phase 2+3)
│     ├─ theme_manager.py      # Theme-Manager (Phase 3.1)
│     ├─ plugin_ui_registry.py # PluginUI Injection Registry (Phase 3)
│     ├─ widgets/
│     │  └─ service_status_widget.py
│     ├─ dialogs/
│     │  ├─ install_plugin_dialog.py
│     │  ├─ plugin_test_dialog.py
│     │  ├─ plugin_store_dialog.py
│     │  └─ repair_readiness_dialog.py
│     └─ pages/
│        ├─ event_monitor_page.py
│        ├─ store_page.py       # 6-Tab Store Page (Phase 4B)
│        └─ self_repair_page.py # Self-Repair Dashboard (Phase 5A)
│
├─ user_plugins/               # Benutzer-Plugins
│  ├─ sample_plugin/           # Minimales Beispiel-Plugin
│  ├─ hermes_webui/            # Legacy Hermes WebView Plugin (Phase 4B)
│  ├─ hermes/                  # ★ Natives Hermes Plugin (Phase 5B.1)
│  │  ├─ manifest.json         # Plugin-Metadaten (11 Permissions)
│  │  ├─ plugin.py             # HermesPlugin
│  │  ├─ hermes_runtime.py     # HermesRuntime (7 States)
│  │  ├─ hermes_client.py      # HermesAPIClient (stdlib urllib)
│  │  ├─ hermes_models.py      # HermesAgent/Task/Memory/Tool/Health
│  │  ├─ settings_schema.json  # 10 Settings-Felder
│  │  ├─ plugin-catalog-entry.json
│  │  ├─ ui/                   # 8 QWidget-Panels (kein WebView!)
│  │  │  ├─ hermes_page.py    # Hauptseite (QTabWidget)
│  │  │  ├─ chat_panel.py     # Chat-Interface
│  │  │  ├─ agents_panel.py   # Agenten-Liste
│  │  │  ├─ tasks_panel.py    # Task-Übersicht
│  │  │  ├─ tools_panel.py    # Tool-Registry
│  │  │  ├─ memory_panel.py   # Memory-Browser
│  │  │  ├─ runtime_panel.py  # Runtime-Steuerung
│  │  │  └─ logs_panel.py     # Live-Logs
│  │  └─ docs/
│  │     └─ troubleshooting.md
│  └─ freecrypto_feeds/        # Crypto Market Data Dashboard
│     ├─ manifest.json
│     ├─ plugin.py
│     ├─ widgets.py
│     ├─ api_client.py
│     ├─ models.py
│     ├─ hermes_bridge.py
│     ├─ settings_schema.json
│     ├─ assets/icon.svg
│     └── docs/troubleshooting.md
│
├─ tests/
│  ├─ conftest.py
│  ├─ test_phase5a_self_repair.py     # Self-Repair Unit-Tests
│  ├─ test_phase5a_integration.py     # Phase 5A Integrationstests
│  ├─ test_phase5b_hermes.py          # Hermes WebUI + Bridge (21 Tests)
│  ├─ test_phase5b1_native_hermes.py  # Native Hermes Plugin (52 Tests)
│  └─ fixtures/broken_plugins/        # 14 Failure-Fixtures
│
└─ runtime/                    # Runtime-Verzeichnisse (Phase 5A)
   ├─ backups/
   ├─ rollback_points/
   ├─ repair_sessions/
   ├─ patches/
   └─ reports/

Nächstes: Phase 5C — AI Patch Planner

Feature Priorität
AI Patch Planner (strukturierte Repair-Pläne via HermesBridge) 🔴 Hoch
Patch-Anwendung (validierte git apply) 🔴 Hoch
Rollback aktivieren (_PHASE_5A = False) 🔴 Hoch
Request Cancellation (echte HTTP-Cancellation) 🟡 Mittel
Report-System (JSON-Reports in runtime/reports/) 🟡 Mittel
CLI-Tool (lastbrowser repair) 🟡 Mittel
Dashboard Integration (Repair-Status-Widget) 🟢 Niedrig
Hermes Auto-Heal (Auto-Restart bei Crash) 🟢 Niedrig

Dokumentation

Die vollständige Dokumentation liegt im docs/-Verzeichnis:

Bereich Dateien
Architektur architecture.md, runtime-architecture.md
Plugin-System plugin-system.md, plugin-runtime.md, plugin-ui-system.md, settings-schema-system.md, developer-mode.md
Plugin Distribution plugin-distribution.md, plugin-api-versioning.md, plugin-testing.md, diagnostics.md, store-system.md
Self-Repair self-repair-safety.md, backup-rollback-system.md, diff-workspaces.md, repair-readiness.md
Hermes hermes-runtime.md, hermes-bridge.md, hermes-webui-plugin.md, hermes-troubleshooting.md
Pläne phase{1-5}*-plan.md
Reviews reviews/phase4a-final-review.md, …4b…, …5a…, …5b…, …5b1

Lizenz

MIT License — siehe LICENSE.

Copyright (c) 2025-2026 Pup Cid


Autor

  • Pup Cid — Initialentwicklung und Architektur

Letzte Aktualisierung: 2026-05-14 · Phase 5B.1

About

Python/PySide6 Desktop-App: Plugin-basierte Runtime mit Hermes-Integration, Plugin-Store, Self-Repair Safety Core und nativem Hermes Plugin.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages