From 168c999fe2d5d399ecf3ba970430f34104ca2b41 Mon Sep 17 00:00:00 2001 From: bergm Date: Wed, 1 Jul 2026 17:00:20 +0200 Subject: [PATCH] Docs: Phase 4 Fortschritt (4.1/4.2) + CopySignal-Entanglement dokumentiert Co-Authored-By: Claude Opus 4.8 --- UMSETZUNGSPLAN-Modularisierung.md | 29 +++++++++++++++++++---------- 1 file changed, 19 insertions(+), 10 deletions(-) diff --git a/UMSETZUNGSPLAN-Modularisierung.md b/UMSETZUNGSPLAN-Modularisierung.md index fa85d18..8f26f5c 100644 --- a/UMSETZUNGSPLAN-Modularisierung.md +++ b/UMSETZUNGSPLAN-Modularisierung.md @@ -197,16 +197,25 @@ Eintrag in den Core-Log und einen Detaileintrag in seinen eigenen Log. + `ITraderRepository` (Modul), sobald `ClosedTrade`/`TrackedTrader` ins Modul wandern. - [ ] **Ergebnis (Ziel):** Kein direkter DB-Zugriff mehr außerhalb der Repository-Schicht. -### Phase 4 — Core herauslösen -- [ ] Infrastruktur-Services nach `PolyTrader.Core` verschieben: Persistenz, Settings, - JobManager, Logging, PolymarketApiService, PolymarketClobClient, PolymarketWssClient, - AlchemyWebsocketService, MullvadVpnService, ThreemaService, SnapshotService. -- [ ] `TradingState` aufteilen (Core-State vs. Modul-State, siehe 2.3). -- [ ] `IPolyTraderModule`-Contract + Modul-Registry + Bootstrap im Core. -- [ ] **Startup-Reihenfolge-Fix:** State-Hydration (heute `frm_main.LoadDatabaseAndState`) - in einen Core-Bootstrap ziehen, der **vor** dem Start der Module/Trading-Services läuft. - Trading-Services dürfen nicht mehr gegen leeren State anlaufen. -- [ ] **Ergebnis:** Core baut eigenständig; App nutzt Core. +### Phase 4 — Core herauslösen *(IN ARBEIT)* +- [x] **4.1** (`9039af8`): TerminalLogger, JobManager, JobStatusRow → Core; + toten Stub `logging.cs` gelöscht. +- [x] **4.2** (`eebe992`): PolymarketClobClient → Core (+ Nethereum.Web3), reines Verschieben. +- [ ] **4.3:** ServerSettings → Core (clean). +- [ ] **4.4:** `IPolyTraderModule`-Contract + Modul-Registry + Bootstrap im Core. +- [ ] **4.5 — Startup-Reihenfolge-Fix:** State-Hydration (heute `frm_main.LoadDatabaseAndState`) + in einen Core-Bootstrap ziehen, der **vor** den Trading-Services läuft. +- [ ] **Entanglement-Klärung nötig (siehe unten):** PolymarketApiService, MarketSyncService, + AlchemyWebsocketService, PolymarketWssClient hängen an `CopySignal`; `TradingState`-Split + hängt an `TrackedTrader`/`TraderAnalyticsResult`. Diese Moves + der Split erst nach der + Entscheidung, wo `CopySignal` wohnt (Core vs. Modul). +- [ ] **Ergebnis (Ziel):** Core baut eigenständig; App nutzt Core. + +> **Design-Fund (2026-07-01):** `PolymarketApiService.ParseBlockchainTransactionAsync` erzeugt +> `CopySignal`. Da `MarketSyncService`, WSS/Alchemy den ApiService nutzen, hängt eine ganze +> Infrastruktur-Kette an der Frage, ob `CopySignal` ein **Core**-Typ (generisches Markt-Trade- +> Signal) oder ein **Modul**-Typ ist. Unser ursprünglicher Plan sagte „Modul" — technisch wäre +> „Core" der Enkoppler. Entscheidung offen. ### Phase 5 — CopyTrading-Modul herauslösen - [ ] Nach `PolyTrader.Modules.CopyTrading` verschieben: TraderMonitorService,