Commit Graph
65 Commits
Author SHA1 Message Date
RichardandClaude Opus 4.8 88fc982089 Phase 5.3-ClosedTrade: ClosedTrade -> Modul + ICopyTradeLogRepository
- ClosedTrade (+ ClosedTradeRow) nach src/PolyTrader.Modules.CopyTrading/Models/.
- Neues ICopyTradeLogRepository (+ Mongo-Impl) im Modul: EnsureIndexes, Exists,
  Insert, Find(predicate) auf der closed_trades-Collection.
- closed_trades-Zugriffe der Modul-Services vom App-Shim auf das Repo umgestellt:
  TraderMonitorService, PersistenceService, PolymarketWssClient, TraderAnalyticsJob.
  Shim-/DB-Usings dort entfernt.
- TraderMonitorService nutzt kein _db mehr (auch die uebrigen _db-Guards aus 3d
  entfernt, da Repos immer verfuegbar sind). Verhaltensneutral.
- frm_main (UI) + Program.cs (BsonDocument-Cleanup) bleiben auf _db.
- Build 0 Fehler.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-01 22:27:22 +02:00
RichardandClaude Opus 4.8 3be75c0f05 Phase 5.3-WSS (1/2): Core-WSS-Verbindungsklasse extrahiert
- Neu in PolyTrader.Core.Streaming: IBlockchainWssClient + AlchemyWssClient
  (+ Factory) und Modelle (BlockchainWssSubscription/LogSubscriptionFilter/
  BlockchainLogEvent). Domänen-agnostisch: Connect, eth_subscribe, Receive-Loop,
  Decode; Reconnect/Gating/Filter bleiben beim Aufrufer.
- AlchemyWebsocketService (weiter in App) nutzt jetzt den Core-Client via Factory:
  baut Filter aus getrackten Trader-Wallets, konsumiert OnLog, triggert Poll.
  ExecuteAsync-Reconnect/Backoff/Gating unverändert. Verhaltensneutral.
- Factory in DI registriert.
- Build 0 Fehler.

Naechster Teil: Modul-Listener (eigener Key+Filter) nach Modul-Umzug.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-01 22:15:34 +02:00
RichardandClaude Opus 4.8 f5e7eaf2d5 Phase 5.3a: MarketSyncService in den Core
- Nach dem TradingState-Split nutzt MarketSyncService nur noch Core-State
  (MarketCache) + IMarketRepository + Core-API-Service -> sauber in den Core.
- Ungenutzten Shim-Import entfernt. Build 0 Fehler.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-01 20:31:35 +02:00
RichardandClaude Opus 4.8 f8d395b2a3 Phase 5.2: TradingState-Split (Core-State vs. CopyTradingState)
- Core TradingState (in Core): globale Schalter, Accounts, MarketCache, GlobalPnl.
- Neuer CopyTradingState (im Modul): Traders, MasterTraderPositions,
  TraderAnalyticsCache, TotalCopyTrades/GetNextTradeId, PendingOrderTimestamps,
  SixSharesMinimum.
- 10 Konsumenten umgestellt (Program, frm_main, CopyTradingEngine,
  TraderMonitor, Alchemy, WSS, Snapshot, StartupHydration, beide Analytics-Jobs):
  Modul-Felder von _state.* auf _copyState.* umgeleitet, CopyTradingState via DI.
- Rein mechanische Feld-Umleitung, keine Logikänderung. Build 0 Fehler.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-01 20:09:50 +02:00
RichardandClaude Opus 4.8 55050a19e5 Phase 5.1: Modul-Modelle in das CopyTrading-Modul
- TrackedTrader, TraderAnalyticsResult, MasterTraderHistoryRecord nach
  src/PolyTrader.Modules.CopyTrading/Models/ (Namespace beibehalten).
- Ungenutzte Shim-/DB-Usings entfernt (BsonId kommt transitiv via Core).
- Build bestätigt: kein Core-Code referenziert diese Modelle (saubere Grenze).
- Build 0 Fehler. Voraussetzung für den CopyTradingState (5.2).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-01 19:59:40 +02:00
RichardandClaude Opus 4.8 0ffc0413c8 Phase 4.7: MullvadVpnService + ThreemaService in den Core
- Beide Services nach Core (nutzen nur TerminalLogger/ServerSettings/JobManager,
  keine DB/TradingState/Modul-Typen).
- Threema-ProjectReference von App -> Core umgehängt (App nutzte die Lib nur
  über ThreemaService).
- Microsoft.Extensions.Hosting.Abstractions als Core-Paket (BackgroundService).
- Toten Stub services/mullvad.cs gelöscht; Mullvad-DB-Usings entfernt.
- Build 0 Fehler.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-01 19:51:52 +02:00
RichardandClaude Opus 4.8 9c068b448e Phase 4.6a: CopySignal + PolymarketApiService in den Core
- CopySignal als generischer Core-Typ (Namespace PolyTraderSharp.Models beibehalten).
- PolymarketApiService nach Core (nutzt nur TerminalLogger + HttpClient,
  keine DB); ungenutzte DB-Usings entfernt.
- Build 0 Fehler.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-01 19:47:28 +02:00
bergmandClaude Opus 4.8 a1ce3fcbbc Phase 4.4: IPolyTraderModule-Contract im Core
- Modul-Vertrag (Name, DbPrefix, RegisterServices, StartAsync/StopAsync)
  unter src/PolyTrader.Core/Modularity/.
- UI-Teil (RegisterUi/IModuleUiHost) bewusst auf Phase 5 vertagt.
- Microsoft.Extensions.Configuration.Abstractions als Core-Paket.
- Build 0 Fehler.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-01 18:35:53 +02:00
bergmandClaude Opus 4.8 8c126cd1ba Phase 4.3: ServerSettings in den Core verschoben
- ServerSettings-Model nach src/PolyTrader.Core/Models/ (Namespace beibehalten).
- Keine DB-Abhängigkeit; reines Verschieben. Build 0 Fehler.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-01 18:34:26 +02:00
bergmandClaude Opus 4.8 eebe992feb Phase 4.2: PolymarketClobClient in den Core verschoben
- CLOB-Client nach src/PolyTrader.Core/Services/ (Namespace beibehalten).
- Nutzt keinerlei DB/Shim (verifiziert) -> DB-Usings entfernt.
- Nethereum.Web3 6.1.0 als Core-Paket (EIP712-Signing).
- Reines Verschieben, KEINE Logikänderung (clob.md); Build 0 Fehler.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-01 16:58:44 +02:00
bergmandClaude Opus 4.8 9039af8d5e Phase 4.1: Basis-Infrastruktur in den Core (Logging, JobManager)
- TerminalLogger, JobManager, JobStatusRow nach Core verschoben
  (Namespaces PolyTraderSharp.Services/.Models beibehalten).
- TerminalLogger: ungenutzte DB-Usings entfernt.
- Toten Stub services/logging.cs (internal class Logging) gelöscht.
- Build 0 Fehler.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-01 16:53:38 +02:00
bergmandClaude Opus 4.8 ed5d6e35e0 Phase 3b: Repository-Schicht im Core (Interfaces + Mongo-Impl + DI)
- Interfaces: IAccountRepository, IMarketRepository, IPositionRepository
  (IPositionRepository kapselt das Collection-per-Account-Muster).
- Mongo-Implementierungen bilden die bisherige Shim-Semantik 1:1 mit direkten
  MongoDB.Driver-Aufrufen nach (kein App-Shim-Bezug im Core).
- AddCorePersistence()-Erweiterung + Registrierung in Program.cs.
- Noch keine Call-Sites umgestellt; Build 0 Fehler.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-01 16:29:51 +02:00
bergmandClaude Opus 4.8 8b3264f240 Phase 3a: Core-Domänenmodelle in den Core verschoben
- AccountState, Position, MarketData nach src/PolyTrader.Core/Models/
  (Namespace PolyTraderSharp.Models beibehalten → keine Consumer-Änderung).
- AccountState: ungenutzte usings (MongoDB.Driver, PolyTraderSharp.Extensions)
  entfernt (Core darf App-Shim nicht referenzieren).
- MongoDB.Driver 2.24.0 als Core-Paket (für BsonId-Attribute).
- Build 0 Fehler.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-01 16:27:28 +02:00
bergmandClaude Opus 4.8 e312fbbaa7 Phase 2: Konfiguration externalisieren (appsettings.json + IOptions)
- Neue Core-Klasse DatabaseOptions (Sektion "Database"), gebunden via IOptions.
- appsettings.json im App-Projekt (Mongo-Connection + DB-Name), wird in den
  Output kopiert.
- Program.cs: hart codierte "mongodb://localhost:27017" und "PolyTraderDB"
  durch konfigurierte Werte ersetzt.
- Startup-Cleanup-Hack aus dem Kopf von Main() entfernt und gekapselt nach
  dem Host-Build über die konfigurierte DB neu verankert.
- Solution-Build 0 Fehler; appsettings.json im Output verifiziert.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-01 16:22:37 +02:00
bergmandClaude Opus 4.8 4f130ff6dd Phase 1: Multi-Projekt-Gerüst (Core / Modules.CopyTrading / App)
- WinForms-Projekt umbenannt zu PolyTrader.App (AssemblyName=PolyTrader.App,
  RootNamespace bleibt PolyTraderSharp → .resx/Namespaces intakt).
- Neue leere Class-Libraries: src/PolyTrader.Core, src/PolyTrader.Modules.CopyTrading
  (net8.0-windows; CopyTrading mit UseWindowsForms für spätere UI-Tabs).
- Referenzen: App → Core + CopyTrading; CopyTrading → Core; Core → nichts.
- App-csproj: src/** vom Globbing ausgeschlossen (keine Glob-Kollision).
- Noch KEIN Code verschoben — App unverändert lauffähig.
- Solution-Build: alle 4 Projekte, 0 Fehler.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-01 15:14:26 +02:00