MnemoCore / REFACTORING_TODO.md
Granis87's picture
Upload folder using huggingface_hub
c3a3710 verified

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

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

  • Punkt 1: HDV-konsolidering ✅
  • Punkt 2: Ofullständiga features ✅
  • Punkt 3: Felhantering
  • Punkt 4: Singleton-reduktion 📋 Roadmap
  • Punkt 5: Stora funktioner 📋 Roadmap
  • Punkt 6: Circuit breakers ✅
  • Punkt 7: Hårkodade sökvägar ✅
  • Punkt 8: Import-stil ✅ (redan konsekvent)
  • 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