Files
Predictalytics/STATUS.md
T
RichardandClaude Opus 5 1f230fe12c Fruehjahrsputz 2/2: Dokumentation auf den tatsaechlichen Stand gebracht
Die Plandokumente waren durchweg veraltet: 85 von 91 Punkten im
UMSETZUNGSPLAN standen auf offen, obwohl der Code sie enthielt, und in
FIXPLAN-UI-Ranglisten war keine einzige der 18 Aufgaben abgehakt, obwohl
beide zugehoerigen Commits laengst im Zweig stecken. Alles abschnittsweise
gegen den Code geprueft und die Haekchen gesetzt - mit Belegstellen, damit
die naechste Pruefung nicht wieder bei null anfaengt.

Neu: STATUS.md als Einstiegsseite - wo das Projekt steht, was fertig ist,
was offen ist, und was beim Aufraeumen bewusst stehengeblieben ist. CLAUDE.md
verweist darauf.

Nachgezogen:
* UMSETZUNGSPLAN.md - 66 Punkte abgehakt. Offen bleiben A4 (Strategie-
  Klassifikation), B2 (Secrets) sowie C3/D1/D2 (SQL-Arbeiten des Nutzers).
* FIXPLAN-UI-Ranglisten.md - abgeschlossen bis auf den als "Optional"
  markierten Pfeilrichtungs-Punkt.
* FIXPLAN-TODO.md - Teil D und F abgehakt; die Test-Baseline "16 gruen"
  auf die heutigen 126 korrigiert. Offen: F5 und zwei Tests aus F6.
* FIXPLAN-G-Speicher.md - G1 bis G4 als erledigt vermerkt, Baseline "39/1"
  korrigiert, Pfad auf die nicht mehr existierende WinFormsHost/appsettings.json
  richtiggestellt.
* docs/PLAN-Linux-Portierung.md - der Watchdog-Warnhinweis war ueberholt
  (DcHeartbeatService meldet an /api/watchdog/v1/ping). Abschnitt 11 empfahl
  noch, mit Phase 0 zu beginnen; jetzt benennt er Phase 5 und 6 als das, was
  wirklich aussteht. Die Randnotiz zu Zugangsdaten in LicenseGuard.cs ist
  gegenstandslos, die Datei laeuft ueber den Deploymentcenter.Client.

Zwei Befunde, die keine Aufraeumarbeit sind und deshalb nur dokumentiert
wurden - beide in STATUS.md Abschnitt 3:

1. In src/Predictalytics.Api/appsettings.json steht ein echter
   OpenRouter-API-Key im Klartext, versioniert seit 7045002. Nicht
   eigenmaechtig entfernt: ohne Rotation beim Anbieter bringt das nichts
   (die History behaelt ihn), wuerde aber die KI-Analyse abschalten.
   Der Schluessel muss zurueckgezogen und neu ausgestellt werden.
2. Die Portierung ist auf keinem Linux-System je ausgefuehrt worden. Die
   Verifikation vom 2026-08-08 lief unter Windows.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-23 12:30:42 +02:00

7.9 KiB
Raw Blame History

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 gemergedmain 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 04): .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.