# Refactoring TODO Status för kodoptimering inför kommande funktionalitet. --- ## Hög Prioritet ### 1. Konsolidera HDV-implementation **Status:** ✅ Completed (2026-02-18) **Problem:** - Dubbel implementation: `src/core/hdv.py` (float) + `src/core/binary_hdv.py` (binary) - Skapar branch-logik genom hela koden - Float HDV är legacy och bör depreceras **Åtgärder genomförda:** - `src/core/hdv.py` - Markerad som DEPRECATED med varning - `src/core/__init__.py` - Exporterar nu BinaryHDV först - `src/core/node.py` - Använder endast BinaryHDV - `src/core/holographic.py` - Konverterad till BinaryHDV med XOR-binding - `src/core/router.py` - Tog bort HDV-branching - `src/core/engine.py` - Tog bort Union-typer och branching - `src/core/tier_manager.py` - Standardiserade på BinaryHDV --- ### 2. Ofullständiga features **Status:** ✅ Verified / Resolved **Problem:** - Flera TODOs i produktionskod som lämnats oimplementerade **Filer:** - `src/llm_integration.py` **TODOs:** ``` Line 56: # TODO: Call Gemini 3 Pro via OpenClaw API Line 106: # TODO: superposition_query() not implemented in HAIMEngine Line 131: # TODO: Call Gemini 3 Pro Line 301: # TODO: Implement concept-to-memory-ID mapping Line 320: # TODO: orchestrate_orch_or() not implemented ``` **Åtgärd:** - `superposition_query`: Implemented as `_superposition_query` in `HAIMLLMIntegrator`. - `orchestrate_orch_or`: Implemented in `HAIMEngine`. - LLM Calls: Code now supports generic providers (OpenAI, Gemini via `google.generativeai`, etc) with safe fallbacks (`_mock_llm_response`) if not configured. - `_concept_to_memory_id`: Implemented in `MultiAgentHAIM`. --- ### 3. Standardisera felhantering **Status:** Pending **Problem:** - Vissa funktioner returnerar `None` vid fel - Andra kastar exceptions - Svårt att förutse felbeteende **Åtgärd:** - Definiera domän-specifika exceptions: - `MemoryNotFoundError` - `StorageError` - `EncodingError` - `ConsolidationError` - Skapa `src/core/exceptions.py` - Uppdatera alla moduler att använda konsistent felhantering --- ## Medelprioritet ### 4. Minska Singleton-användning **Status:** 📋 Roadmap **Problem:** - `AsyncRedisStorage.get_instance()` - `QdrantStore.get_instance()` - Försvårar testning **Åtgärd:** - Inför Dependency Injection - Passa beroenden via konstruktor **Komplexitet:** Hög - Kräver genomgripande ändringar av instansiering --- ### 5. Bryt isär stora funktioner **Status:** 📋 Roadmap **Problem:** - `engine.py:store()` - 76 rader - `tier_manager.py:consolidate_warm_to_cold()` - 48 rader **Åtgärd:** - Extrahera till mindre, testbara enheter **Komplexitet:** Hög - Refaktorering av kärnlogik --- ### 6. Konsolidera Circuit Breakers **Status:** ✅ Completed (2026-02-18) **Problem:** - `src/core/resilience.py` - pybreaker implementation - `src/core/reliability.py` - Native implementation - Dubbel implementation **Åtgärder genomförda:** - `src/core/reliability.py` - Nu primär modul med pre-konfigurerade instanser - `src/core/resilience.py` - Markerad som DEPRECATED - `src/core/qdrant_store.py` - Uppdaterad till reliability - `src/api/main.py` - Uppdaterad till reliability, tog bort pybreaker-beroende --- ### 7. Centralisera hårkodade sökvägar **Status:** ✅ Completed (2026-02-18) **Problem:** - `"./data"` fanns hårdkodat på flera ställen **Åtgärder genomförda:** - `src/core/holographic.py` - Använder nu `config.paths.data_dir` som default - Alla sökvägar centraliserade i `config.yaml` och `HAIMConfig` --- ### 8. Standardisera import-stil **Status:** ✅ Verified (2026-02-18) **Problem:** - Blandning av relativa och absoluta imports - Till och med inom samma fil **Analys:** - `src/core/` använder konsekvent relativa imports (`.module`) - Övriga moduler använder absoluta imports (`src.core.module`) - Inga filer har blandad stil **Slutsats:** Import-stilen följer redan rekommenderad Python-praxis. Ingen åtgärd behövs. --- ## Låg prioritet ### 9. Rensa debug-filer - Ta bort eller flytta `debug_*.py` - Konsolidera test-helpers ### 10. Standardisera logging - Välj ett framework (loguru rekommenderas) - Ta bort ad-hoc print-statements ### 11. Förbättra typsäkerhet - Lägg till mypy i CI - Komplettera type hints - Använd `TypedDict` för komplexa dict-returns --- ## Förbättra testtäckning ```bash pytest --cov=mnemocore --cov-report=html ``` Kör för att identifiera luckor i testtäckningen. --- ## Fil-prioriteringslista | Prioritet | Fil | Anledning | |-----------|-----|-----------| | 1 | `src/core/engine.py` | Kärnlogik, HDV dual-mode | | 2 | `src/core/tier_manager.py` | Stora funktioner, lagringskomplexitet | | 3 | `src/llm_integration.py` | Flera oimplementerade TODOs | | 4 | `src/core/resilience.py` | Duplikat circuit breaker | | 5 | `src/core/binary_hdv.py` | Överväg extrahering till separat paket | --- ## Framsteg - [x] Punkt 1: HDV-konsolidering ✅ - [x] Punkt 2: Ofullständiga features ✅ - [ ] Punkt 3: Felhantering - [ ] Punkt 4: Singleton-reduktion 📋 Roadmap - [ ] Punkt 5: Stora funktioner 📋 Roadmap - [x] Punkt 6: Circuit breakers ✅ - [x] Punkt 7: Hårkodade sökvägar ✅ - [x] Punkt 8: Import-stil ✅ (redan konsekvent) - [x] Test-suite import fixad (src. -> mnemocore.) ✅ --- ## Roadmap (Framtida refaktorering) Dessa punkter kräver mer omfattande ändringar och bör planeras in senare: | Punkt | Beskrivning | Komplexitet | |-------|-------------|-------------| | 4 | Minska Singleton-användning, inför DI | Hög | | 5 | Bryt isär stora funktioner i engine/tier_manager | Hög |