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 |