Fruehjahrsputz: WinForms ausgebaut (P11/L5), LicenseLabrador abgeloest (D-6)

Das Repo enthaelt ab jetzt ausschliesslich plattformneutralen Code. Build gruen
(0 Fehler), 476 Tests gruen, Linux-Publish der Avalonia-App verifiziert.
Rueckfallebene ist der Tag winforms-final, der jetzt auch auf dem Server liegt.

WinForms endgueltig ausgebaut (P11/L5):
- PolyTrader.App.csproj aus PolyTraderSharp.sln genommen und geloescht
- Ui/, Models/, Licensing/, services/, Properties/, Resources/icons/,
  Program.cs, favicon.ico entfernt - rund 4.500 LOC generierter Designer-Code
- Root-appsettings.json entfernt: exaktes Duplikat der Avalonia-Kopie, die die
  App tatsaechlich liest. Zwei Dateien mit gleichem Inhalt laufen frueher oder
  spaeter auseinander.
- Kein net10.0-windows mehr im Repo; Build-Warnungen von 23 auf 15 gesunken
  (die CS0169 aus den Designer-Resten sind weg)

PNG-Symbole gerettet statt geloescht:
Die Avalonia-App band sie per ..\..\Resources\*.png aus dem Repo-Root ein und
haette sie mitverloren. Sie liegen jetzt in src/PolyTrader.App.Avalonia/Assets/,
wo sie hingehoeren. Der avares-Pfad "Assets/<datei>.png" bleibt unveraendert -
in der gebauten Assembly nachgeprueft.

LicenseLabrador abgeloest (D-6):
- LicenseLabrador.Client aus lib/nuget entfernt, Quellen-Mapping in
  NuGet.Config auf Deploymentcenter.* reduziert, lib/nuget/README.md neu
- Bewusste Abweichung vom Plan: die Watchdog*-Felder in ServerSettings bleiben.
  D-1 hat sie auf die Deploymentcenter-API umgewidmet statt sie zu ersetzen;
  sie werden aktiv benutzt. Die Planzeile stammte aus der Zeit davor.

Weitere Altlasten:
- agentspace/ (30 Dateien: WinForms-Designer-Patcher, fix_mongo.py nach der
  MySQL-Migration, tmp/test/scratch-Skripte) entfernt
- Ideen-fuer-Mittwoch.txt entfernt - Inhalt ist laengst umgesetzt
- tote .gitignore-Regel fuer agentspace/antigravity/ entfernt
- lokal entfernt (nicht versioniert): MongoDB/-Exporte, data.db, .bak-Datei

Dokumentation nachgezogen:
- ANALYSE-Linux-Portierung.md auf Revision 6, P11/L5 als erledigt
- LEITFADEN: Abschnitt B vollstaendig aufgeloest, A5 prueft ab jetzt gegen
  einen Worktree des Tags statt gegen den Arbeitsbaum
- UMSETZUNGSPLAN-Watchdog-LicenseLabrador-Integration.md als ABGELOEST
  gekennzeichnet, D-6 im Deploymentcenter-Plan auf den Iststand gezogen

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Richard
2026-08-22 10:58:43 +02:00
co-authored by Claude Opus 5
parent dd8da3fd3f
commit bf8048b82a
124 changed files with 115 additions and 10619 deletions
+23 -11
View File
@@ -249,27 +249,39 @@ echten Daten durchgeklickt**. Layout-Details siehst du erst im Gebrauch:
- Splitter-Positionen (Copytrading Master-Trader, Supervisor Dossiers)
- Ob die KPI-Kacheln bei acht Stück (Accounting) sinnvoll umbrechen
**Vorgehen:** App starten, jedes Fenster öffnen, mit `winforms-final`-Screenshots vergleichen.
**Vorgehen:** App starten, jedes Fenster öffnen, mit der alten Oberfläche vergleichen.
### B — Bewusst zurückgestellt (NICHT anfassen)
> **Seit dem Frühjahrsputz am 22.08.2026** liegt die WinForms-Fassung nicht mehr im
> Arbeitsbaum. Zum Vergleich entweder die Bildbeschreibung in
> [UI-SPEZIFIKATION-WinForms.md](./UI-SPEZIFIKATION-WinForms.md) heranziehen oder den alten
> Stand in einem getrennten Arbeitsbaum auschecken — das Repo bleibt dabei unberührt:
>
> ```bash
> git worktree add ../polytrader-winforms winforms-final
> ```
>
> Danach dort `dotnet build PolyTrader.App.csproj` und starten. Aufräumen mit
> `git worktree remove ../polytrader-winforms`.
> **Stand 13.08.2026:** Die Deploymentcenter-Integration steht unmittelbar bevor und ersetzt
> **Lizenzverwaltung, Watchdog und Error-Reporting** noch einmal grundlegend. Alles, was unten
> steht, wird davon berührt — fass es nicht an, sonst ist es Wegwerfarbeit.
### B — Ehemals zurückgestellt · ✅ mit der Deploymentcenter-Integration aufgelöst
| Was | Warum |
> **Stand 22.08.2026:** Dieser Abschnitt ist abgearbeitet. Die Deploymentcenter-Integration
> (D-0 bis D-5) ist code-seitig umgesetzt, und mit dem Frühjahrsputz vom 22.08.2026 ist das
> WinForms-Projekt aus dem Repo entfernt. Die Tabelle bleibt als Verlaufsspur stehen.
| Was | Stand heute |
|---|---|
| **Lizenzdialog** (`LicenseDialog`) | Hängt am alten LicenseLabrador-SDK, das durch die Deploymentcenter-Anbindung ersetzt wird. Die Schaltfläche Lizenz prüfen / setzen …" fehlt deshalb im Einstellungsfenster. |
| **Lizenz-Startprüfung** (`LicenseGate`) | In der Avalonia-App **bewusst nicht verdrahtet**. Konsequenz, die man kennen muss: der Avalonia-Build setzt derzeit **gar keine Lizenz durch** — alle Module laufen ungeprüft. In der WinForms-Fassung ([`Program.cs`](../Program.cs)) gibt es das Gate weiterhin. Kommt mit dem Deploymentcenter neu. |
| **Watchdog-Heartbeat** | `WatchdogHeartbeatService` **ist** in der Avalonia-App registriert und läuft. Wird vom Deploymentcenter abgelöst — keine Erweiterungen mehr investieren. |
| **WinForms-Projekt entfernen** | Erst wenn die Avalonia-Fassung abgenommen ist. Betrifft `PolyTrader.App` und `Ui/`. |
| **Lizenzdialog** (`LicenseDialog`) | ✅ Entfallen. Das WinForms-Fenster ist mit dem Ausbau gelöscht; die Lizenzeingabe liegt jetzt im Avalonia-Einstellungsfenster (D-2). |
| **Lizenz-Startprüfung** (`LicenseGate`) | ✅ Neu gebaut in [`Licensing/LicenseGate.cs`](../src/PolyTrader.App.Avalonia/Licensing/LicenseGate.cs) gegen das Deploymentcenter (D-2). Der frühere Hinweis „setzt gar keine Lizenz durch" gilt nicht mehr. |
| **Watchdog-Heartbeat** | `WatchdogHeartbeatService` ist auf die Deploymentcenter-API umgestellt (D-1) — inklusive `version`, `os`, `checks`, `metrics` und `status: "stopped"`. Die `Watchdog*`-Felder in `ServerSettings` wurden dabei **umgewidmet, nicht ersetzt**, und sind weiterhin in Gebrauch. |
| **WinForms-Projekt entfernen** | ✅ Erledigt am 22.08.2026 (P11/L5). `PolyTrader.App.csproj`, `Ui/`, `Models/`, `Licensing/`, `services/`, `Properties/`, `Resources/icons/`, `Program.cs` und `favicon.ico` sind gelöscht, das Projekt ist aus der Solution genommen. Rückfallebene: Git-Tag `winforms-final` (liegt auch auf dem Server). |
### C — Kleinere Folgepunkte (kein Blocker)
| Was | Befund |
|---|---|
| Logging kennt `AppTimeZone` nicht | [`TerminalLogger.cs:23`](../src/PolyTrader.Core/Services/TerminalLogger.cs) stempelt mit `DateTime.Now`, und der Launcher liest die Tagesdatei mit `DateTime.Now`. Schreiber und Leser stimmen also überein — **kein Fehler**. Beide ignorieren aber die in P2 eingeführte konfigurierbare Zeitzone, sodass auf einem UTC-Linuxserver mit Anzeigezone `Europe/Berlin` die Dateigrenzen nicht zur angezeigten Uhrzeit passen. Beim Headless-Schritt (L2) mitbehandeln. |
| Ungenutzte Designer-Felder | Der Solution-Build wirft 23 Warnungen, überwiegend `CS0169` aus WinForms-Designer-Resten. Verschwinden mit dem WinForms-Ausbau von selbst. |
| Ungenutzte Designer-Felder | ✅ Erledigt. Mit dem WinForms-Ausbau (22.08.2026) sind die `CS0169`-Warnungen verschwunden; der Solution-Build wirft noch **15** Warnungen, alle aus dem Avalonia-Projekt (`CS8618` in Fenster-Konstruktoren, je einmal `CS8848` und `CS8602`). |
---