Fruehjahrsputz: toter Code, ungenutzte Symbole, Dokumentenstand
Alles Entfernte war nachweislich ohne Aufrufer. Build, 198/198 Tests, Smoke-UI
und Daemon-Prueflauf sind vor und nach jedem Schritt gruen.
Code:
- AIModelService: Platzhalter, der immer 0.5 lieferte. Im DI registriert,
aber nie irgendwo injiziert. Ordner Core/AI faellt mit weg.
- CtApiWrapper + CtMeta: JSON-Modelle fuer einen {data,meta}-Umschlag, den
CapitolTrades nicht mehr liefert. Der Scraper deserialisiert seit laengerem
direkt List<CtTrade>.
- IBKRGatewayService: DisconnectAsync, InitBrokerageSessionAsync und
SearchStocksBySymbolAsync. Der Dienst selbst bleibt - er versorgt
Instrument-Sync, Kurshistorie und den Watchdog-Heartbeat.
- Je eine Methode ohne Aufrufer: BudgetService.GetAvailableBudgetAsync,
TradeHistoryService.GetRecentTradesAsync, CongressRepository.
GetAllTradeIdsAsync und .ResetHistoryImportAsync, IbkrMapping.DefaultPortFor,
SecretProtection.IsEncrypted.
- CongressRepository bekam damit einen LoggingService injiziert, den es nicht
mehr benutzt - Abhaengigkeit samt Konstruktorparameter raus.
Ressourcen:
- 17 Symbole der WinForms-Oberflaeche entfernt. Das Wildcard-Muster im csproj
nahm sie in die Binaerdatei auf, ViewIcons.cs bildet aber nur sieben
Schluessel ab. Resources/ enthaelt jetzt genau die sieben.
NuGet-Allowlist:
- Dapper und HtmlAgilityPack sind seit R3 bzw. R1 aus dem Projekt raus,
Microsoft.WindowsDesktop.* seit L5. Muster entfernt.
- MySqlConnector und Newtonsoft.Json stehen NUR transitiv in den
Projektdateien und wurden zuerst mitentfernt - ein Restore in einen leeren
Paket-Ordner scheiterte darauf mit NU1100. Beide wieder aufgenommen, jetzt
mit Begruendung, damit der naechste Aufraeumlauf nicht dieselbe Falle tritt.
Dokumente an den tatsaechlichen Stand angeglichen:
- ARCHITECTURE: R2 fuehrte die Umstellung auf IHostedService als offen, obwohl
R4 sie erledigt hat. L6 und die Deploymentcenter-Phase fehlten ganz.
- DC-Konzept: Schritte 0-8 standen auf "dieser Durchlauf", sind aber umgesetzt.
Jetzt je Schritt der wirkliche Stand - inklusive der beiden Halbfertigen:
Update-PRUEFUNG laeuft, das Anwenden hat keinen Aufrufer; die
Release-Pipeline steht, ist aber nie gelaufen. P5 ist eingetreten.
- Accounting und Supervisor trugen keinen Umsetzungsvermerk, obwohl beide
Module gebaut sind. Vermerk nach dem Muster des Linux-Konzepts ergaenzt,
mit dem, was jeweils offen bleibt.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
+29
-1
@@ -97,7 +97,7 @@ src/IBKRTrader.Hosting (classlib, net10.0) – AppHostBuilder + RunStartu
|
||||
- [x] `ShellUiHost` + `LauncherForm` (View-Buttons + gemeinsames Fenster-Menü); Core-Views (Workers/Logs/Settings) als eigene Fenster
|
||||
- [x] CongressTrading auf neuen `IModule`-Vertrag; Modul-Worker als `IWorker` registriert
|
||||
- [x] `--smoke-ui` Headless-Test (alle Views + Launcher konstruieren) → grün
|
||||
- [ ] **Offen (R4/R5):** Worker von `WorkerEngine`/`IWorker` auf `IHostedService` umstellen (aktuell noch WorkerEngine)
|
||||
- [x] Worker von `WorkerEngine`/`IWorker` auf `IHostedService` umgestellt — **in R4 erledigt**, die Zeile stand hier bis zum 2026-08-23 faelschlich noch offen
|
||||
|
||||
### R3 – Persistenz auf EF Core
|
||||
**Festgelegt:** EF-Migrationen **extern** (wie PolytraderSharp) – Schema per `dotnet ef database update`,
|
||||
@@ -163,6 +163,34 @@ Anzeigegerät mehr und ist damit erstmals Teil der CI.
|
||||
**Offen:** IB Gateway kopflos betreiben (IBC + Xvfb) – eigene Baustelle, unabhängig vom Code;
|
||||
LiveCharts2 kommt mit den neuen Modulen (Avalonia deshalb auf der 11er-Linie gepinnt).
|
||||
|
||||
### L6 – Namensgebung bereinigt ✅ (2026-08-07)
|
||||
- [x] `IBKRTrader.App.Avalonia` → **`IBKRTrader.App`**. Das Suffix gab es nur, solange daneben eine
|
||||
WinForms-`IBKRTrader.App` stand; seit L5 ist die weg. Assembly, Wurzel-Namensraum und die
|
||||
`avares://`-Ressourcen-URI sind mitgezogen, Git erkennt alles als Umbenennung.
|
||||
- [x] Die `global::Avalonia`-Qualifizierungen entfallen – sie waren nur nötig, weil der Namensraum
|
||||
`IBKRTrader.App.Avalonia` das gleichnamige Paket verdeckte.
|
||||
- [x] **Inhaltlich falsch gewordene Aussagen berichtigt** – das waren die eigentlichen Überbleibsel,
|
||||
nicht die Kommentare: `.agents/rules/grundregeln.md` schrieb weiterhin „C# .NET 10 WinForms",
|
||||
RichTextBox-Logging, `LauncherForm` und `PropertyGrid` vor und hätte die Portierung Stück für
|
||||
Stück rückgängig gemacht. Dazu Core-Kommentare (`LogEntry`, `IWorker`, `ModuleView`) und Doku.
|
||||
|
||||
### DC – Deploymentcenter-Integration ✅ (2026-08-23)
|
||||
Konzept und Begründung: [konzepte/KONZEPT-Deploymentcenter-Integration.md](konzepte/KONZEPT-Deploymentcenter-Integration.md).
|
||||
Schritte 0–8 der dortigen Reihenfolge sind umgesetzt; der Stand je Schritt steht in §9 dieses Konzepts.
|
||||
|
||||
- [x] Lizenz (Sperrbetrieb statt Abbruch), Watchdog-Heartbeat, Fehler-Stream inkl. globaler
|
||||
Ausnahmebehandler, Update-Prüfung mit `ReleaseCredentials`, `setup.json` + Release-Pipeline.
|
||||
Einbauort ist `IBKRTrader.Hosting/Deploymentcenter/` – den Host teilen sich Shell und Daemon.
|
||||
- [x] Vier Projekt-Befunde vorab bereinigt: Zugangsdaten aus `AppSettings` (P1), `AppPaths`-Rückfall
|
||||
unter Windows (P2), globale Handler (P3), Version zentral in `Directory.Build.props` (P4).
|
||||
- [ ] **Offen (P5):** Die Gitea-CI checkt das Schwester-Repo `Deploymentcenter` nicht aus. Solange
|
||||
das SDK als Cross-Repo-`ProjectReference` hängt, ist der CI-Lauf rot. Behebt sich mit
|
||||
Schritt 10 (SDK als NuGet-Paket in der Gitea-Registry).
|
||||
- [ ] **Offen (Schritt 9):** Bugtracker-Baustein – setzt voraus, dass das Projekt `ibkrtrader` im
|
||||
DC-WebUI angelegt ist und ein Token mit `bugtracker:report` vorliegt (serverseitige Handarbeit).
|
||||
- [ ] **Offen:** Das Anwenden eines gefundenen Updates ist nicht verdrahtet. `DcUpdateService.LaunchAgent`
|
||||
ist fertig und dokumentiert, es fehlt der Aufrufer, der danach geordnet herunterfährt.
|
||||
|
||||
---
|
||||
|
||||
## Kurskorrektur abgeschlossen (R1–R7)
|
||||
|
||||
Reference in New Issue
Block a user