- 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>
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>
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>
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>
- 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>
- 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>