# MiniLlama & CrowdCode — Session Handover

> Diese Datei dient als Kontext-Übergabe zwischen Sessions.
> Neue Session: Lies diese Datei zuerst.

---

## Projekt: MiniLlama — Portabler LLM-Stack für USB-Stick

**Verzeichnis:** `/home/xray/code/MiniLlama`

**Ziel:** Ein portabler LLM-Chat + API-Server + Dateioperations-CLI, der von einem USB-Stick auf Windows und Linux läuft — ohne Installation. Für leistungsschwache Rechner.

---

## Kontext

### Repos
- `forgejo.ccpn.cc/xray/MiniLlama` — CLI, Server, Start-Skripte, README
- `forgejo.ccpn.cc/xray/crowdcode` — VSCode Extension (TypeScript)
- `forgejo.ccpn.cc/xray/iftmin-wiki` — Wiki-Beispielprojekt

### Stick
- Gemountet unter `/media/xray/llama/` (exFAT, Label: "llama", 28,6 GB)
- Modelle: `/media/xray/llama/llama/models/*.gguf`
- MiniLlama/models/ enthält Symlinks auf Stick-Modelle

### Wichtige Dateien
- `cli/crowdcode.js` — Node.js CLI (480 Zeilen): Chat, @mentions, FILE:/DIR:/EDIT:, Shell-Kommandos
- `start.sh` — Chat-Starter Linux
- `start-server.sh` — API-Server mit Modellauswahl
- `deploy.sh` — Deployment auf USB-Stick
- `README.md` — Vollständige Dokumentation

### Wichtige Erkenntnisse
- MiniCPM5-1B ist inkompatibel mit llama.cpp b9936 (Chat-Template-Tokens)
- Qwen2.5-1.5B zu schwach für Instruction Following (FILE:-Pattern)
- Gemma 3 4B IT und Phi-4-mini funktionieren perfekt (IFEval 90.2/88, laden in ~3s)
- LFM2.5-8B-A1B hat beste IFEval (91.84), noch nicht getestet
- **LFM2-8B-A1B-UD-Q4_K_XL (4,5 GB): Testsieger** — 16,2 t/s, FILE:-Pattern ✅, Wiki sehr gut ✅
- **LFM2-24B-A2B-Q3_K_XL (11 GB): Qualitätssieger** — 11,4 t/s, FILE:-Pattern ✅, Wiki sehr gut ✅
- **LFM2-8B-A1B-IQ4_XS (4,2 GB):** ❌ FILE:-Pattern fehlt komplett (Quantisierung zu aggressiv)
- **LFM2-8B-A1B-Q3_K_XL (3,8 GB):** ❌ FILE:-Pattern fehlt oft (Q3 zu niedrig)

---

## ✅ Entscheidungen

| # | Entscheidung | Begründung | Datum |
|---|---|---|---|
| 1 | CLI in Node.js statt Bash | Plattformunabhängig (Win+Lin), fetch, readline | 2026-07-09 |
| 2 | LFM2-8B-A1B-UD-Q4_K_XL als Standard | 16,2 t/s, FILE:-Pattern ✅, Wiki sehr gut ✅, nur 4,5 GB | 2026-07-09 |
| 3 | LFM2-24B-A2B-Q3_K_XL für Qualität reserviert | 11,4 t/s, tiefere Einsichten — für Zielmaschine mit GPU | 2026-07-09 |
| 4 | Modelle als Symlinks auf Stick | Spart Platz im Repo, flexibler Austausch | 2026-07-09 |
| 5 | Server-Auto-Start im CLI | Kein manueller Vorstart nötig, Modellauswahl inklusive | 2026-07-09 |
| 6 | Shell-Kommando-Erkennung | pwd/ls/git direkt ausführen, nicht ans LLM | 2026-07-09 |

---

## 🔜 Nächste Schritte

| # | Aktion | Priorität | Status |
|---|---|---|---|
| 1 | LFM2.5-8B-A1B-Q4_K_M testen (IFEval 91.84) | 1 (sofort) | ⬜ |
| 2 | CrowdCode VSCode Extension als .vsix deployen und testen | 2 (danach) | ⬜ |
| 3 | Wiki-Modus mit iftmin-wiki testen | 2 (danach) | ⬜ |
| 4 | Windows-Test des CLI (crowdcode.bat) auf Zielrechner | 2 (danach) | ⬜ |
| 5 | Performance-Benchmarks auf Zielrechner (Ladezeit, t/s) | 3 (optional) | ⬜ |
| 6 | LFM2-24B auf Zielmaschine mit GPU testen | 3 (optional) | ⬜ |

---

## Session: 2026-07-09 09:30-11:45

### Erreichtes
- MiniLlama Projektstruktur angelegt (bin/{linux,win}, cli/, models/)
- llama.cpp b9936 Binaries: Linux (39 MB) + Windows (114 MB)
- README mit Modell-Vergleichstabelle und CLI-Features
- CrowdCode CLI: Node.js Terminal-Client (480 Zeilen)
  - Streaming Chat, @mentions, FILE:/DIR:/EDIT:/bash Pattern
  - Shell-Kommando-Erkennung (pwd, ls, git)
  - Server-Auto-Start mit Modellauswahl
  - crowdcode.sh (Linux) + crowdcode.bat (Windows)
- CrowdCode VSCode Extension: kompiliert + .vsix gebaut (24 KB)
- Modelle getestet: 5 Modelle evaluiert (3 funktionieren ✅, 1 inkompatibel ❌)
- Neue Modelle: Gemma 3 4B IT + Phi-4-mini runtergeladen und getestet
- Symlinks von MiniLlama/models → Stick-Modelle
- MiniLlama + CrowdCode in Forgejo gepusht
- CrowdBrain minillama.md aktualisiert

### Entscheidungen
- Gemma 3 4B IT (2.4 GB, IFEval 90.2) als Standard-Modell
- Phi-4-mini (2.5 GB) als leichte Alternative
- LFM2.5-8B-A1B (5.4 GB, IFEval 91.84) als nächstes zu testen
- MiniCPM5-1B: verwerten (inkompatibel)

### Nächste Schritte (aus dieser Session)
1. LFM2-8B-A1B auf Stick testen (der liegt schon da)
2. LFM2.5-8B-A1B downloaden
3. Windows-Kompatibilität des CLI prüfen

---

## Session: 2026-07-09 14:30-18:00

### Erreichtes
- **24B Wiki-Test:** 11 Seiten in 12 Min (manuell, eine Seite pro Request)
- **24B Harness-Test:** 3 Seiten in 20 Min via :wiki (zu langsam, ctx-Probleme gefixt)
- **8B Wiki-Test:** 12 Seiten in 22 Min via :wiki + 2 Min Nacharbeit
- **CLI-Harness erweitert:**
  - :wiki Befehl für Chunked Wiki-Ingest (eine Seite pro Request)
  - Flexible FILE:-Pattern-Erkennung (path:, File:, Datei:, orphane Codeblöcke)
  - Konfigurierbare Timeouts/GPU/Context-Size via ENV
  - Streaming AbortController für saubere Timeouts
- **Iftmin-Wiki:** 12 Wiki-Seiten, 76 KB, alle mit Querverweisen ✅
- **MODELS.md:** Um 8B vs 24B Vergleich + :wiki-Doku erweitert
- **Backup:** Backup als tar.gz erstellt (50 MB)
- **CrowdBrain:** minillama.md mit Testergebnissen aktualisiert

### Entscheidungen
- **8B als Default im Harness** — schnell (16-20 t/s), FILE:-Pattern ✅, Wiki ✅
- **24B nur bei Qualitätslücken** — langsam (8-10 t/s), FILE:-Pattern unzuverlässig
- **Qualitäts-Pipeline:** 8B erstellen → 8B reviewen → 24B nur wenn nötig
- **Modelle unter 10 t/s + aussortiert → entfernt** (MiniCPM5-1B und andere)

### Nächste Schritte
1. Windows-Test des CLI auf Zielrechner
2. LFM2.5-8B-A1B testen (IFEval 91.84, noch nicht evaluiert)
3. 24B auf Zielmaschine mit GPU testen
4. Wiki-Git-Repo anlegen (iftmin-wiki)
