Mikei386
896c12193e
Replace compression sidecar with Hermes micro-compaction
2026-08-26 06:18:51 +02:00
Mikei386
438bd34b72
Keep experimental compressor stopped by default
2026-08-26 01:42:14 +02:00
Mikei386
aaadc57c07
Harden and demote experimental Hermes compressor
2026-08-26 01:40:38 +02:00
Mikei386
43d9903d13
Add dedicated Hermes compression model
2026-08-26 00:45:32 +02:00
Mikei386
e872829b11
Route Athena operator through MCPHub
2026-08-26 00:25:44 +02:00
Mikei386
3ab7c57043
Document Hermes migration to Unraid
2026-08-25 23:52:55 +02:00
Mikei386
5087048e0c
Add official Hermes Agent Unraid template
2026-08-25 23:32:18 +02:00
Mikei386
cca1fb217e
Consolidate portable MCPs in Unraid MCPHub
2026-08-25 23:21:29 +02:00
Mikei386
069da8b4f0
Simplify Athena stack and recovery
2026-08-25 22:27:26 +02:00
Mikei386
0a640e76ea
Simplify Athena operator architecture
2026-08-25 21:53:12 +02:00
Mikei386
348ca1324e
Add Hermes Agent as reproducible second client
2026-08-24 17:00:39 +02:00
Mikei386
c402ea79f7
feat(vpn): expose Athena services directly over WireGuard
2026-08-24 07:33:16 +02:00
Mikei386
e24839bfe1
fix(tools): harden OpenWebUI tool workflows
2026-08-24 00:40:32 +02:00
Mikei386
94f3758795
Add controlled Athena platform operator
2026-08-23 21:10:44 +02:00
Mikei386
288dc62e7e
Document controlled GitHub MCP write mode
2026-08-23 18:20:01 +02:00
Mikei386
3dbb66037d
Add self-maintaining Athena platform context MCP
2026-08-23 17:31:05 +02:00
Mikei386
64d36ad838
Document Qwen operator context and safety model
2026-08-23 17:05:02 +02:00
Mikei386
3d528f2716
Add encrypted bare-metal recovery workflow
2026-08-23 15:48:41 +02:00
Mikei386
727827ac32
Add spoken tool progress acknowledgements
2026-08-23 13:54:39 +02:00
Mikei386
f90fc93f9c
Add XTTS primary voice with Piper fallback
2026-08-23 12:22:59 +02:00
Mikei386
2ef894160a
Add final Qwen3.8 runtime and uncensored profile
2026-08-23 00:10:53 +02:00
Mikei386
af6abf54ae
Add SSH-only emergency access fallback
2026-08-22 21:08:58 +02:00
Mikei386
0e5876f1a9
Add fail-closed WireGuard container gateway
2026-08-22 20:48:49 +02:00
Mikei386
ce5bbc2e69
Add unattended host recovery safeguards
2026-08-22 19:27:34 +02:00
Mikei386
7ac93befc4
Add RTX 5080 FLUX hot-swap worker
2026-08-22 17:40:32 +02:00
Mikei386
8267a85a96
Offload vision projector to RTX 3060
2026-08-22 17:19:56 +02:00
Mikei386
41b9c17f0f
Define four-profile production matrix with Medium default
2026-08-22 11:30:38 +02:00
Mikei386
977f8f5c76
Validate Pure quant for 256K Ultra profile
2026-08-22 11:01:13 +02:00
Mikei386
f52cf14069
Add tested 256K Ultra profile
2026-08-22 10:44:14 +02:00
Mikei386
a5cf11582a
Add reproducible Piper TTS service
2026-08-21 17:02:32 +02:00
Mikei386
c0cbeb0f15
Add global Midnight Aurora Open WebUI theme
2026-08-21 15:28:39 +02:00
Mikei386
bf90698b99
Document Athena rebuild and clarify tool volume ownership
2026-08-21 14:35:52 +02:00
Mikei386
f0d552ef58
Containerize MCP tool services
2026-08-20 23:54:02 +02:00
Mikei386
3ab9628088
Document centralized isolated MCP tool plane
2026-08-20 21:42:40 +02:00
Mikei386
e83c0e2c70
Add reproducible Docker and WireGuard host bootstrap
2026-08-20 21:23:16 +02:00
Mikei386
cb07779f5a
Replace vision hotswap with native multimodal profiles
2026-08-20 14:24:56 +02:00
Mikei386
fd4a3055e8
Rebuild profile router as secure recoverable v2
2026-08-20 13:41:00 +02:00
Mikei386
bdd6c08643
Document complete recovery requirements and reference state
2026-08-20 13:05:27 +02:00
Mikei386
0e4a9de5ba
Expand router into reproducible local AI platform
2026-08-20 12:56:53 +02:00
Mike
a84220725a
Vision: Q3-Augen-Orchestrierung + Folgefragen-Sanitize
...
- Automatische Vision-Orchestrierung: temporärer Q3-Vision-Server
(llama.cpp + mmproj) analysiert Bilder, Hauptmodell (Fast/Medium/Long)
erzeugt die finale Antwort. Zentrale GPU-Lock (Ausschluss mit FLUX),
Drain, Timeouts, Restore in jedem Fehlerfall.
- Vision-Analyse wird als interne User-Message injiziert (nie als
Assistant-Turn in Open WebUI).
- Analyse-Cache (LRU, keyed by Bild-Hash): Folgefragen triggern keinen
neuen Hotswap.
- Sanitize: alle Bild-Parts (image_url/Base64) werden bei jedem Request
durch die gecachte Analyse ersetzt, Bilddaten entfernt - das
Nicht-Vision-Hauptmodell bekommt keine Bilder mehr (kein
image input is not supported).
- /v1/streams/lookup fail-fast während Vision-Swap; /props-Regression
behoben; POST /vision/test für direkten Test.
- systemd-Unit: VISION_*-Umgebungsvariablen; README dokumentiert Vision.
2026-08-20 07:48:25 +02:00
Mikei386
d399d2b4f7
TTS: Kokoro → XTTS-v2 (CPU-only, Claribel Dervla)
...
- Neues xtts_worker.py: Coqui XTTS-v2, HTTP-API auf Port 8085
- Router: TTS_WORKER_URL → 8085, TTS_MODEL → xtts-v2, TTS_VOICES → claribel
- deploy: mike-ai-xtts.service, install.sh + deploy.sh aktualisiert
- Tests: 54/54 bestanden (mock_tts_worker + test_local.sh auf XTTS umgestellt)
- README: TTS-Section auf XTTS-v2 aktualisiert
- Kokoro-Service gestoppt und deaktiviert (Dateien bleiben als Backup)
2026-08-19 22:01:58 +02:00
Mikei386
51ef07c874
router: deutsche Spracherkennung mit whisper.cpp (CPU-only)
...
- STT-Worker (stt_worker.py): langlebiger HTTP-Service auf Port 8084
- whisper-cli als Subprozess (CPU-only, 8 Threads)
- Audio-Vorbereitung via ffmpeg (WebM/Opus/M4A → 16 kHz WAV)
- Nativ: WAV, MP3, OGG, FLAC
- Health-Endpunkt: GET /status
- Transkription: POST /transcribe (Multipart-Form-Data)
- Router-Integration:
- POST /v1/audio/transcriptions (OpenAI-kompatibel)
- GET /v1/audio/models (whisper-1, kokoro-german)
- GET /v1/audio/voices (martin, victoria)
- /status mit stt-Section
- model=whisper-1 akzeptiert
- response_format: json, verbose_json
- systemd-Service: mike-ai-whisper.service
- Boot-Start, Restart on failure, journald
- CPU-only, kein GPU-Lock
- Deploy-Dateien aktualisiert (deploy.sh, install.sh)
- Mock-STT-Worker für lokale Tests (dev/mock_stt_worker.py)
- Tests ergänzt: STT Status, WAV, language=de, unbekanntes Modell,
Worker down, Recovery, Audio-Modelle, Audio-Voices,
STT+Qwen parallel, STT+TTS parallel
- README.md: STT-Section mit Endpunkten, Benchmarks, Doku
Benchmarks (CPU-only, 8 Threads):
7.3 s Audio → 8.9 s (RTF 1.22×)
30 s Audio → 16.8 s (RTF 0.56×)
50 s Audio → 18.5 s (RTF 0.37×)
RAM: ~1.7 GB (Modell), Worker: ~20 MB
2026-08-19 13:53:22 +02:00
Mikei386
ff064685ce
router: TTS auf offiziellen Kikiri-Deutsche-Pfad umgestellt
...
Ersetzt die alte Implementierung (kokoro 0.7.16 + espeak.EspeakG2P)
durch den offiziellen Kikiri-Deutsche-Inferenzpfad:
- semidark/kokoro-Fork (0.9.4) mit lang_code='d'
- semidark/misaki-Fork (0.9.4) mit misaki.de.DEG2P
(Text-Normalisierung + espeak-ng + Aussprache-Overrides)
- Verbessertes Chunking (Split an Satzgrenzen, 400 Zeichen)
- repo_id='hexgrad/Kokoro-82M' für KModel/KPipeline
Änderungen:
- router/tts_worker.py: KModel/KPipeline API aktualisiert,
Monkey-Patching entfernt, Docstring aktualisiert
- deploy/install.sh: semidark-Forks installieren (misaki[de],
kokoro --no-deps, spacy für misaki.en-Import)
- README.md: G2P-Pfad, Chunking, Python-Pakete, Python-3.13-Hinweis
Getestet: 43/43 lokale Tests, E2E auf Zielsystem (WAV/MP3,
LAN-Zugriff, parallele Qwen/TTS-Operation, Chat intakt).
2026-08-19 13:09:29 +02:00
Mikei386
6db10fbc3f
router: deutsche Sprachausgabe mit Kokoro-82M (CPU-only)
...
Fügt einen OpenAI-kompatiblen TTS-Endpunkt POST /v1/audio/speech hinzu.
Die Synthese läuft in einem separaten, langlebigen Worker
(mike-ai-kokoro.service) mit eigenem Venv (CPU-only torch) und hält die
Modelle dauerhaft im RAM (niedrige Warm-Start-Latenz).
- Zwei deutsche Stimmen: kikiri-german-martin, kikiri-german-victoria
(Apache 2.0, je ~327 MB) unter /opt/mike-ai/models/kokoro/
- Deutsche G2P über espeak-ng (phonemizer), kein spacy/thinc 9.x nötig
(kokoro mit --no-deps + misaki ohne [en], Python 3.13-kompatibel)
- Formate: mp3 (Default), wav, flac, pcm; speed 0.5-2.0
- /status um tts.*-Felder erweitert (reachable, ready, voices, ...)
- TTS ohne GPU-Lock: blockiert weder Qwen/llama.cpp noch FLUX
- systemd-Unit mike-ai-kokoro.service (Start beim Boot)
- install.sh/deploy.sh um Kokoro-Venv + Modell-Download erweitert
- Mock-TTS-Worker + 11 TTS-Tests (insgesamt 43, alle bestanden)
- Hörproben (je ~40 s) + Benchmark (RTF ~0.23, ~4.3x Echtzeit)
Kein Push – erst nach User-Freigabe.
2026-08-19 12:05:09 +02:00
Mikei386
7c5bbe2ffb
router: Bildgenerierung mit FLUX.2 [klein] 4B Base (GPU-Hotswap)
...
- POST /v1/images/generations (OpenAI-kompatibel, prompt/size/n/seed/quality)
- quality: standard=30 Steps (Default), high=50 Steps
- Größen: 1024x1024, 1536x1024, 1024x1536, 1920x1088, 1088x1920
- GPU-Hotswap: Qwen stoppen -> FLUX laden -> Bild -> FLUX entladen -> Qwen
wiederherstellen (exakt vorheriges Profil)
- Zentrales GPU/Modell-Lock (Profilwechsel und Bild teilen sich das Lock)
- Chat-Requests warten während Bild-Job (kein 502), Timeout CHAT_WAIT_TIMEOUT
- Robuste Recovery: try/finally, Worker-Beendigung, VRAM-Check, Qwen-Readiness
- /status: image.phase, image.worker, image.model_loaded, qwen.available,
qwen.active_chats
- GET /images, GET /images/<datei> (validiert, nur images/-Verzeichnis)
- image_worker.py: FLUX-Worker (eigener Prozess, JSON-Protokoll, bf16 +
enable_model_cpu_offload)
- deploy: venv (torch/diffusers/transformers/accelerate), Modell-Download,
Image-Dir, systemd-Unit mit Image-Umgebungsvariablen
- dev: Mock-Worker, fake-systemctl, Benchmarks (GPU-Resident, Offload, Steps,
Quality-Compare), 32 lokale Tests
- README: Bildgenerierung, Hotswap, Recovery, Benchmarks (RTX 5080),
Python-Pakete
Benchmarks (RTX 5080, 16 GB, CPU-Offload):
- 512x512 / 10 Steps: ~9.3 s
- 1024x1024 / 30 Steps: ~31.3 s
- 1024x1024 / 50 Steps: ~45.3 s
- 1920x1088 / 50 Steps: ~91 s
- Peak-VRAM: ~8.4-8.9 GB
- Hotswap-Gesamtzeit: ~41-42 s (1024x1024 / 30 Steps)
2026-08-19 08:51:37 +02:00
Mikei386
bddbc35476
docs: README und .gitignore
2026-08-18 22:52:48 +02:00