Commit Graph
11 Commits
Author SHA1 Message Date
RichardandClaude Opus 4.8 b6dff7e210 UI: Dashboard-Ueberarbeitung (Scope-Filter, KPIs, ScottPlot-Charts, Tradehistorie)
Das Dashboard ist keine stumpfe Trade-Liste mehr, sondern ein Auswertungs-Fenster:
- ToolStrip (via Designer): Scope-Filter Konto/Modul/Live-Demo/Zeitraum + Aktualisieren.
- TabControl mit 2 Tabs:
  - Dashboard: KPI-Kacheln (Netto-PnL/Winrate/Trades/O-PnL/Profit-Faktor) + 3 Charts
    (Equity-Kurve, PnL je Modul, PnL je Tag) fuer den gewaehlten Scope.
  - Tradehistorie: gefilterte Trade-Liste (Spalten via Designer) + Suche + Gewinner/Verlierer.
- Charts via ScottPlot CORE-Paket (nur SkiaSharp, .NET-nativ) -> als Bitmap in PictureBoxen
  gerendert; KEINE OpenTK/.NET-Framework-Transitiven (bewusst nicht ScottPlot.WinForms).
- Auswertungslogik pur in TradeAnalytics (getestet). In-Memory-Filter auf gecachtem Recent-Set.
- Smoke-UI konstruiert die DashboardView jetzt direkt -> verifiziert das Chart-Rendering headless.

Build 0 Fehler, 331 Tests gruen, --smoke-ui: [OK] core.dashboard konstruiert (inkl. Charts).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-15 19:54:49 +02:00
RichardandClaude Opus 4.8 0aedddabe8 UI: Terminal-Kopierfunktion (Kontextmenue) + Jobs-Toolstrip (via Designer)
- TerminalView: ContextMenuStrip (Kopieren/Alles auswaehlen/Alles kopieren/Terminal leeren)
  am rtbTerminal - macht das Kopieren entdeckbar (Ctrl+C funktioniert zusaetzlich nativ).
- JobsView: ToolStrip 'toolStripJobs' (docked Top) mit Starter-Button 'Aktualisieren'
  (dgvJobs.Refresh) - weitere Job-Steuerelemente folgen nach und nach.
Beide via Designer (.Designer.cs), Logik im Code-Behind. Build 0 Fehler, --smoke-ui ok.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-15 09:39:35 +02:00
RichardandClaude Opus 4.8 4df07bd3d2 UI: Master-Key-Button (Settings, via Designer) + UI-Designer-WIP + Steuer-PDF
- Settings: neuer Toolbar-Button 'Master-Key erzeugen' (Tab General Settings, via Designer).
  Erzeugt zufaelligen 32-Byte-AES-Key -> master.key (gitignored), nur aktiv wenn KEIN Key
  existiert (Env-Var oder Datei), Lockout-Schutz + Backup-Warnung, danach deaktiviert.
- Einbezogen: laufende Designer-Umstrukturierung (SettingsView/LauncherForm: Button-Bilder
  aus Properties.Resources statt eingebettet; dgv_accountlist im Launcher; DashboardView.resx).
- docs/steuer: US-CPA-Fragebogen als PDF.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-15 09:27:34 +02:00
RichardandClaude Opus 4.8 87dd9a750d Phase 5-UI: Polymarket-Accounts-Tab (allgemeine Account-Verwaltung)
- tabPage2: DataGridView (Name/Wallet/Demo/Aktiv) + Toolstrip (Neuer Account/
  Loeschen) + PropertyGrid. Da AccountState jetzt general-only ist, zeigt das
  PropertyGrid automatisch nur die allgemeinen Felder (Wallet, API-Keys, Payouts).
- SettingsView.cs: Accounts laden, Auswahl -> PropertyGrid, Bearbeiten -> speichern
  (IAccountRepository + TradingState), Neu/Loeschen.
- Program.cs: Settings-View bekommt IAccountRepository + TradingState injiziert.
- Copytrading-Detail-Limits folgen im Modul-Account-View.
- Build 0 Fehler.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-03 10:35:20 +02:00
RichardandClaude Opus 4.8 37f9d0fae2 Phase 5-UI: SettingsView an Nutzer-Redesign angepasst (TabControl + Toolstrip)
- Altes pnlTop-Panel samt btnSave/btnReload entfernt.
- Neue Toolstrip-Buttons verdrahtet: btn_save -> Speichern, btn_loadsettings -> Neu laden.
- Nutzer-Layout (TabControl: General Settings / Polymarket Accounts, toolStrip1/2,
  PropertyGrid in tabPage1) beibehalten.
- Build 0 Fehler.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-03 10:23:53 +02:00
RichardandClaude Opus 4.8 ad5ba34b56 Phase 5-UI: Views sind echte Forms + Launcher-Offen-Status
- ModuleView liefert jetzt ein Form (CreateForm statt CreateControl); die 4 Views
  (Terminal, Settings, Jobs, Dashboard) von UserControl auf Form umgestellt
  (im Designer als Fenster bearbeitbar). ViewHostForm entfernt.
- ShellUiHost verwaltet offene Forms: Einzelinstanz, bereits offenes Fenster wird
  in den Vordergrund geholt, OpenStateChanged-Event.
- LauncherForm: Fenster-Buttons an View-IDs gebunden; offene Fenster werden am
  Button markiert (Checked), erneuter Klick holt das Fenster nach vorn.
- Build 0 Fehler.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-03 09:19:13 +02:00
RichardandClaude Opus 4.8 4f6c7fdb86 Phase 5-UI: Generischer Core-Trade-Log + modulübergreifendes Dashboard
- Core: TradeRecord (Modell) + ITradeLogRepository (+ Mongo-Impl, Collection
  "trade_log"), in AddCorePersistence registriert. Realisiert den generischen,
  modulneutralen Trade-Log aus Entscheidung #2.
- Dual-Write: PersistenceService schreibt geschlossene Copy-Trades zusaetzlich als
  generischen TradeRecord (ModuleName="CopyTrading").
- Neue DashboardView (UserControl + Designer): zeigt die letzten Trades ALLER
  Module (GetRecent) mit Konto-Aufloesung + Kurzauswertung (Gesamt-PnL, Anzahl,
  Aufschluesselung je Modul). btn_dashboard im Launcher, View "core.dashboard".
- Build 0 Fehler.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-02 12:16:20 +02:00
RichardandClaude Opus 4.8 8e2a92ad2e Phase 5-UI: JobsView extrahiert + Trading-Toggle in die Quickbar
- Neue JobsView (UserControl + Designer): DataGridView an JobManager.Jobs,
  Run-Now/Aktiv-Verhalten wie bisheriger Jobs-Tab. btn_jobs in toolstrip_windows,
  als View "core.jobs" registriert.
- Trading-Toggle aus frm_main uebernommen: btn_liveTrading + btn_demoTrading in
  toolstrip_quickbar; Zyklus Inactive->SellOnly->Active mit Farb-/Textstatus,
  synchron zum TradingState (auch bei externen Aenderungen via 1s-Timer).
- Build 0 Fehler.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-02 11:58:15 +02:00
RichardandClaude Opus 4.8 f112668147 Phase 5-UI: Launcher auf Toolstrip-Modell + SettingsView (Designer-first)
- LauncherForm: lstView-Ansatz entfernt (lstViews/colName/pnlBottom/btnOpen raus).
  Fenster werden ueber toolstrip_windows-Buttons geoeffnet/fokussiert:
  btn_settings -> Settings, btn_terminal -> Terminal (Bindung per stabiler View-ID).
- statusStrip_info: Live-Status (Trading, Modul-Anzahl, API WSS/Polling) via 1s-Timer.
- toolstrip_quickbar bleibt fuer Schnellaktionen (Trading an/aus) reserviert.
- Neue SettingsView (UserControl + Designer): ServerSettings-PropertyGrid +
  Speichern/Neu laden; Verhalten wie bisheriger Settings-Tab. In Program.cs registriert.
- Build 0 Fehler.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-02 11:44:47 +02:00
RichardandClaude Opus 4.8 1781d71983 Phase 5-UI: Designer-first — Launcher + TerminalView
- LauncherForm ist jetzt ein echtes Designer-Formular (LauncherForm.Designer.cs):
  ListView + MenuStrip + Button im Designer platziert/bearbeitbar. Zur Laufzeit
  werden nur noch ListView-Eintraege/Gruppen (DATEN) aus den registrierten Views
  befuellt + Events verdrahtet — keine Steuerelemente mehr im Code erzeugt.
- TerminalView: Combo-Items, Button-Text/-Farbe in den Designer verlagert;
  Konstruktor verdrahtet nur noch Verhalten.
- Inhaerente Ausnahme (Modul-System): die konkreten View-Eintraege sind Daten,
  keine vorplatzierbaren Controls -> daher datengetriebene ListView.
- Build 0 Fehler.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-02 11:23:23 +02:00
RichardandClaude Opus 4.8 3503bbb5d4 Phase 5-UI (Proof-of-Pattern): Launcher-Shell + erste extrahierte View (Terminal)
- Ui/LauncherForm: schlanke Startleiste, rendert Buttons dynamisch aus den
  registrierten Views (gruppiert) + Legacy-Button fuer das alte Tab-frm_main.
- Ui/ViewHostForm: generisches Host-Fenster fuer eine View (Control docked fill).
- Ui/ShellUiHost : IModuleUiHost: sammelt Views, oeffnet Einzelinstanz-Fenster.
- Ui/Views/TerminalView: erste designbare View (UserControl + Designer.cs);
  Terminal-Logik aus frm_main extrahiert; DI via Initialize(TerminalLogger)
  -> parameterloser Ctor bleibt fuer den VS-Designer nutzbar.
- Program.cs: startet jetzt LauncherForm (statt frm_main), registriert die
  Terminal-View; App bleibt via Legacy-Button voll bedienbar.
- Build 0 Fehler.

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