FIXES (from comprehensive audit):
- NodePreview: complete rewrite — 380px left panel with document
summaries, commitment list, phase track visualization, scrollable.
Fixed children count bug (was showing [object Object]).
Slides in from left (not right) to not overlap branch handles.
- CommitmentForm: added required validation on eigenaar_id field
- MetroMap: wired custom metro node creation with form + POST /metro-nodes
- MetroMap: removed dead handleCliCommand console.log
- MetroMap: added metro node creation modal (naam + beschrijving)
NEW — AI Service integration:
- ai-service/main.py: real Anthropic API integration via httpx
- Reads ANTHROPIC_API_KEY from env, uses claude-haiku-4-5-20251001
- /api/chat fetches project context from PostgreSQL (docs, commitments)
- /api/summarize sends content to Claude for summarization
- /api/search does basic text search on documents + kennis_artikelen
- AiController.php: Laravel proxy for /api/ai/chat → ai-service
- CliBar.vue: complete rewrite with async API calls, processing state,
error handling, conversation history, auto-scroll
- Receives projectId prop for context-scoped AI queries
- Shows "denken..." animation while waiting for response
- docker-compose.yml: passes ANTHROPIC_API_KEY to ai-service container
- config/services.php: ai service URL configuration
To activate AI: set ANTHROPIC_API_KEY in .env and rebuild ai-service.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>