diff --git a/assets/StoreAssets/3To1Banner.af b/assets/StoreAssets/3To1Banner.af new file mode 100644 index 0000000..51785e0 Binary files /dev/null and b/assets/StoreAssets/3To1Banner.af differ diff --git a/assets/StoreAssets/3To1Banner.png b/assets/StoreAssets/3To1Banner.png new file mode 100644 index 0000000..eda10d4 Binary files /dev/null and b/assets/StoreAssets/3To1Banner.png differ diff --git a/assets/StoreAssets/RepositoryOpenGraph.af b/assets/StoreAssets/RepositoryOpenGraph.af new file mode 100644 index 0000000..a587f9f Binary files /dev/null and b/assets/StoreAssets/RepositoryOpenGraph.af differ diff --git a/assets/StoreAssets/RepositoryOpenGraph.png b/assets/StoreAssets/RepositoryOpenGraph.png new file mode 100644 index 0000000..e26f695 Binary files /dev/null and b/assets/StoreAssets/RepositoryOpenGraph.png differ diff --git a/docs/ROADMAP.md b/docs/ROADMAP.md index 360c809..57ce80a 100644 --- a/docs/ROADMAP.md +++ b/docs/ROADMAP.md @@ -1,22 +1,14 @@ # KoalaSync Roadmap -Dieses Dokument erfasst zukünftige technische Pläne und Optimierungen für das KoalaSync-System. +This document tracks future technical plans and optimizations for the KoalaSync system. --- -## Geplante Optimierungen & Technische Roadmap +## Planned Optimizations & Technical Roadmap -### 1. Behebung des synchronen Sortierungs-Flaschenhalses bei Auth-Failure LRU-Eviction -* **Kategorie**: Performance / DoS-Prävention -* **Hintergrund**: Der Server schützt Räume vor Brute-Force-Angriffen durch die Nachverfolgung fehlerhafter Anmeldeversuche (`failedAuthAttempts` Map). Bei Erreichen des Limits von 50.000 Einträgen wird ein Bereinigungsverfahren gestartet, das die gesamte Map in ein Array konvertiert und dieses per `Array.from().sort()` sortiert. -* **Problem**: Dies blockiert den Node.js-Main-Thread für mehrere Millisekunden und stellt einen potenziellen Denial-of-Service-Vektor (DoS) dar, wenn ein Angreifer gezielt Fehlversuche spamt. -* **Geplante Lösung**: - - Umstellung auf eine echte, $O(1)$-basierte LRU-Cache-Datenstruktur (z. B. doppelt verkettete Liste in Kombination mit einer Map). - - Alternativ: Ein vereinfachtes zeitbasiertes Ablauf-Verfahren oder ein schrittweises Löschen von Segmenten (Chunk-Eviction), um Blockaden des Main-Threads vollständig auszuschließen. - -### 2. Aufteilung großer JavaScript-Dateien (> 800 Zeilen) in kleinere Module -* **Kategorie**: Wartbarkeit / AI-Kontext-Optimierung -* **Hintergrund**: Einige Kern-Dateien wie `background.js` und `popup.js` sind stark angewachsen und überschreiten 800 Zeilen. Dies erschwert das manuelle Debugging und verbraucht unnötig viel Kontextfenster bei AI-Modellen. -* **Geplante Lösung**: - - Strukturierte Aufteilung der Logik in separate, fokussierte Module (z. B. UI-Renderer, Message-Router, Storage-Manager, Socket-Client). - - Nutzung von ES-Modulen zur sauberen Strukturierung und besseren Wiederverwendbarkeit. +### 1. Split large JavaScript files (> 800 lines) into smaller modules +* **Category**: Maintainability / AI Context Optimization +* **Background**: Core files like `background.js` and `popup.js` have grown large and exceed 800 lines. This makes manual debugging harder and wastes context window space for AI models. +* **Planned solution**: + - Structurally split logic into separate focused modules (e.g., UI Renderer, Message Router, Storage Manager, Socket Client). + - Use ES modules for clean separation and better reusability.