feat: NCWF-5/6/7/8/9 chess analysis page and engine integration

- NCWF-5: scaffold /analysis route with ChessBoard viewer and navigation
- NCWF-6: FEN / PGN / Game-ID input form with depth selector
- NCWF-7: extend GameApiService with analyzePosition(); add AnalysisService
  with game-wide annotation pipeline; proxy /api/analysis -> :8087
- NCWF-8: EvalTimelineComponent — SVG win-chance chart per ply
- NCWF-9: AnnotatedMoveListComponent — quality labels (!! ! ?! ? ??)
  derived from win-chance delta

Also fix pre-existing app.spec.ts failure (missing provideHttpClient).
Apply project-wide prettier formatting pass.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Janis Eccarius
2026-06-10 15:55:14 +02:00
parent ae952d70b0
commit 8e2afb93f3
115 changed files with 6134 additions and 2378 deletions
+2 -2
View File
@@ -21,7 +21,7 @@ export class BoardSelectionService {
state: GameState | null,
currentSelection: BoardSelection,
onMovesLoaded: (moves: LegalMove[]) => void,
onError: (error: string) => void
onError: (error: string) => void,
): BoardSelection {
if (!state) {
return currentSelection;
@@ -52,7 +52,7 @@ export class BoardSelectionService {
},
error: () => {
onError('Could not load legal moves for selected square.');
}
},
});
return { selectedSquare: square, highlightedSquares: [], selectedSquareMoves: [] };