main war als Fast-Forward auf feature/linux-net10 zu ziehen; beide stehen jetzt auf402c372. Vor dem Push gegen einen vollstaendigen Rebuild geprueft: warnungsfrei, 126 Tests gruen. Die zehn Feature-Zweige der Analytik- und Portierungsarbeit sind lokal und auf origin geloescht. Neun waren restlos in main enthalten (rev-list einzeln geprueft). Der zehnte, fix-event-description-truncation, nur inhaltlich: sein Fix und sein Regressionstest stecken seitcb58e09in main, der Commit selbst wurde nie gemergt - der Unterschied beschraenkte sich auf den Kommentartext und ein static. Damit das Loeschen nichts vernichtet, haelt ihn jetzt der Tag archiv/fix-event-description-truncation (8a8a353) fest. feature/linux-net10 bleibt vorerst stehen und ist mit main identisch. STATUS.md und ROADMAP.md entsprechend nachgezogen: Zweig-Uebersicht, Build gilt jetzt als warnungsfrei, und die drei bestimmenden offenen Punkte sind neu sortiert - der Linux-Erstlauf ist jetzt der groesste Block, der geloeschte API-Schluessel nur noch der Hinweis, dass die KI-Analyse bis zum Hinterlegen eines neuen Schluessels ruht. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
128 lines
6.7 KiB
Markdown
128 lines
6.7 KiB
Markdown
# 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 beschreibt den **Ist-Stand**. Was ansteht, steht in
|
||
> [`ROADMAP.md`](ROADMAP.md); die abgelösten Plandokumente liegen unter
|
||
> [`docs/archiv/`](docs/archiv/).
|
||
|
||
---
|
||
|
||
## 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 Hauptzweig ist `main`; die Portierung auf .NET 10 und Avalonia ist dort seit dem
|
||
2026-08-24 angekommen (`402c372`). `feature/linux-net10` steht auf demselben Stand.
|
||
|
||
| | |
|
||
|---|---|
|
||
| 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 und **warnungsfrei** |
|
||
|
||
### 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 archivierten Plandokumenten
|
||
unter [`docs/archiv/`](docs/archiv/).
|
||
|
||
* **Kernanalytik** ([`archiv/UMSETZUNGSPLAN.md`](docs/archiv/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** ([`archiv/FIXPLAN-G-Speicher.md`](docs/archiv/FIXPLAN-G-Speicher.md)): budgetabhängiges Retention-Fenster,
|
||
Burst-Kompaktierung, Per-Kategorie-Edge.
|
||
* **Kategorie-Erkennung** ([`archiv/FIXPLAN-TODO.md`](docs/archiv/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** ([`archiv/FIXPLAN-UI-Ranglisten.md`](docs/archiv/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** ([`archiv/PLAN-Linux-Portierung.md`](docs/archiv/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
|
||
|
||
Die offenen Punkte stehen vollständig und nach Reihenfolge sortiert in
|
||
**[`ROADMAP.md`](ROADMAP.md)** — hier nur die drei, die den Blick aufs Ganze bestimmen:
|
||
|
||
1. **Die Portierung ist auf keinem Linux-System je gelaufen.** Der Code ist plattformneutral
|
||
gebaut, die Ende-zu-Ende-Prüfung vom 2026-08-08 lief aber unter Windows. Solange das
|
||
aussteht, ist „läuft unter Linux" eine Annahme. Roadmap Stufe 2 — der größte offene Block.
|
||
2. **Die Strategie-Klassifikation ist faktisch wirkungslos** — zwei Signale, der Großteil
|
||
der Trader landet auf `Unknown`, und die Logik steht doppelt da. Roadmap 3.1.
|
||
3. **Die KI-Analyse ist ohne Schlüssel abgeschaltet.** Der alte OpenRouter-Schlüssel ist
|
||
entfernt (er war inaktiv); ein neuer gehört in die Umgebungsvariable `OpenRouter__ApiKey`,
|
||
nicht in `appsettings.json`. Bis dahin überspringt die Anwendung die Analyse mit einer
|
||
Warnung, alles andere läuft normal. Roadmap 0.1.
|
||
|
||
---
|
||
|
||
## 4. Zweige
|
||
|
||
Aufgeräumt am 2026-08-24. Es gibt nur noch zwei, beide auf `402c372`:
|
||
|
||
* **`main`** — der Hauptzweig, aktuell.
|
||
* **`feature/linux-net10`** — identisch mit `main`, bleibt vorerst stehen.
|
||
|
||
Die zehn Feature-Zweige der Analytik- und Portierungsarbeit sind lokal und auf origin
|
||
gelöscht. `fix-event-description-truncation` war der einzige, dessen Commit nie gemergt
|
||
wurde (nur sein Inhalt, seit `cb58e09`); er ist als Tag
|
||
`archiv/fix-event-description-truncation` festgehalten.
|
||
|
||
---
|
||
|
||
## 5. Bewusst stehengelassen
|
||
|
||
Beim Aufräumen geprüft und **nicht** entfernt, weil Löschen hier Funktionsverlust wäre und
|
||
nicht Entrümpelung. Dieselbe Liste steht im Anhang der [`ROADMAP.md`](ROADMAP.md), damit sie
|
||
nicht versehentlich als Aufgabe wieder auftaucht:
|
||
|
||
| 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**. Entscheidung steht aus, siehe Roadmap 3.2. |
|
||
| `wwwroot/landing.html`, `wwwroot/docs.html` | Marketing-Seiten mit Preis-Abschnitt, vom Dashboard aus nicht verlinkt. Passen zur später angedachten Monetarisierung. |
|
||
| 65 Migrationsdateien | Die Schemahistorie. Zusammenfassen ginge, ist aber riskant — siehe Roadmap 4.4. |
|
||
|
||
*(Ein hier zuvor notierter Nebenbefund — der Kategorie-Backfill lade beim Start alle Märkte
|
||
in den Speicher — war in zwei Punkten falsch: er läuft nicht beim Start, sondern nur in der
|
||
manuellen Aktion „Recalculate All Traders", und die Abfrage ist seit dem 2026-08-24
|
||
eingeschränkt. Siehe Roadmap 1.3.)*
|