File size: 5,834 Bytes
dbb04e4 c3a3710 dbb04e4 c3a3710 dbb04e4 c3a3710 dbb04e4 c3a3710 dbb04e4 c3a3710 dbb04e4 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 | # 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 |
|