# Predictalytics — Stand des Projekts > Bestandsaufnahme vom **2026-08-23**, erstellt beim Frühjahrsputz. Jede Aussage hier ist > gegen den Code geprüft, nicht aus den Plandokumenten übernommen — die waren zu diesem > Zeitpunkt durchweg veraltet. > > Dieses Dokument ist die Einstiegsseite. Die Detailpläne bleiben bestehen und tragen > jetzt jeweils oben einen eigenen Statusblock. --- ## 1. Wo wir stehen Predictalytics analysiert Polymarket-Trader auf ihre Eignung fürs Copytrading. Die Anwendung ist **funktional vollständig und läuft im Betrieb**: 151.094 Trader und 38,2 Mio. Trades in der Produktivdatenbank (Stand 2026-08-08). Der aktuelle Zweig ist `feature/linux-net10`. Er trägt die Portierung auf .NET 10 und Avalonia und ist **noch nicht nach `main` gemerged** — `main` steht neun Commits zurück. | | | |---|---| | Zielframework | net10.0, ein einziges für alle Projekte | | Oberfläche | Avalonia 12.1.1 (Windows + Linux), zusätzlich ein Headless-Modus | | Datenzugriff | EF Core **9** (bewusst; Pomelo hat keinen EF-10-Provider), 32 Migrationen | | Tests | **126 grün, 1 bewusst übersprungen** | | Build | fehlerfrei, 8 Nullable-Warnungen (siehe Abschnitt 5) | ### Aufbau ``` Predictalytics.Domain 1.321 Z. Entities, Enums, Repository-Interfaces Predictalytics.Application 3.036 Z. Analytik, Scoring, Kalkulatoren Predictalytics.Infrastructure 4.966 Z. EF-Kontext, Repositories, Provider (+65 Migrationsdateien) Predictalytics.Worker 2.449 Z. 13 Hintergrunddienste Predictalytics.Api 896 Z. Minimal-API-Endpunkte + WebUI (3.247 Z. HTML/JS/CSS) Predictalytics.Hosting 1.972 Z. Plattformneutraler Kern: Kestrel, Worker, Lizenz, Heartbeat Predictalytics.Shell 1.305 Z. Avalonia-Bedienhülle Predictalytics.Application.Tests 3.216 Z. 126 Tests ``` `Predictalytics.Hosting` hängt an einem **Schwester-Repo**: `Deploymentcenter` muss neben dem Predictalytics-Checkout liegen, sonst bricht der Build mit einer erklärenden Meldung ab. --- ## 2. Was fertig ist Alles Folgende ist im Code belegt — die Belegstellen stehen in den jeweiligen Plandokumenten. * **Kernanalytik** (`UMSETZUNGSPLAN.md`, Phase 1): positionsbasierte PnL-Engine nach Average-Cost mit sauberer Behandlung jeder `TradeSide`, marktbasierte Win-Rate, Deep-Dive-Kennzahlen aus echter Preishistorie, Copytrading-Score aus gemessenem Alpha-Verfall gegen das Markt-Tape. * **Robustheit** (Phase 2): EF-Migrationen statt handgeschriebener `ALTER TABLE`, entkoppelte Scoring-Pipeline, Log-Retention, Testprojekt. Alle fünf Bugs aus dem Review-Pass vom 2026-07-01 sind behoben. * **Speicher-Haushalt** (`FIXPLAN-G-Speicher.md`): budgetabhängiges Retention-Fenster, Burst-Kompaktierung, Per-Kategorie-Edge. * **Kategorie-Erkennung** (`FIXPLAN-TODO.md`, Teil F): kanonische Tag-Tabelle, Rausch-Filter, Tag-Nachladen für On-Demand-Märkte, Offline-Backfill beim Start. * **HF-Trader-Tiering** (Teil D): `IngestMode` mit Hysterese, wöchentliche Biopsie, Aggregations-Buckets. * **Web-UI** (`FIXPLAN-UI-Ranglisten.md`): Showcase-Sektionen, serverseitige Sortierung und Filterung. * **Copytrading-Analytik**: Co-Movement samt Clusterung, Strategie-Drift, Edge-Freshness, Copy-Portfolio, Insider-Feed — alle fünf Vorschläge der Roadmap sind umgesetzt und in diesem Zweig enthalten. * **Portierung** (`docs/PLAN-Linux-Portierung.md`, Phasen 0–4): .NET 10, extrahierter Hosting-Kern, Avalonia-Shell, abgesicherte Steuerendpunkte, plattformfeste Kultur- und Log-Pfade. Der WinForms-Host ist entfernt. * **Betriebsanbindung**: Lizenz, Watchdog, UpdateService, Fehler-Stream und Bugtracker laufen alle über das Deployment Center. --- ## 3. Was offen ist Nach Dringlichkeit: ### 3.1 ⚠️ OpenRouter-API-Key liegt im Klartext im Repository `src/Predictalytics.Api/appsettings.json` enthält einen **echten** OpenRouter-Schlüssel, versioniert seit Commit `7045002` und damit auf dem Gitea-Server. **Zu tun:** Den Schlüssel bei OpenRouter zurückziehen und neu ausstellen. Ihn nur aus der Datei zu entfernen genügt nicht — der Git-Verlauf behält ihn. Anschließend über die Umgebungsvariable `OpenRouter__ApiKey` setzen; eine Codeänderung braucht es dafür nicht, `WebApplication.CreateBuilder` liest Umgebungsvariablen bereits mit Vorrang. Der Schlüssel wurde bewusst **nicht** eigenmächtig entfernt: ohne Rotation bringt das keinen Sicherheitsgewinn, würde aber die KI-Strategieanalyse stillschweigend abschalten. ### 3.2 Die Portierung ist unter Linux nie gelaufen Phase 5 (Deployment, systemd/Container, Reverse Proxy, CI) und Phase 6 (Verifikation) des Portierungsplans sind unangetastet. Der Code ist plattformneutral gebaut, aber **auf keinem Linux-System je ausgeführt worden**. Die Ende-zu-Ende-Prüfung vom 2026-08-08 lief unter Windows. Solange das aussteht, ist „läuft unter Linux" eine Annahme, kein Befund. ### 3.3 A4 — Strategie-Klassifikation Der einzige größere unerledigte Block aus Phase 1. `StrategyType` entsteht weiterhin aus zwei Signalen — `avgSize > 10000` ergibt `Whale`, `hedgingRate > 30` ergibt `Hedger`, sonst `Bot`/`Unknown` — weshalb der Großteil der Trader strukturell auf `Unknown` landet. Die Bausteine für eine bessere Einstufung liegen fertig herum (`StrategyMetricsCalculator`, `TraderTraitCalculator`, `FingerprintSnapshotService`), sie speisen die Klassifikation nur nicht. Die Logik steht außerdem **doppelt** da: `AnalyticsService.cs:418` und `ScoringService.cs:89`. Beim Anfassen zusammenführen. ### 3.4 Kleinere Reste * `FIXPLAN-UI-Ranglisten.md`: Pfeilrichtung ▲/▼ in der aktiven Sortierspalte (war als „Optional" markiert). * `FIXPLAN-TODO.md` F5/F6: gezielter Nachlade-Schritt für fehlende Event-Tags, zwei Tests. * `UMSETZUNGSPLAN.md` C3 und D1/D2: DB-Arbeiten auf SQL-Ebene und die Entscheidung über einen Datenbank-Neustart — beides liegt beim Nutzer. --- ## 4. Zweige `feature/linux-net10` enthält alle Feature-Zweige. Die folgenden sind vollständig darin aufgegangen und können gelöscht werden: ``` copy-portfolio edge-freshness fingerprint-drift-foundation insider-follow-feed integration smart-money-comovement smart-money-graph ui-ranglisten-showcases ops-watchdog-license fix-event-description-truncation ``` `fix-event-description-truncation` war der einzige mit eigenem Stand; sein Fix und sein Regressionstest stecken seit Commit `cb58e09` im Hauptzweig. **Offen: der Merge nach `main`.** `main` steht neun Commits zurück und kennt weder die Avalonia-Shell noch die Deploymentcenter-Anbindung. --- ## 5. Bewusst stehengelassen Beim Aufräumen geprüft und **nicht** entfernt, weil Löschen hier Funktionsverlust wäre und nicht Entrümpelung: | Was | Warum es bleibt | |---|---| | `Providers/Azuro/AzuroProvider.cs` | Platzhalter mit `IsImplemented => false`. Die Worker überspringen ihn sauber; er kostet nichts und markiert den Ausbaupfad. | | `Providers/Limitless/` (3 Dateien) | **Voll implementierter** zweiter Marktplatz mit `IsImplemented => true`. Wird produktiv nur nicht bespielt. | | `Services/CopytradingBacktestHarness.cs` (123 Z.) | Fertig implementierter Latenz-Sweep, per DI registriert, aber **von niemandem aufgerufen**. Entweder anschließen oder bewusst verwerfen — beides eine fachliche Entscheidung. | | `wwwroot/landing.html`, `wwwroot/docs.html` | Marketing-Seiten mit Preis-Abschnitt, vom Dashboard aus nicht verlinkt. Passen zur später angedachten Monetarisierung. | | 8 Nullable-Warnungen | `TradeRepository.cs:94-102`, `PolymarketProvider.cs:357`, `TraderAnalyticsWorker.cs:152`. Bestehen seit Längerem; sie zu beheben ist Logikarbeit, kein Aufräumen. | | 65 Migrationsdateien | Die Schemahistorie. Zusammenfassen ginge, ist aber riskant und sollte eine bewusste Entscheidung sein. | Ein Nebenbefund ohne Handlungszwang: der Kategorie-Backfill beim Start (`PredictalyticsHost.cs:116`) lädt **alle** Märkte samt Event in den Speicher. Bei wachsendem Bestand wird das die Startzeit spürbar belasten.