Modulfenster geprueft; Screenshot-Verfahren in die Testanleitung aufgenommen
CI / Build & Tests (Linux) (push) Canceled after 0s
CI / Plattformneutralität & Hygiene (push) Canceled after 0s

Nach der Lizenzaktivierung durch Richard sind alle vier Module aktiv - die
Anwendung meldet "Lizenz gueltig (online geprueft)", der Cache steht auf valid,
die Statusleiste zeigt vier Module. Damit ist D-2 live abgenommen, inklusive
HWID v2 auf Basis der Linux-machine-id. Ein Stueck von Roadmap A3 nebenbei.

Vier weitere Befunde:
- B-9: In den Datumsfeldern erscheint statt des Kalendersymbols ein Artefakt.
  Die Icon-Schriftart fehlt unter Linux, Fontconfig ersetzt sie stillschweigend
  durch eine andere. Nur im Bild zu sehen, nie im Log.
- B-10 (schwerwiegend, im vorigen Commit behoben): kein einziges DataGrid wurde
  gerendert.
- B-11: Spaltenueberschriften werden abgeschnitten, die letzten drei Spalten
  zeigen gar keinen Text mehr. Genau der A5-Punkt Spaltenbreiten: die festen
  Pixelwerte stammen aus der WinForms-Fassung mit schmalerer Schrift. Nicht
  behoben - Spaltenbreiten legt man sinnvoll erst mit echten Daten fest.
- B-12: Der Lizenzschluessel liegt im Klartext in server_settings.xml, obwohl
  die Projektkonvention Verschluesselung at-rest vorsieht und der Code beides
  unterstuetzt.

Positiv: Die acht KPI-Kacheln im Accounting brechen sinnvoll um - eine offene
A5-Frage ist damit beantwortet.

docs/TESTUMGEBUNG-Linux-VM.md Abschnitt 4.7 neu: wie ein Agent Oberflaechen
eigenstaendig begutachtet - Xvfb dauerhaft starten, mit xdotool navigieren, mit
import aufnehmen, Ausschnitte vergroessern, Kontraste nachmessen. Mit den
Lehren aus diesem Durchgang: grosszuegige Wartezeiten, nur eine Instanz
gleichzeitig (sonst kollidiert die zweite mit dem systemd-Dienst in der
Datenbank), und auf Zeichen achten, die falsch aussehen.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Richard
2026-08-26 22:31:41 +02:00
co-authored by Claude Opus 5
parent f13679fadd
commit a39ad67181
2 changed files with 177 additions and 6 deletions
@@ -290,7 +290,8 @@ bleiben. Für deren Prüfung wird ein Lizenzschlüssel gebraucht.
Im Einstellungsfenster steht bei **Mullvad CLI Path**:
```
C:\Program Files\Mullvad VPN␍esources\mullvad.exe
C:\Program Files\Mullvad VPN
esources\mullvad.exe
```
Auf einem Linux-System ist das sinnlos — dort liegt die ausführbare Datei üblicherweise unter
@@ -346,3 +347,106 @@ Frage, ob die acht KPI-Kacheln im Accounting sinnvoll umbrechen.
(HTTP/2 302), und die Lizenz-CLI läuft bereits — sie meldet eine **HWID v2 auf Basis der
Linux-machine-id**. Ein Aktivierungsversuch wäre damit zugleich die Live-Abnahme von **D-2**
(Roadmap A3).
---
# Nachtrag 3: Modulfenster (nach Lizenzaktivierung)
Richard hat den Lizenzschlüssel auf der VM hinterlegt. Die Anwendung meldet
**„Lizenz gültig (online geprüft)"**, `--license-status` zeigt `Cache: valid`, Statusleiste
**„Module: 4"**.
> **Damit ist D-2 live abgenommen** — Lizenzaktivierung gegen das echte Deploymentcenter,
> einschließlich HWID v2 auf Basis der Linux-`machine-id`. Ein Stück von Roadmap **A3** ist
> nebenbei erledigt.
## B-9 · Kalendersymbol wird als sinnlose Zahl dargestellt · offen
In den Datumsfeldern des Accounting-Fensters erscheint rechts statt eines Kalendersymbols ein
Artefakt, das wie **„26" mit einem Punkt darüber** aussieht — in beiden Feldern („Von", „Bis").
**Ursache:** Das Symbol stammt aus einer Icon-Schriftart, die unter Linux fehlt. Fontconfig
ersetzt sie stillschweigend durch eine andere Schrift, in der derselbe Zeichencode etwas ganz
anderes bedeutet. Ein typischer Portierungsfehler: Es gibt keine Fehlermeldung, das Zeichen ist
einfach falsch.
**Nur im Bild zu sehen, nie im Log.** Unter Windows sieht dieselbe Stelle korrekt aus.
## B-10 · Kein einziges DataGrid wurde gerendert · **behoben** · **schwerwiegend**
**Der wichtigste Befund dieses Durchgangs.**
**Beobachtet:** Sämtliche Tabellen der Anwendung waren leer — keine Zeilen, keine Spaltenköpfe,
nur eine leere Fläche. Betroffen: Master-Trader, Offene Trades, Geschlossene Trades,
Account-Übersicht, Ledger, Jobs, schlicht alle.
**Ursache:** `Avalonia.Controls.DataGrid` liegt in einem **eigenen Paket** und bringt sein Theme
**nicht** über `<FluentTheme />` mit. In `App.axaml` fehlte:
```xml
<StyleInclude Source="avares://Avalonia.Controls.DataGrid/Themes/Fluent.xaml" />
```
Die vorhandenen Anpassungen für `DataGrid` und `DataGridColumnHeader` in derselben Datei bauen auf
diesem Basis-Theme auf und liefen bisher ins Leere.
**Warum das monatelang unbemerkt blieb** — drei Gründe, die zusammenkamen:
1. **Keine Fehlermeldung, keine Bindungswarnung.** Das Steuerelement existiert, es zeichnet nur nichts.
2. **Die Konstruktionsprüfung bleibt grün**, weil das Fenster ja aufgebaut wird — sie prüft
Konstruktion, nicht Darstellung.
3. **Die Abnahme mit echten Daten (A5) stand noch aus.** Ohne Daten sieht eine leere Tabelle aus
wie fehlende Daten, nicht wie ein Fehler.
**Der Fehler war nicht linuxspezifisch** — er bestand unter Windows genauso. Er ist nur hier
aufgefallen, weil zum ersten Mal jemand systematisch hingesehen hat.
**Behoben und gegengeprüft:** Nach dem Fix erscheinen die Spaltenköpfe („#", „Wallet",
„Kategorie", „Trades", „Winrate", „PnL", „Copy-PnL" …). Vorher war die Fläche komplett leer.
## B-11 · Spaltenüberschriften werden abgeschnitten · offen
Direkt sichtbar, sobald B-10 behoben war — und **genau der A5-Punkt „Spaltenbreiten"**:
```
Trades (7 statt Trades (7T)
Winrate ' statt Winrate %
Copy-PnL statt Copy-PnL (30T)
```
Die letzten drei Spalten (Profit-Faktor, Ø PnL/Trade, Copy-Trades) zeigen **gar keinen Text
mehr** — für sie reicht die Breite des Fensterbereichs nicht.
**Ursache:** Die festen Pixelbreiten in
[`CopyTradingWindow.axaml`](../../src/PolyTrader.App.Avalonia/Views/Modules/CopyTradingWindow.axaml)
(50, 170, \*, 110, 50, 90, 90, 100, 110, 100, 100, 90) stammen aus der WinForms-Fassung. Die dort
verwendete Schrift war schmaler als die Avalonia-Standardschrift, sodass dieselben Werte jetzt
nicht mehr ausreichen.
**Nicht behoben** — Spaltenbreiten lassen sich sinnvoll erst mit echten Daten festlegen, sonst
optimiert man auf leere Zellen. Gehört zur A5-Abnahme.
## B-12 · Lizenzschlüssel liegt im Klartext · offen, klein
`--license-status` meldet: **„Gespeicherter Schlüssel (server_settings.xml): gesetzt (Klartext)"**.
Die Projektkonvention ist Verschlüsselung at-rest über den Master-Key (`enc:v1:` …), und der Code
unterstützt beides — `SecretProtection.Unprotect` reicht Klartext unverändert durch. `--license-set-key`
verschlüsselt aber offenbar nicht.
Ein Lizenzschlüssel wiegt weniger schwer als ein Wallet-Schlüssel, aber die Konvention sollte
einheitlich gelten. Zumal `server_settings.xml` auch den Watchdog-Token trägt.
## Bewertung der Modulfenster
| Fenster | Beobachtung |
|---|---|
| **Accounting** | **Die acht KPI-Kacheln brechen sinnvoll um** — sieben in einer Reihe, die achte darunter. Eine der offenen A5-Fragen ist damit beantwortet. Tabs, Datumswahl, Währungswahl und die drei Schaltflächen sitzen sauber |
| **Copytrading** | Alle vier Tabs vorhanden, die in A3 nachgerüsteten Schaltflächen „Neu" und „Löschen" sind da. Splitter funktioniert. Der rechte Bereich wirkt im Leerzustand zerrissen: „Zugewiesene Accounts" klebt am unteren Rand, weil es fest auf `DockPanel.Dock="Bottom"` mit `Height="220"` steht, während das Detailformular darüber leer bleibt. **Mit Daten neu zu beurteilen** |
| **ResolutionFarming, Supervisor** | Aufgenommen, aber im Leerzustand ohne Aussagekraft — beide leben von Tabellen, die vor B-10 ohnehin unsichtbar waren |
**Empfehlung:** Die Sichtprüfung der Modulfenster **mit echten Daten wiederholen**, sobald B-10
ausgeliefert ist. Erst dann lassen sich Spaltenbreiten (B-11), Splitter-Positionen und
Leerzustände sinnvoll beurteilen. Das Verfahren dafür ist dokumentiert und wiederholbar:
[TESTUMGEBUNG-Linux-VM.md](../TESTUMGEBUNG-Linux-VM.md) §4.7.