4 Commits
Author SHA1 Message Date
RichardandClaude Opus 5 c75edfe841 Fortschrittsuebersicht an den Kopf der Roadmap
Stufe 0 und 1 sind abgeschlossen. Die Tabelle haelt fest, wo es weitergeht -
und dass Stufe 2 an einem Linux-System haengt, das bisher nicht zur Verfuegung
stand.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-24 14:12:43 +02:00
RichardandClaude Opus 5 97756f24b8 Roadmap 1.1: nach main gebracht, zehn Feature-Zweige entfernt
main war als Fast-Forward auf feature/linux-net10 zu ziehen; beide stehen jetzt
auf 402c372. Vor dem Push gegen einen vollstaendigen Rebuild geprueft:
warnungsfrei, 126 Tests gruen.

Die zehn Feature-Zweige der Analytik- und Portierungsarbeit sind lokal und auf
origin geloescht. Neun waren restlos in main enthalten (rev-list einzeln
geprueft). Der zehnte, fix-event-description-truncation, nur inhaltlich: sein
Fix und sein Regressionstest stecken seit cb58e09 in main, der Commit selbst
wurde nie gemergt - der Unterschied beschraenkte sich auf den Kommentartext und
ein static. Damit das Loeschen nichts vernichtet, haelt ihn jetzt der Tag
archiv/fix-event-description-truncation (8a8a353) fest.

feature/linux-net10 bleibt vorerst stehen und ist mit main identisch.

STATUS.md und ROADMAP.md entsprechend nachgezogen: Zweig-Uebersicht, Build gilt
jetzt als warnungsfrei, und die drei bestimmenden offenen Punkte sind neu
sortiert - der Linux-Erstlauf ist jetzt der groesste Block, der geloeschte
API-Schluessel nur noch der Hinweis, dass die KI-Analyse bis zum Hinterlegen
eines neuen Schluessels ruht.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-24 14:11:56 +02:00
RichardandClaude Opus 5 55daa2c9de Roadmap 0.1, 1.2 und 1.3: Key raus, Build warnungsfrei, Backfill eingegrenzt
0.1 OpenRouter-Schluessel aus appsettings.json entfernt. Laut Nutzer war er
bereits inaktiv, eine Rotation beim Anbieter also nicht mehr noetig. Das Feld
bleibt leer stehen, mit Hinweis daneben: der Schluessel gehoert in die
Umgebungsvariable OpenRouter__ApiKey, die ohnehin Vorrang hat.

Damit die Anwendung ohne Schluessel sauber laeuft, steigt OpenRouterApiClient
jetzt frueh aus, statt zu senden. Vorher haette jeder Analyseversuch einen 401
erzeugt - der als Error im Fehler-Stream des Deployment Centers gelandet waere,
worauf der Aufrufer die Fehlermeldung als JSON zu parsen versucht und einen
zweiten Fehler erzeugt haette. Der Zustand wird einmal als Warning gemeldet.
Die Konstante NotConfigured liegt im Interface, weil Application die
Infrastructure-Schicht nicht referenziert.

1.2 Alle acht Nullable-Warnungen behoben, der Build ist jetzt warnungsfrei.
Es waren durchweg Annotationsfragen, kein Verhalten aendert sich:
* TradeRepository (6x) - die Parameterliste nimmt bewusst null auf, damit
  nullable Spalten als SQL-NULL geschrieben werden. Jetzt List<object?>.
* TraderAnalyticsWorker - ThenInclude(o => o!.Market); der Lambda ist ein
  Ausdrucksbaum fuer EF und laeuft nie.
* PolymarketProvider - raw.Question ?? ""; TruncateMarketStrings normalisierte
  den Wert einen Schritt spaeter ohnehin auf "".

1.3 Der Kategorie-Backfill holte den gesamten Marktbestand samt Event in den
Speicher und verwarf den Grossteil sofort wieder. Die Einschraenkung auf
Maerkte mit gefuellten Event-Tags steht jetzt in der Abfrage statt in der
Schleife. Ergebnis unveraendert.

Dabei einen eigenen Fehler in der Roadmap korrigiert: dort stand, dieser
Backfill laufe "bei jedem Start". Das stimmt nicht - er gehoert zu
RunRecalculateAllTradersAsync, der manuellen Wartungsaktion, die nur auf
Knopfdruck laeuft. Die Startzeit war nie betroffen. Die falsche Aussage stand
auch in STATUS.md und ist dort ebenfalls richtiggestellt.

Build warnungsfrei, 126 Tests gruen.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-24 14:07:53 +02:00
RichardandClaude Opus 5 6975720dc6 Eine Roadmap statt neun Plandokumente; alte Plaene ins Archiv
Die offenen Punkte lagen ueber neun Dokumente verstreut, teils widersprechend,
teils mit Punkten, die laengst umgesetzt waren. ROADMAP.md fuehrt sie zusammen:
sechs Stufen, jeder Punkt gegen den Code geprueft.

Markierung ueber eine Legende, damit Konzepte nicht mit Aufgaben verwechselt
werden: dringend, eingeplant, Backlog, Konzept (durchdacht, aber bewusst nicht
eingeplant), liegt beim Nutzer, verworfen.

Stufen: 0 Sofort (OpenRouter-Key) - 1 Aufraeumen abschliessen (Merge nach main,
Nullable-Warnungen, Startup-Backfill) - 2 Portierung abschliessen (Linux-Erstlauf
und Verifikation, dann Deployment/CI) - 3 Analytik schaerfen (Strategie-
Klassifikation, Backtest-Harness, Track-Record im Score, Ranking) - 4 Daten-
haushalt (SQL des Nutzers) - 5 Ingest skalieren - 6 Monetarisierung vorbereiten.

Ein Anhang haelt fest, was geprueft und bewusst NICHT auf die Roadmap kam, damit
es nicht versehentlich wieder als Aufgabe auftaucht (Azuro/Limitless, die
Marketing-Seiten, Kaltarchiv, EF Core 10).

Archiv: FIXPLAN-DONE, FIXPLAN-G-Speicher, FIXPLAN-TODO, FIXPLAN-UI-Ranglisten,
UMSETZUNGSPLAN sowie ANALYSE-Linux-Portierung, PLAN-Linux-Portierung,
PLAN-Architektur-WebUI-Backend und PLAN-DatenIngest-Skalierung liegen jetzt
unter docs/archiv/ mit einer README, die jedes Dokument einordnet. Sie bleiben
als Begruendungs- und Detailquelle - die Roadmap nennt jeden Punkt knapp, die
Herleitung steht dort.

Dabei aufgefallen: die beiden nie gepflegten Plaene (Architektur, DatenIngest)
zeigten 40 offene Punkte, von denen die Haelfte umgesetzt war - Read/Control-
Split, /api/capabilities, CORS-Whitelist, Egress-Kanaele mit Cooldown und
Per-Kanal-Limiter, Ingest-Tiering. Nachgeprueft, abgehakt und mit Statusblock
eingeordnet, sonst waere das Archiv selbst eine Fehlerquelle.

Was dabei nur teilweise umgesetzt war, ist als Roadmap 5.3 aufgenommen
(Health-Statistik je Kanal, multi-homed pruefen, DB-Guard, Plausibilitaets-
pruefung), ebenso der nie durchgefuehrte Audit auf versteckte Writes in
Read-Endpunkten (6.1). Header-Rotation ist als verworfen markiert statt offen
zu bleiben: Verschleierung gegenueber Polymarket riskiert genau den Zugang, auf
dem das Projekt aufsetzt.

STATUS.md beschreibt jetzt nur noch den Ist-Stand und verweist fuer die offenen
Punkte auf die Roadmap, damit nichts doppelt gepflegt wird. CLAUDE.md nennt
beide Einstiege.

Build gruen, 126 Tests gruen, keine toten Links.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-23 18:46:00 +02:00