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:
@@ -1,7 +1,7 @@
|
||||
# Analyse & Umsetzungsrahmen: Linux-Fähigkeit von PolyTrader
|
||||
|
||||
**Stand:** 13.08.2026 · **Revision 5** (Avalonia-Portierung P5–P8 durch; offen sind Deploymentcenter, CI, systemd/Feldtest, WinForms-Ausbau)
|
||||
**Basis:** 8 Projekte auf `net10.0` (`PolyTrader.App` als `net10.0-windows` noch als Fallback), 450 Tests
|
||||
**Stand:** 22.08.2026 · **Revision 6** (Avalonia-Portierung P5–P8 durch, Deploymentcenter D-0–D-5 code-seitig durch, **WinForms ausgebaut**; offen sind CI, systemd/Feldtest und die Abnahmen)
|
||||
**Basis:** 7 Projekte auf `net10.0`, **alle plattformneutral** — kein `net10.0-windows` mehr im Repo. 476 Tests.
|
||||
|
||||
> **Als Nächstes:** die Integration des überarbeiteten **Deploymentcenters** (P3c). Sie ersetzt
|
||||
> **Lizenzverwaltung, Watchdog und Error-Reporting** grundlegend. Alles, was in diesem Dokument zu
|
||||
@@ -41,10 +41,10 @@
|
||||
| Frage | Antwort |
|
||||
|---|---|
|
||||
| Ist es machbar? | Ja, ohne architektonische Sackgassen. |
|
||||
| Was ist der Löwenanteil? | Die UI. ~8.300 LOC (34 % des Produktivcodes) hängen an WinForms. |
|
||||
| Was ist der Löwenanteil? | War die UI: ~8.300 LOC (34 % des Produktivcodes) hingen an WinForms. **Seit dem 22.08.2026 ist davon nichts mehr im Repo** — portiert nach Avalonia, Rest gelöscht. |
|
||||
| Was ist überraschend gut? | Die **gesamte Trading-Kernlogik ist bereits portabel**: kein einziger `DllImport`, keine Registry, keine WMI, keine DPAPI, keine `SpecialFolder`, saubere `Path.Combine`-Nutzung. Nethereum, Pomelo/EF, `HttpClient`, `ClientWebSocket`, AES-GCM laufen unverändert. |
|
||||
| Was war der teuerste Einzelpunkt? | Der **`PropertyGrid`-Ersatz** — erledigt, ersetzt durch den kategorisierten `SettingsEditor`. |
|
||||
| Gesamtaufwand | **~7–13 Personentage offen** (Stand 13.08.2026). Die UI-Portierung ist inhaltlich durch (P5–P8); offen sind nur noch **P3c Deploymentcenter**, **CI**, **systemd/Feldtest**, der **WinForms-Ausbau** und die Abnahme A5. |
|
||||
| Gesamtaufwand | **~4–9 Personentage offen** (Stand 22.08.2026). Die UI-Portierung ist inhaltlich durch (P5–P8), das Deploymentcenter code-seitig (D-0–D-5), der WinForms-Ausbau vollzogen. Offen sind noch **CI** (es gibt bis heute keinerlei Konfiguration), **systemd/Feldtest** sowie die Abnahmen **A5** und die Live-Abnahme des Deploymentcenters. |
|
||||
| Wichtigste Erkenntnis | Galt: „Für ~15 PT bekommst du 80 % des Nutzens." **Eingetreten und überholt** — die UI wurde nicht als Fallback eingefroren, sondern vollständig nach Avalonia portiert. Der Rückfallstand liegt im Tag `winforms-final`. Siehe [Abschnitt 7](#7-fahrplan). |
|
||||
|
||||
---
|
||||
@@ -406,7 +406,7 @@ Heute laufen Generic Host und `Application.Run` im **selben Prozess**; darunter
|
||||
| **Einfrieren** | Vor Beginn von L3 einen Git-Tag setzen (Vorschlag: `winforms-final`) und im Repo dokumentieren. Ab da keine Feature-Arbeit mehr an `Ui/` und den `Ui/`-Ordnern der Module. |
|
||||
| **Fallback im Ernstfall** | Tag auschecken, bauen, starten. Greift auf dieselbe MySQL zu — Anzeige und Einstellungen bleiben voll brauchbar. |
|
||||
| **Weiterentwicklung** | Läuft unverändert weiter — nur eben im **Trading-Kern**, der ab L2 headless auf Linux läuft. Eingefroren ist die *Oberfläche*, nicht die Funktion. |
|
||||
| **Endgültiger Ausbau** | Nach Abschluss von L4: `Ui/`-Ordner, `PolyTrader.App` als `WinExe`, alle `.Designer.cs`/`.resx`, `UseWindowsForms`, `favicon.ico`-Einbindung und `ApplicationConfiguration.Initialize()` entfernen. **~4.500 LOC generierter Designer-Code fallen ersatzlos weg.** |
|
||||
| **Endgültiger Ausbau** | ✅ **Vollzogen am 22.08.2026.** `Ui/`, `PolyTrader.App.csproj`, alle `.Designer.cs`/`.resx`, `UseWindowsForms`, `WinExe`, `favicon.ico` und `ApplicationConfiguration.Initialize()` sind entfernt; das Projekt ist aus `PolyTraderSharp.sln` genommen. Die PNG-Symbole sind **nicht** mitgelöscht, sondern nach `src/PolyTrader.App.Avalonia/Assets/` gewandert (der `avares://`-Pfad blieb gleich). |
|
||||
|
||||
**Wichtig für die Reihenfolge:** Damit der eingefrorene Stand überhaupt lauffähig bleibt, darf **P1 die WinForms-UI nicht kaputtmachen**. Beim Entkoppeln von Core und Modulen (Zielframework `net8.0`, `System.Drawing` raus) muss der WinForms-Zweig bis zum Tag baubar bleiben — praktisch heisst das: **erst taggen, dann P1 durchziehen**. Sonst ist der Fallback genau in dem Moment weg, in dem man ihn braucht.
|
||||
|
||||
@@ -443,9 +443,9 @@ Heute laufen Generic Host und `Application.Run` im **selben Prozess**; darunter
|
||||
| ~~**P8**~~ | ~~Modul-Fenster: CopyTrading, ResolutionFarming, Supervisor, Accounting~~ | — | ✅ **erledigt** (`669676a`, `7f0b05e`) |
|
||||
| **P9** | Tests ✅ (450 grün), `--smoke-ui` auf `Avalonia.Headless`, **Linux-CI fehlt vollständig** | — | **2–3 PT** |
|
||||
| **P10** | Deployment: systemd, TZ ✅, Logrotate, Feldtest im Zielland | — | **2–3 PT** |
|
||||
| **P11** | **WinForms endgültig ausbauen** (nach L4): `Ui/`, Designer-Dateien, `UseWindowsForms`, `WinExe` | — | **1 PT** |
|
||||
| **P3c** | **Deploymentcenter**: Lizenzverwaltung, Watchdog, Error-Reporting neu | ⬅️ **als Nächstes** | **2–4 PT** |
|
||||
| | **Summe (offen)** | | **7–13 PT** |
|
||||
| ~~**P11**~~ | ~~**WinForms endgültig ausbauen**: `Ui/`, Designer-Dateien, `UseWindowsForms`, `WinExe`~~ | — | ✅ **erledigt** (22.08.2026) |
|
||||
| **P3c** | **Deploymentcenter**: Lizenzverwaltung, Watchdog, Error-Reporting neu — D-0 bis D-5 code-seitig erledigt, **Live-Abnahme offen** | — | **Rest: Abnahme** |
|
||||
| | **Summe (offen)** | | **4–9 PT** |
|
||||
|
||||
*Personentage entwickelnder Arbeit. Mit Agentenunterstützung sinkt die Kalenderzeit deutlich; der Review- und Feldtest-Anteil (P9, P10) bleibt weitgehend gleich – bei einer Anwendung, die echtes Geld bewegt, ist das die richtige Reihenfolge.*
|
||||
|
||||
@@ -473,7 +473,7 @@ Rückversicherung im Tag `winforms-final`. Der aktuelle Engpass ist nicht mehr d
|
||||
| **L2** | ~~Headless-Einstiegspunkt~~ ✅ + systemd + Feldtest im Zielland | 2–4 PT | `--headless` existiert ([`App.Avalonia/Program.cs:41`](../src/PolyTrader.App.Avalonia/Program.cs)). Offen: systemd-Unit + Feldtest. **Trading läuft headless auf Linux.** ⭐ Meilenstein |
|
||||
| ~~**L3**~~ | ~~P5 + P6 + P7 (Charts, Shell, Core-Views)~~ | — | ✅ **erledigt** – Avalonia-Grundgerüst (`cd59e5c`), Dashboard mit LiveCharts2 (`0b8728b`), Settings (`4ba8149`), Terminal (`929fa20`), Dunkelmodus (`487ea44`) |
|
||||
| **L4** | ~~P8 (Modul-Fenster)~~ ✅ + P9 (**CI**) | 2–4 PT | Modul-Fenster portiert (`669676a`), Restlücken A1–A4 geschlossen (`7f0b05e`), 450 Tests grün. **Offen: es gibt keinerlei CI-Konfiguration** – weder `.github/workflows` noch `.gitea/workflows`. |
|
||||
| **L5** | P11 – WinForms endgültig aus dem Build entfernen | 1 PT | Erst nach Abnahme (A5). Keine Altlast mehr; ~4.500 LOC Designer-Code fallen weg, die 23 Build-Warnungen verschwinden mit |
|
||||
| ~~**L5**~~ | ~~P11 – WinForms endgültig aus dem Build entfernen~~ | — | ✅ **erledigt am 22.08.2026** (Frühjahrsputz). Vorgezogen vor die A5-Abnahme, weil der Rückfall-Tag `winforms-final` auf dem Server gesichert ist und A5 auch gegen einen Worktree dieses Tags geprüft werden kann. Ergebnis: 91 Dateien und ~4.500 LOC Designer-Code weg, Build-Warnungen von 23 auf 15 gesunken, `LicenseLabrador.Client` mit ausgebaut (D-6). |
|
||||
|
||||
### Reihenfolge-Begründung
|
||||
|
||||
|
||||
@@ -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`). |
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -713,22 +713,33 @@ Ursprünglich geplant, jetzt überholt:
|
||||
lauffähigen Installation, ohne dass eine Datei von Hand bearbeitet wird; `master.key` entsteht mit
|
||||
`600`; ein zweiter Start erzeugt **keinen** neuen Schlüssel.
|
||||
|
||||
### D-6 · Watchdog und LicenseLabrador ausbauen
|
||||
### D-6 · Watchdog und LicenseLabrador ausbauen ✅ Code-seitig erledigt (22.08.2026), Serverabschaltung offen
|
||||
|
||||
Entscheidung Richard (14.08.2026): kein Parallelbetrieb. Läuft **nach** D-1 und D-2, damit zu
|
||||
keinem Zeitpunkt beides fehlt.
|
||||
keinem Zeitpunkt beides fehlt. Umgesetzt im Frühjahrsputz vom 22.08.2026, gemeinsam mit dem
|
||||
WinForms-Ausbau (P11/L5) — beide Schnitte betrafen dieselben Dateien.
|
||||
|
||||
- `LicenseLabrador.Client` aus `PolyTrader.App.csproj` und `lib/nuget` entfernen, Quellen-Mapping
|
||||
in `nuget.config` von `LicenseLabrador.*` auf `Deploymentcenter.*` umstellen.
|
||||
- `Licensing/LicenseGate.cs`, `Ui/LicenseDialog.cs` (+ `.Designer.cs`) löschen — ersetzt durch die
|
||||
- [x] `LicenseLabrador.Client` aus `lib/nuget` entfernt; `PolyTrader.App.csproj` existiert nicht
|
||||
mehr. Quellen-Mapping in `NuGet.Config` trägt nur noch `Deploymentcenter.*`, `lib/nuget/README.md`
|
||||
beschreibt jetzt das Deploymentcenter-SDK.
|
||||
- [x] `Licensing/LicenseGate.cs` und `Ui/LicenseDialog.cs` gelöscht — ersetzt durch die
|
||||
Avalonia-Fassung aus D-2.
|
||||
- Alte `Watchdog*`-Felder aus `ServerSettings` und der Settings-Oberfläche entfernen (der
|
||||
Token-Button und die Statusanzeige wandern zum Deploymentcenter-Block).
|
||||
- Beide Umsetzungspläne als **abgelöst** kennzeichnen, `ANALYSE-Linux-Portierung.md` §5.2 und die
|
||||
Risikozeile R6 korrigieren (D-4 der Befunde: `ILicensePrompt` trägt die headless-Story nicht).
|
||||
- Serverseitig: `watchdog.mhdf.de` und `license.mhdf.de` abschalten, sobald die Live-Abnahme steht.
|
||||
Damit erledigen sich die beiden offenen Auflagen aus dem Altplan (Secrets rotieren, UTC/`NOW()`)
|
||||
von selbst — **nicht** vorher abschalten, sonst fehlt die Rückfallebene während der Abnahme.
|
||||
- [x] Beide Altpläne als **abgelöst** gekennzeichnet;
|
||||
[ANALYSE-Linux-Portierung.md](../ANALYSE-Linux-Portierung.md) auf Revision 6 gezogen (P11/L5
|
||||
erledigt), Leitfaden-Abschnitte B und C aufgelöst.
|
||||
- [x] **Abweichung vom Plan, bewusst:** Die `Watchdog*`-Felder in `ServerSettings` bleiben stehen.
|
||||
Die Planzeile „alte Watchdog-Felder entfernen" stammt aus der Zeit vor D-1 — D-1 hat die Felder
|
||||
jedoch **umgewidmet** (sie zeigen jetzt auf die Deploymentcenter-API) statt sie zu ersetzen. Sie
|
||||
werden von `WatchdogHeartbeatService`, `DeploymentcenterOptions`, dem Einstellungsfenster und den
|
||||
Tests aktiv benutzt; ein Entfernen wäre ein Rückschritt gewesen.
|
||||
- [ ] **Serverseitig offen:** `watchdog.mhdf.de` und `license.mhdf.de` abschalten, sobald die
|
||||
Live-Abnahme steht. Damit erledigen sich die beiden offenen Auflagen aus dem Altplan (Secrets
|
||||
rotieren, UTC/`NOW()`) von selbst — **nicht** vorher abschalten, sonst fehlt die Rückfallebene
|
||||
während der Abnahme.
|
||||
|
||||
**Abnahme-Kriterium erfüllt:** Die Solution baut ohne LicenseLabrador-Paket (0 Fehler, 476 Tests
|
||||
grün), und `grep -ri licenselabrador` findet im Code nur noch historische Erwähnungen in
|
||||
Kommentaren und Plandokumenten.
|
||||
|
||||
**Abnahme:** Die Solution baut ohne LicenseLabrador-Paket, `grep -ri licenselabrador` findet im
|
||||
Code nur noch historische Erwähnungen in Plandokumenten, und `server_settings.xml` enthält keine
|
||||
|
||||
@@ -1,8 +1,34 @@
|
||||
# Umsetzungsplan: Watchdog & LicenseLabrador in PolyTrader einbinden
|
||||
|
||||
> # ⛔ ABGELÖST — nicht mehr umsetzen
|
||||
>
|
||||
> **Dieser Plan wird nicht ausgeführt.** Watchdog und LicenseLabrador als getrennte Dienste
|
||||
> sind durch das **Deploymentcenter** ersetzt, das Lizenz, Monitoring, Fehler-Reporting und
|
||||
> Updates in einem Dienst zusammenfasst.
|
||||
>
|
||||
> **Maßgeblich ist stattdessen:**
|
||||
> [UMSETZUNGSPLAN-Deploymentcenter-Integration.md](./UMSETZUNGSPLAN-Deploymentcenter-Integration.md)
|
||||
>
|
||||
> **Vollzogen am 22.08.2026** (Schnitt D-6): `LicenseLabrador.Client` ist aus `lib/nuget` und
|
||||
> aus dem Quellen-Mapping in `NuGet.Config` entfernt, `Licensing/LicenseGate.cs` und
|
||||
> `Ui/LicenseDialog.cs` sind mit dem WinForms-Ausbau gelöscht. Im Code findet sich
|
||||
> LicenseLabrador nur noch als historische Erwähnung in Kommentaren und Plandokumenten.
|
||||
> Die `Watchdog*`-Felder in `ServerSettings` sind **bewusst geblieben**: Schnitt D-1 hat sie
|
||||
> auf die Deploymentcenter-API **umgewidmet** statt sie zu ersetzen — sie sind in Gebrauch.
|
||||
>
|
||||
> **Serverseitig noch offen:** `watchdog.mhdf.de` und `license.mhdf.de` abschalten. Das darf
|
||||
> erst geschehen, wenn die Live-Abnahme des Deploymentcenters steht — vorher fehlt die
|
||||
> Rückfallebene. Mit dem Abschalten erledigen sich auch die beiden Auflagen aus diesem Plan
|
||||
> (Watchdog-Secrets rotieren, UTC/`NOW()`-Mix).
|
||||
>
|
||||
> Der Text unten bleibt als **Verlaufsdokument** stehen. Die Dateiverweise darin zeigen auf
|
||||
> inzwischen gelöschte Pfade; ihr Inhalt liegt im Git-Tag `winforms-final`.
|
||||
|
||||
---
|
||||
|
||||
> Stand: 2026-07-28 · Grundlage: Review von `J:\Softwareprojekte\WatchDog` und
|
||||
> `J:\Softwareprojekte\LicenseLabrador`.
|
||||
> **Reihenfolge ist bindend:** Teil A (Blocker in den Fremdprojekten) vor Teil B (Einbindung).
|
||||
> **Reihenfolge war bindend:** Teil A (Blocker in den Fremdprojekten) vor Teil B (Einbindung).
|
||||
> Wer B ohne A baut, bindet bekannte Lücken fest in den Produktivbetrieb ein.
|
||||
|
||||
---
|
||||
|
||||
Reference in New Issue
Block a user