Commit Graph
6 Commits
Author SHA1 Message Date
RichardandClaude Opus 5 dd8da3fd3f Arbeitsstand gesichert: Deploymentcenter-Integration (D-0 bis D-5) und Einfenster-Shell
Sicherungscommit vor dem Aufraeumen des Repos, damit nachvollziehbar bleibt,
welcher Stand vor der Bereinigung galt. Build gruen, 476 Tests gruen.

Zwei Straenge, die sich ueber .csproj, Program.cs und appsettings.json
ueberschneiden und darum gemeinsam abgelegt werden:

Deploymentcenter-Integration (P3c, Plan D-0 bis D-5 code-seitig fertig):
- Deploymentcenter.Client 2.5.0 als lokales Paket, Source-Mapping erweitert
- DeploymentcenterOptions, DeploymentcenterErrorReporter, LicenseGate/LicenseCli
- WatchdogHeartbeatService auf die Deploymentcenter-API umgestellt
  (version, os, checks, metrics, status stopped)
- Security: MasterKeyResolver, SecretRedactor, FilePermissions
- Directory.Build.props mit zentraler Version 0.1.0 (Packager-Versionsdisziplin)
- deploy/: Packager-Vorlage und systemd-Unit; echte Zugangsdaten bleiben
  ueber .gitignore aussen vor
- setup.json fuer die Erstinstallation
- UMSETZUNGSPLAN-Deploymentcenter-Integration.md; ANALYSE-Linux-Portierung.md
  verweist auf den neuen Plan

Einfenster-Shell (UI-Redesign):
- ShellWindow + ShellNavModel als Seitenleisten-Shell
- WindowMenuBar und WindowMenuModel entfallen
- Modul- und Kernfenster auf die Shell-Einbettung angepasst

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-22 10:42:22 +02:00
RichardandClaude Opus 4.8 b8d2c8094b Feinschliff: restliche Copytrading-Services ins Modul + EF-Logging gedrosselt
- MasterTraderAnalyticsJob + PersistenceService von services/ nach
  src/PolyTrader.Modules.CopyTrading/Services/ verschoben und in
  CopyTradingModule.RegisterServices registriert (reiner Move). Beide sind
  copytrading-spezifisch (Master-Trader-Historie bzw. Persistenz der
  geschlossenen Copytrades ueber den Modul-Channel; Dual-Write in Core-Log bleibt).
- Program.cs: die zwei Hosted-Service-Registrierungen entfernt.
- appsettings.json: Logging-Sektion ergaenzt -> EF-Core-Command-Logging auf
  Warning (kein SQL-Spam mehr; --smoke-ui zeigt 0 "Executed DbCommand"-Zeilen).

Damit liegt die gesamte Copytrading-Logik im Modul; App/Core enthalten nur noch
generische Infrastruktur + Startup-Hydration + CLI-Tools.

Build gruen, 48 Tests gruen, --smoke-ui gruen.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-06 19:47:15 +02:00
RichardandClaude Opus 4.8 b951b912f4 Phase 6 (Stufe 6): MongoDB vollstaendig entfernt
- Legacy-Form stillgelegt: frm_main(.Designer/.resx) + frm_analytics(.Designer/.resx)
  geloescht, 'Open Legacy'-Menue aus LauncherForm entfernt.
- Program.cs: IMongoDatabase-Registrierung + closed_trades-Cleanup weg;
  Trade-Nummerierung liest jetzt hoechste TradeId aus ICopyTradeLogRepository.
- StartupHydrationService: Mongo-/Bson-Fallback entfernt (Settings kommen aus
  dem Repo; fehlende Accounts erhalten Default-Settings).
- Alle Mongo*Repository (Core 4 + Modul 4) geloescht; DI-Zweige auf EF/MySQL
  reduziert (AddCorePersistence, CopyTradingModule).
- ConfigMigrator: Mongo-Pfad (Run/MigrateSettings) entfernt; nur noch
  RunFromJson + VerifyMySql (kein Mongo-Treiber mehr).
- Modelle: [BsonId] entfernt (EF-Keys via HasKey); ObjectId-Defaults -> Guid.
- LiteDB-Shim (MongoDbLiteDBShim) geloescht; MongoDB.Driver- + LiteDB-Pakete
  aus App/Core entfernt; stale usings + user-sichtbare Strings bereinigt.
- DatabaseOptions/appsettings.json: Mongo-Provider/Connection-Felder entfernt.
- Build gruen; --verify-mysql bestaetigt 3 Accounts/3 Settings/32 Trader/2344 Markets.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-05 18:34:17 +02:00
RichardandClaude Opus 4.8 d227d24ca8 Phase 6 (Stufe 5): Default-Provider auf MySQL + Readback-Verifikation
- appsettings.json: Database:Provider = "MySql" (voller Umstieg).
- ConfigMigrator.VerifyMySql + CLI --verify-mysql: liest Accounts,
  Settings, Trader, Markets aus MySQL zurueck.
- Verifiziert: 3 Accounts, 3 Settings, 32 Trader (23 aktiv),
  2344 Markets; Werte/AssignedAccountIds stimmen mit Exporten ueberein.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-05 14:59:39 +02:00
RichardandClaude Opus 4.8 d8cfdbf6be Phase 6 (Stufe 2): Core-EF-Repos + umschaltbare Registrierung
- EF-Implementierungen hinter den Core-Interfaces: EfAccountRepository,
  EfMarketRepository, EfPositionRepository, EfTradeLogRepository. Thread-safe via
  IDbContextFactory<CoreDbContext> (kurzlebiger Context je Operation).
- AddCorePersistence(DatabaseOptions): Provider "MySql" -> EF + DbContextFactory,
  "Mongo" -> Mongo-Repos. Program.cs uebergibt die aufgeloesten Optionen.
- appsettings.json Provider-Default = "Mongo" (App bleibt vorerst auf MongoDB,
  kein Verhaltenswechsel). MySQL-Connection liegt in gitignorierter appsettings.Local.json.
- Build 0 Fehler.

Naechste Stufen: Modul-Context + EF-Repos (inkl. trackers/mt_history), Config-Migration
Mongo->MySQL, dann Provider umschalten + Mongo entfernen.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-05 13:43:34 +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