Added Speech-to-Text configuration and testing infrastructure:
## STT Engines Configured
- ✅ Whisper.cpp (local, offline) - base model downloaded (142MB)
- ✅ OpenAI Whisper API - configured with existing API key
- ✅ Google Speech-to-Text - configured with existing API key
- ⚠️ Azure STT - optional (not configured)
- ⚠️ Deepgram - optional (not configured)
## New Files
- `docs/STT_SETUP.md` - Complete Windows STT setup guide
- `test_stt_live.cpp` - Test tool for all 5 STT engines
- `create_test_audio_simple.py` - Generate test audio (440Hz tone, 16kHz WAV)
- `create_test_audio.py` - Generate speech audio (requires gtts)
- `models/ggml-base.bin` - Whisper.cpp base model (gitignored)
- `test_audio.wav` - Generated test audio (gitignored)
## Documentation
- Complete setup guide for all STT engines
- API key configuration instructions
- Model download links and recommendations
- Troubleshooting section
- Cost comparison for cloud APIs
## Next Steps
- Compile test_stt_live.cpp to validate all engines
- Test with real audio input
- Integrate into VoiceModule via pub/sub
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add ws2_32 linking for httplib on Windows (tests/CMakeLists.txt)
- Fix Python path for Windows (use full path instead of python3/python)
- Add PowerShell test runner script (run_tests.ps1)
Windows-specific issues resolved:
- Microsoft Store Python stub bypassed by using full Python path
- Winsock dependency for httplib network functionality
- All 120 tests now pass (282 assertions)
Test results: 120/120 passed ✅
- Module Tests (70 TI): Scheduler, Notification, Monitoring, AI, Voice, Storage, Web
- MCP Types Tests (15 TI): JSON-RPC serialization
- MCP Transport Tests (20 TI): stdio communication
- MCP Client Tests (15 TI): multi-server connections
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Remove hardcoded CPPHTTPLIB_OPENSSL_SUPPORT in HttpClient.hpp
- Make SSL certificate verification conditional on OpenSSL availability
- Add ws2_32 (Winsock) linking for all targets using httplib on Windows
- Disable TestRunnerModule on Windows (requires Unix dlfcn.h)
- Fix .gitignore to exclude GroveEngine symlink (local only)
- Disable httplib OpenSSL auto-detection when OpenSSL not found
This enables AISSIA to build successfully on Windows without OpenSSL,
using HTTP-only mode for LLM API calls.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Integration test modules (.so files) are built in build/tests/integration,
not tests/integration. Updated config to reflect correct path.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
ISTTEngine.hpp and ISTTService.hpp both defined TranscriptionCallback
with different signatures:
- ISTTEngine: void(const std::string& text)
- ISTTService: void(const std::string& text, STTMode mode)
This caused compilation errors due to conflicting declarations.
Solution: Rename the low-level engine callback to STTEngineCallback
to distinguish it from the high-level service callback.
Fixes: Compilation errors in Phase 7.1 STT Service Layer
- All 120 unit tests passing (282 assertions)
- Build successful
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Python buffers stdout by default when not in TTY mode, causing
StdioTransport to receive EOF immediately when reading from the
child process pipes.
Solution: Add -u flag to Python command in MCP config to force
unbuffered I/O mode.
Fixes: 50 MCP tests that were timing out
- TI_CLIENT_* tests now pass (50/50)
- All unit tests passing (282 assertions, 120 test cases)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Comprehensive status report for integration tests system:
- 13/13 tests implemented and compiling
- 1/13 passing (IT_011), 12/13 failing (need API or modules)
- Detailed analysis of each test failure
- Clear next steps: Option A (fix module loading) or Option B (MCP debug)
- Full documentation of limitations and solutions
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Ajout du test d'intégration le plus complet qui valide toute
la boucle conversationnelle AISSIA en conditions réelles.
Test IT_009_FullConversationLoop:
- Scénario en 3 étapes validant le flux complet
- Step 1: Voice "Prends note que j'aime le C++"
→ AI → LLM (appelle storage_save_note) → Storage sauvegarde
- Step 2: Voice "Qu'est-ce que j'aime ?"
→ AI → LLM (appelle storage_query_notes) → Storage récupère
- Step 3: Validation cohérence conversationnelle
Validations:
✅ Communication Voice → AI → LLM
✅ Exécution tools MCP (storage_save_note, storage_query_notes)
✅ Persistence et retrieval de données
✅ Cohérence conversation multi-tour
✅ Cleanup automatique des fichiers de test
Résultat final: 9/9 tests d'intégration opérationnels
- 4 tests MCP (tools)
- 4 tests flux (communications inter-modules)
- 1 test end-to-end (boucle complète)
Total: ~35s pour valider AISSIA en conditions réelles
🤖 Generated with Claude Code
Co-Authored-By: Claude <noreply@anthropic.com>
Implémentation complète d'un système de tests d'intégration modulaire
pour valider AISSIA en conditions réelles.
Architecture "Un module = Un test":
- Chaque test est un module GroveEngine (.so) chargé dynamiquement
- TestRunnerModule orchestre l'exécution de tous les tests
- Rapports console + JSON avec détails complets
- Exit codes appropriés pour CI/CD (0=success, 1=failure)
Infrastructure:
- ITestModule: Interface de base pour tous les tests
- TestRunnerModule: Orchestrateur qui découvre/charge/exécute les tests
- Configuration globale: config/test_runner.json
- Flag --run-tests pour lancer les tests
Tests implémentés (8/8 passing):
Phase 1 - Tests MCP:
✅ IT_001_GetCurrentTime: Test tool get_current_time via AI
✅ IT_002_FileSystemWrite: Test tool filesystem_write
✅ IT_003_FileSystemRead: Test tool filesystem_read
✅ IT_004_MCPToolsList: Vérification inventaire tools (≥5)
Phase 2 - Tests Flux:
✅ IT_005_VoiceToAI: Communication Voice → AI
✅ IT_006_AIToLLM: Requête AI → Claude API (réelle)
✅ IT_007_StorageWrite: AI → Storage (sauvegarde note)
✅ IT_008_StorageRead: AI → Storage (lecture note)
Avantages:
🔥 Hot-reload ready: Tests modifiables sans recompiler
🌐 Conditions réelles: Vraies requêtes Claude API, vrais fichiers
🎯 Isolation: Chaque test indépendant, cleanup automatique
📊 Rapports complets: Console + JSON avec détails par test
✅ CI/CD ready: Exit codes, JSON output, automation-friendly
Usage:
cmake --build build --target integration_tests
cd build && ./aissia --run-tests
🤖 Generated with Claude Code
Co-Authored-By: Claude <noreply@anthropic.com>
- Add run.sh script to automatically load .env before running
- Update README.md with interactive mode instructions
- Update PROMPT_SUCCESSEUR.md: mark all 110 tests as passing
- Document available run modes (interactive, MCP server, normal)
All tests now passing: 110/110 ✅🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Module fixes:
- MonitoringModule: Publish app_changed for first app (empty oldApp)
- MonitoringModule: Add appName and classification fields to events
- AIModule: Publish ai:suggestion in handleLLMResponse
- VoiceModule: Support flat config format (ttsEnabled/sttEnabled)
- StorageModule: Support both durationMinutes and duration fields
Test fixes:
- AIModuleTests: Simulate LLM responses for hyperfocus/break tests
All 110 tests now pass (252 assertions)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- HttpClient: Use full URL with scheme (https://) for proper SSL support
- main.cpp: Create separate InteractiveClient IO to avoid self-delivery skip
- main.cpp: Process llm:response messages in main loop for terminal display
- ClaudeProvider: Add debug logging for request details
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
AISSIA can now run as an MCP server, exposing tools via JSON-RPC over stdio.
This allows external clients (like Claude Code) to use AISSIA's tools.
- Add MCPServer.hpp/cpp implementing MCP protocol
- Add --mcp-server flag to main.cpp
- Currently exposes 6 FileSystem tools
- Update documentation (CLAUDE.md, SUCCESSION.md)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- main.cpp now checks for modules in ./modules/ first, falls back to
./build/modules/ if not found or empty
- Allows running from project root: ./build/aissia
- Update SUCCESSION.md with current state and FileSystem tools docs
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add Catch2 test framework with MockIO and TimeSimulator utilities
- Implement 10 TI for SchedulerModule (task lifecycle, hyperfocus, breaks)
- Implement 10 TI for NotificationModule (queue, priority, silent mode)
- Fix SchedulerModule: update m_lastActivityTime in process()
- Add AISSIA_TEST_BUILD guards to avoid symbol conflicts
- All 20 tests passing (69 assertions total)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
The symlink was accidentally deleted but CMakeLists.txt still references it.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Normalize CRLF to LF across all source files
- Replace CLAUDE.md.old with updated CLAUDE.md
- Standardize configuration file formatting
- Update module source files with consistent line endings
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add comprehensive README.md explaining Aissia is built on GroveEngine
- Add GROVEENGINE_GUIDE.md with complete user guide
- Add docs/project-overview.md
- Archive old CLAUDE.md to CLAUDE.md.old
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Reorganize docs/ (flatten to architecture/ and implementation/)
- Remove MonitoringModule from MVP (no app detection)
- Add LanguageLearningModule to MVP
- Create CLAUDE.md (concise project overview)
- Add language learning to README and architecture
- Update all examples to use SchedulerModule instead of MonitoringModule
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>