119 Commits

Author SHA1 Message Date
Hitonabi a91f32c70c CI-Ampel nachgerüstet (Wasserdicht-Runde 22.07.)
Ampel / ampel (push) Failing after 15m12s
2026-07-22 19:32:59 +02:00
Hitonabi 902867be3f fix(v9): Auto-Setup "agent"-Slot via Tool-Capability statt Name-Kategorie
Der agent-Slot zog bisher aus der duennen Name-Keyword-Kategorie und blieb
oft leer. Jetzt poolt build_dynamic_recipes fuer role==agent ueber ALLE
discover-Kategorien und filtert via model_caps.capabilities (HF-Tags) auf
tool-faehige Modelle.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-24 21:02:40 +02:00
Hitonabi 3dd767f23d docs(v9): Phase 11 (Cookbook 3.0 — Auto-Setups + Tabs)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-24 18:31:28 +02:00
Hitonabi 084f92c661 feat(v9): Cookbook 3.0 — Segmented-Tabs (Setups | Modelle finden)
Entschlackt die überladene Seite: statt 3 gestapelter Sektionen zwei Tabs.
"Fertige Setups" = (jetzt auto-aktuelle) Bundles; "Modelle finden" bündelt
Discover + Profi-Suche (Facetten) unter einem Tab. Nur eine Ansicht zur Zeit.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-24 18:30:50 +02:00
Hitonabi 5d8babaede feat(v9): Phase 11 — selbst-aktualisierende Setups (Rollen-Slots × discover)
Setups sind nicht mehr hartkodiert: RECIPE_TEMPLATES definieren das KONZEPT
als Rollen-Slots, build_dynamic_recipes füllt sie live aus discover (Hardware-
Fit, MoE bevorzugt, dedupe, leere Slots ausgelassen). all_recipes liefert
Auto-Setups + eigene; statische RECIPES nur als Fallback.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-24 18:27:19 +02:00
Hitonabi 30bae06c0c fix(v9): Capability-Chips auch im Rezept-Detail-Modal
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-24 18:21:30 +02:00
Hitonabi 4dd819488e docs(v9): Phase 10 komplett — Capability-Chips + Facetten in Models & Cookbook
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-24 18:17:27 +02:00
Hitonabi 701476179e feat(v9): Phase 10 Schritt 2 — Capability-Chips + Facetten-Filter im Cookbook
- Profi-Suche: HF-Suche mit &full=true (liefert Tags); Multi-Capability-Chips
  (Code/Bild/Logik/MoE·aktiv/Tools(yes|likely)/Chat) aus Name + HF-Tags.
- Facetten-Filter (Mehrfachauswahl: Tools/MoE/Logik/Bild/Code) statt
  Einzel-Kategorie — clientseitig auf den Treffern (Index für Fit/Best bleibt).
- Discover: dieselben Chips; Backend liefert HF-Tags je Modell mit.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-24 18:16:40 +02:00
Hitonabi ada85504f3 docs(v9): Phase 10 Schritt 1 (GGUF-Capabilities) dokumentiert
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-24 18:10:50 +02:00
Hitonabi 9fa065908d feat(v9): Phase 10 Schritt 1 — Modell-Capabilities aus GGUF-Metadaten
- model_caps.py: dependency-freier GGUF-Header-Reader (architecture,
  expert_count, context_length, parameter_count) — offline/authoritativ,
  bricht vor dem Tokenizer-Array ab. Leitet Tag-Set ab: MoE(+aktive B),
  Tools (yes via --jinja/Template | likely via Familie | no), Vision,
  Coder, Reasoning, Embedding, native ctx/params. Familien-Liste nur Fallback.
- models.py status(): meta.capabilities ergänzt.
- ModelsPanel: "KANN"-Spalte zeigt jetzt Capability-Chips statt Text/Code/Bild.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-24 18:08:31 +02:00
Hitonabi d66f51ab8b docs(v9): Phase 9 final — deterministischer Kurator (LLM-Cron verworfen)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-24 17:51:36 +02:00
Hitonabi dd2938ee53 feat(v9): deterministischer Memory-Kurator (Dedupe) statt LLM-Cron
- routers/memory.py: POST /api/memory/dedupe — findet Dubletten (exakt/
  enthalten/ähnlich via SequenceMatcher) je Kategorie, behält den
  vollständigsten Eintrag. Dry-Run (apply:false) + Anwenden. Kein LLM.
- MemoryPanel: "🧹 Aufräumen"-Button (Vorschau → Bestätigung → löschen).

Grund: LLM-Cron-Kurator hat Edits nur halluziniert/als Text ausgegeben
statt auszuführen (Hermes 4 + Qwen). Deterministisch = verlässlich.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-24 17:49:18 +02:00
Hitonabi 0c7f3104d4 docs(v9): Phase 9 komplett — Memory-Kurator als Hermes-Cron-Job live
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-24 17:31:18 +02:00
Hitonabi aa726c01af fix(v9): Cron-Parser fuer echtes Block-Format (Cockpit zeigte Jobs nicht)
`hermes cron list` nutzt bei vorhandenen Jobs kein │-Tabellenformat, sondern
"id [status]" + eingerueckte Label:value-Zeilen. Eigener _parse_cron statt
_parse_rich_table → Memory-Kurator-Job erscheint jetzt im Cockpit.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-24 17:30:29 +02:00
Hitonabi 3facb6c3ad feat(v9): Phase 7 (Hermes 4 14B) live + Phase 9 proaktives Memory
- Phase 7: model.default = Hermes-4-14B (Q6_K, llama-swap-Alias hermes,
  --jinja), verifiziert (sauberer Tool-Call). A/B vs Qwen3-Coder umschaltbar.
- Phase 9: mcp_memory.py Tool-Beschreibungen auf proaktives Protokoll
  (get→Session-Start, add→proaktiv+dedup, search→vor add) → geteiltes
  MC-SQLite waechst autonom aus allen Tool-Sessions mit.
- Docs: Memory-Architektur (2 komplementaere Schichten) festgeschrieben.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-24 17:25:52 +02:00
Hitonabi c9433470ab docs(v9): Phase 6 + 8 live, Phase 7 (Hermes 4 14B) in Arbeit
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-24 17:08:44 +02:00
Hitonabi d4aa7eb8cf feat(v9): Phase 8 — Cockpit zeigt Lernen & Aktivität
- hermes_control.py: learned_profile() liest USER.md (Curator-Nutzerprofil,
  § -getrennt) + MEMORY.md; insights() zieht Sessions/Tokens/Tool-Calls +
  Top-Tools aus `hermes insights` (Regex, best effort).
- routers/hermes.py: GET /api/hermes/{learned,insights}.
- HermesPanel-Cockpit: Kachel "Aktivität" (Kennzahlen + Top-Tool-Balken) und
  "Was Hermes über dich gelernt hat" (USER.md-Fakten) — beantwortet sichtbar,
  dass der Agent automatisch mitlernt.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-24 17:06:51 +02:00
Hitonabi 7e8ed585a9 feat(v9): Hermes-Chat full-bleed, landet direkt auf /chat
Schlanke Kopfleiste (nur Cockpit/Setup), iframe fuellt das Fenster
(calc(100dvh - 116px)) und oeffnet die Chat-Route des Dashboards direkt.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-24 16:56:42 +02:00
Hitonabi af0e63c9d6 docs(v9): Phase 5 (Dashboard-Adoption) + Phasen 6-8 in ROADMAP
Kurswechsel dokumentiert: eingebettetes Hermes-Web-Dashboard statt Eigenbau-Chat.
CLAUDE.md: hermes_ui-Router, HERMES_DASHBOARD_URL, Dashboard-Gotcha, Projektstatus.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-24 16:51:52 +02:00
Hitonabi 09aabbb86e feat(v9): Phase 5 — Hermes-Web-Dashboard eingebettet, Eigenbau-Chat raus
Das Framework bringt eine fertige Web-UI mit (Chat mit Live-Tool-Aktivitaet,
Approval-Prompts, Settings, Sessions). Statt sie nachzubauen, betten wir sie ein:

- routers/hermes_ui.py: HTTP+WS-Reverse-Proxy auf das lokale Dashboard (:9119)
  unter /hermes-ui/ mit X-Forwarded-Prefix -> Dashboard rewritet Assets/Base-Path
  selbst, injiziert seinen Session-Token (kein zweiter Login). WS-Bruecke fuer
  pty/ws/pub/events.
- HermesPanel: Chat -> iframe auf /hermes-ui/; Eigenbau-Chat/Voice/WS entfernt.
  Cockpit + Setup bleiben. Loest damit Kontext-/Lern-/Tool-Sichtbarkeits-Themen,
  da die UI direkt mit dem Agent-Loop spricht (kein Proxy-Bug mehr).
- routers/hermes.py: Chat-WS + _proxy_chat entfernt (Cutover).
- config.py: HERMES_DASHBOARD_URL. requirements: websockets.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-24 16:47:52 +02:00
Hitonabi 40d9efee18 docs(v9): Phase 4 (Agent-Cockpit) dokumentiert + Versions-Chip-Fix
- HermesPanel: version-Chip zeigt PINNED_VERSION ohne doppeltes "v".
- ROADMAP/CLAUDE.md: Phase 4 als live markiert, HERMES_HOME/BIN ergänzt.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-24 16:20:19 +02:00
Hitonabi ecf974d9c0 feat(v9): Phase 4 — Agent-Cockpit (Status/Cron/Skills) im Dashboard
Macht das "geschenkte v9" sichtbar. Read-only Control-Plane-Reads:
- hermes_control.py: gateway_state.json + cron-Heartbeat (Status),
  `hermes cron list` + `hermes skills list` via COLUMNS=400 (kein
  Rich-Truncation) als kanonische Quelle, .usage.json fuer Nutzung.
  TTL-Cache (10s) gegen Polling-Last.
- routers/hermes.py: GET /api/hermes/{agent,cron,skills}.
- HermesPanel: aufklappbares "Cockpit" — Status-Badges, Cron-Jobs,
  Skills (sortiert nach Nutzung, aktiv/inaktiv).
- config.py: HERMES_HOME, HERMES_BIN.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-24 16:18:00 +02:00
Hitonabi f816c0c879 docs(v9): Memory-Feintuning via SOUL.md dokumentiert
Hermes konsultiert das MCP-Gedaechtnis jetzt proaktiv (SOUL.md-Regel auf
dem Bosgame). Verifiziert: weicher Prompt nennt "Tobi" ohne Tool-Aufforderung.
SOUL.md liegt in ~/.hermes/ (nicht im Repo).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-23 19:33:44 +02:00
Hitonabi 565994977f fix(v9): Hermes-Proxy non-streaming (Tool-Calls wurden im Stream geleakt)
Der Hermes-API-Server fuehrt im Streaming-Modus Tool-Calls nicht aus und
streamt rohe <function=…></tool_call>-Tokens als Text. Non-streaming
durchlaeuft den vollen Agent-Loop (Tools, Gedaechtnis). Proxy holt die
fertige Antwort und streamt sie wortweise selbst ans Frontend.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-23 19:27:23 +02:00
Hitonabi 8fd00d1887 feat(v9): Phase 2+3 — harter Cutover auf Hermes-Agent (:8642)
Mission Control proxyt jetzt zum Nous-Hermes-Agent-Server statt zum
Eigenbau-Agenten:

- routers/hermes.py: Chat-WS streamt als Proxy zu :8642 (OpenAI-API),
  WS-Contract (thinking/token/done/error) beibehalten -> HermesPanel
  unveraendert, kein Frontend-Build noetig. Status meldet Hermes-Health.
- config.py: HERMES_API_URL + HERMES_API_KEY (Key aus ~/.hermes/.env);
  HERMES_SIMPLE/COMPLEX_MODEL entfernt (Routing macht Hermes selbst).
- hermes_agent.py geloescht (ReAct-Loop, tote Tools, DuckDuckGo, Fake-Stream).
- CLAUDE/README/ROADMAP aktualisiert; Phasen 2+3 abgehakt.

Lokaler Smoke-Test: App importiert, /api/hermes/status liefert 200.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-23 19:24:09 +02:00
Hitonabi bc02779496 docs(v9): Phase 1 (Memory-Bridge) live
mcp_memory.py als MCP-Server in Hermes Agent registriert
(mission-control-memory, 5/5 Tools). Bidirektional verifiziert:
Hermes liest bestehende Memories und schreibt neue in dieselbe
SQLite via /api/memory. v7/v8.3-Gedaechtnis ohne Migration im Agenten.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-23 19:12:40 +02:00
Hitonabi 02615f16ae docs(v9): Hermes-Agent-Adoption entschieden + Phase 0 live
- ROADMAP: neue v9 (Nous Hermes Agent als Runtime, Mission Control = Control-Plane),
  5-Phasen-Plan; alte v8.4 (Windows-SSH) + altes v9 (Agentic-OS-Eigenbau) als
  ueberholt markiert; Phase 0 abgehakt mit Details
- CLAUDE: hermes_agent.py als DEPRECATED ab v9 markiert; Stack- und Status-Abschnitt
  auf die Adoption aktualisiert
- Phase 0 (Bosgame, 2026-06-23): Hermes Agent v0.17.0 installiert, coder-Modell um
  --jinja ergaenzt (Backup angelegt), auf llama-swap verdrahtet (provider=custom);
  Tool-Call-Proof erfolgreich (free -h, exakt deckungsgleich mit Live-Wert)
- docs/: alte README + Screenshot entfernt (nach Root-README konsolidiert)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-23 19:09:41 +02:00
Hitonabi c6fb8210b3 docs: README/CLAUDE/ROADMAP auf v8.1-v8.3 aktualisiert
- ROADMAP: v8.1 (Bug-Fixes), v8.2 (UX), v8.3 (Memory Import) als done markiert;
  v8.1-Hermes-SSH -> v8.4, v8.2-opencode -> v8.5 umnummeriert
- CLAUDE.md: Projektstatus + 3 neue Gotchas (system_status-Keys,
  OpenCode .jsonc, ConnectPanel NPM-Proxy)
- README.md: Hermes + Gedächtnis-Features aktualisiert, Download-Links erwähnt

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-23 18:32:19 +02:00
Hitonabi 6f4f25480a feat(v8.3): Memory Import aus Cloud-KIs + Batch-POST
- MemoryPanel: "Import"-Button öffnet Formular
- Jede Zeile wird ein eigener Gedächtnis-Eintrag (Batch-POST)
- Kategorie + Quelle (claude/gemini/chatgpt/import) wählbar
- Zeilen-Vorschau zeigt erkannte Einträge vor dem Speichern

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-23 18:25:17 +02:00
Hitonabi df1ba748d4 feat(v8.2): UX — Guide-Tabs, Begriffe oben, Mobile, Download-Links
- GuidesPanel: "Begriffe kurz erklärt" jetzt ganz oben (vor Guide-Karten)
- GuidesPanel: Tab-Navigation mit Kategorie-Chips + Active-Highlighting;
  Klick scrollt zur jeweiligen Guide-Gruppe
- ConnectPanel: Download-Links für Zed (zed.dev) und Cline (VS Code +
  JetBrains Marketplace) ergänzt
- base.css: Mobile-Breakpoint ≤520px — Sidebar wird zur Bottom-Nav,
  Content-Padding reduziert, Touch-freundliche Button-Höhen (min 40px),
  Topbar kompaktiert, Guide-Tabs horizontal scrollbar

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-23 18:23:57 +02:00
Hitonabi e8971fbf0c fix(v8.1): Kritische Bugs behoben — system_status, model-routing, UI
P0:
- hermes_agent: system_status Key-Mismatch behoben (cpu_pct→cpu.percent,
  ram_used_gb→ram.used/1024³, gtt analog) — zeigt jetzt echte Werte statt '?'
- guides-data: &amp; in 4 Titel-Strings → & (Svelte text-node rendert keine HTML-Entities)

P1:
- hermes_agent: choose_model() um recherchier/such/vergleich/etc. erweitert;
  kein Downgrade wenn komplexes Modell bereits geladen
- routers/hermes: asyncio.get_event_loop() → get_running_loop() (Whisper+TTS)
- maintenance: llama-swap Update akzeptiert optionales sudo-PW via stdin;
  import os hinzugefügt (fix NameError in updates()); UpdateReq-Model
- ServerPanel: Engine-Update fragt jetzt nach sudo-PW (analog OS-Update)
- HermesPanel: Chat-History in sessionStorage (überlebt Reload);
  Stopp-Button während Hermes antwortet; Verlauf-löschen-Button
- ConnectPanel: opencode.json → opencode.jsonc; provider → providers;
  LAN-IP Override (localStorage) für NPM-Proxy-Setups

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-23 18:19:01 +02:00
Hitonabi 8539999627 fix+docs: Bug-Fixes, vollstaendige Dokumentation v8
Bug-Fixes:
- hermes_agent.py: asyncio.get_event_loop() → get_running_loop() (Python 3.10+)
- routers/hermes.py: Thread-Lock fuer Whisper-Init, HERMES_WINDOWS_USER Import,
  Piper stderr logging, __import__ Anti-Pattern entfernt
- routers/memory.py: SQLite WAL-Mode, Kategorie-Enum-Validierung (user/instruction/stable/versioned/ephemeral)
- HermesPanel.svelte: findLast() → reverse().find() (Browser-Kompatibilitaet)
- ConnectPanel.svelte: Hardcoded Username durch Platzhalter ersetzt

Docs:
- CLAUDE.md: komplett aktualisiert (v7+v8, Hermes, Memory, alle Env-Vars)
- ROADMAP.md: v7+v8 als erledigt, naechste Features (v8.1-v9.1)
- README.md: komplett neu geschrieben (Agentic OS Konzept, alle Features)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-23 14:48:22 +02:00
Hitonabi 5881a21d9a feat(memory): Kategorien 'user' + 'instruction' fuer universelles Agenten-Gedaechtnis
Gilt fuer alle Tools (Hermes, Cline, OpenCode) via MCP-Server.
- user: wer der User ist, Praeferenzen, Arbeitsweise
- instruction: Verhaltensregeln fuer alle KI-Tools
Hermes-Agent speichert aktiv in diese Kategorien wenn er Neues lernt.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-23 14:37:25 +02:00
Hitonabi ff60d6ff26 fix(hermes): Kerstin (weiblich) statt Thorsten als TTS-Stimme
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-23 14:32:21 +02:00
Hitonabi 789eea782a fix(hermes): Piper-Installationsbefehle direkt im Setup-Wizard statt Platzhalter
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-23 14:28:33 +02:00
Hitonabi 3679465956 feat(hermes): v8 — Hermes Agent mit Voice-Interface
Lokaler KI-Assistent auf dem Bosgame: Text + Sprache, Tool Calling,
WebSocket-Streaming. Steuerzentrale des Agentic OS.

- hermes_agent.py: ReAct-Agent mit Tool-Set (read_file, list_dir,
  run_command, system_status, memory r/w, web_search)
- routers/hermes.py: WS /chat, POST /transcribe (Whisper),
  POST /tts (Piper), GET /status, GET /pubkey
- HermesPanel.svelte: Chat-UI mit Token-Streaming, Tool-Anzeige,
  Mikrofon-Button (MediaRecorder), Setup-Wizard (Windows SSH)
- Modell-Routing: scout fuer einfache Tasks, coder fuer komplexe
- HERMES_* Env-Vars in config.py

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-23 14:18:48 +02:00
Hitonabi e02a1889b2 feat(memory): v7 — Gedächtnis-Layer mit MCP-Integration
SQLite-basiertes Memory-System fuer persistentes Gedaechtnis ueber Sessions.
Cline, OpenCode und Claude Code teilen denselben Speicher via MCP-Server.

- routers/memory.py: CRUD + Export-Endpoint (GET/POST/PUT/DELETE /api/memory)
- mcp_memory.py: stdio MCP-Server — Tools: get/add/search/update/delete_memory
- MemoryPanel.svelte: Gedaechtnis-Tab mit Filter, Inline-Edit, Add-Formular
- ConnectPanel.svelte: Gedaechtnis-MCP Setup-Guide (Cline/OpenCode/Bosgame)
- Temporaere Eintraege (ephemeral) nach 7 Tagen automatisch geloescht

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-23 13:30:47 +02:00
Hitonabi 8b52cd20b4 fix(guides): OpenCode Desktop-App explizit erklärt
Hinweis ergänzt: CLI und Desktop-App nutzen dieselbe config.json,
alle Slash-Commands funktionieren in beiden Versionen gleich.
Unterschied nur beim Start: Terminal (cd + opencode) vs. GUI (Ordner wählen).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-23 12:50:43 +02:00
Hitonabi b88eba0da8 feat(tools): Jan AI + Continue + Antigravity — 7 Tools, 17 Guide-Tutorials
Verbinden-Tab neu strukturiert:
- Tool-Picker in 2 Sektionen unterteilt: Chat + Coding-Assistenten
- Jan AI: einfachstes Chat-Interface (Desktop-App, kein Docker)
  Config: Basis-URL + Modell-ID Copy-Fields wie Cline
- Continue: VS Code/JetBrains Coding-Hilfe ohne Agent-Overhead
  Config: fertiger config.json-Block mit allen konfigurierten Modellen
- Antigravity: Googles agentic IDE (VS Code-Fork, kostenlos)
  Config: Basis-URL + Modell-ID Copy-Fields
- continueBlock() Funktion für dynamisches config.json-Snippet

Guide neu strukturiert (17 Tutorials, war 14):
- "Welches Tool" Entscheidungsmatrix komplett neu: Chat vs. Coding,
  Jan AI als Einstieg statt OpenWebUI, Antigravity und Continue ergänzt
- Neu: "Jan AI — einfachstes Chat-Interface" (Schritt-für-Schritt)
- Neu: "Continue — Coding-Hilfe ohne Agent-Overhead" (Chat/Autocomplete/Inline-Edit)
- Neu: "Antigravity — Googles agentic IDE" (Multi-Agent, Manager-View)
- OpenWebUI repositioniert: "für Teams und Power-User" mit klarer Begründung
  wann OpenWebUI mehr Sinn macht als Jan AI

Recherche-Grundlage: jan.ai/docs, continue.dev, antigravityide.net,
Google Dev Blog (Antigravity), promptquorum.com (Frontend-Vergleich 2026)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-23 09:23:37 +02:00
Hitonabi a0ff9d1b25 feat(guides): Best Practices Update Juni 2026 — recherchierte Korrekturen
OpenCode:
- /compact hat Alias /summarize; /clear = Alias für /new (klar unterschieden)
- Multi-Agenten erklärt: Tab = primary agents wechseln; @name = Subagent aufrufen
- Agenten via Markdown-Dateien definieren (review.md → @review)
- Slash-Commands als Tabelle statt Bullet-Liste

Cline:
- Plattformen aktualisiert: VS Code, JetBrains, Cursor, Windsurf, Zed, Neovim, CLI (v3.81)
- Memory Bank Konzept ergänzt (projectbrief.md, activeContext.md, progress.md)
- .clinerules/ als Verzeichnis möglich für große Projekte
- Spending Limits (seit April 2026 / v3.78) dokumentiert
- Hinweis: .clinerules-Größe kostet Kontext → kürzer ist besser
- "in VS Code" im Titel entfernt (irreführend)

MCP:
- Empfehlungsliste als Tabelle, nach Anwendungsfall gegliedert
- Playwright (Browser-Automation) ergänzt
- Memory MCPs (mem0) als 2026-Standard ergänzt
- GitHub = meistinstalliert ever; filesystem = meistgenutzt ever
- "36.000+ MCPs verfügbar" als Kontext

Skills & Rules:
- skills.sh: Vercel-Launch Jan 2026, npm-Pendant für Skills erklärt
- Sicherheitshinweis: Snyk-Audit 2026 — 13,4% kritische Probleme in Community-Skills
- SkillHub als qualitätsgeprüfte Alternative ergänzt

AGENTS.md:
- Als plattformübergreifender 2026-Standard hervorgehoben (10+ Tools lesen es nativ)
- 200-500 Zeilen Sweet Spot dokumentiert (Kontext-Overhead)

Konzepte:
- Quantisierung: IQ4_XS als Alternative + Q8_0 für Coding/Reasoning
- Memory Bank als neues Konzept ergänzt
- Skills/Rules: plattformübergreifender Standard erwähnt

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-23 09:09:08 +02:00
Hitonabi 05acad5af8 feat(guides): Quellen überall + Persona-Onboarding
Quellen/Links:
- OpenCode → opencode.ai/docs
- Cline → cline.bot
- OpenWebUI → openwebui.com
- MCP → mcp.run, smithery.ai, modelcontextprotocol.io/servers
- Skills & Rules → skills.sh (neu), cursor.directory
- Persona → skills.sh, cursor.directory
- AGENTS.MD → skills.sh, opencode.ai/docs
Neue .tut-sources CSS-Klasse: dezente Trennlinie, Teal-Links.

Persona-Tutorial grundlegend erweitert:
- Zwei Dimensionen erklärt (WAS der Agent tut vs. WIE er mit dir umgeht)
- Template um Beziehungs-/Interaktionszeile erweitert
- Beispiele zeigen jetzt auch Feedback-Stil, Proaktivität, Fehlerkultur
- Neues Onboarding-Interview-Template: Agent befragt den Nutzer selbst
  (6-8 Fragen, eine nach der anderen) und schreibt daraus eine
  maßgeschneiderte AGENTS.md — der schnellste Weg zu einer echten Persona.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-23 09:00:36 +02:00
Hitonabi 18236fc6d6 feat(guides): Persona + AGENTS.MD/SAVEPOINT.MD Tutorials
Zwei neue Tutorials in der Gruppe „Agenten meistern":

1. Die Persona — deinem Agenten eine Rolle geben
   Erklärt was eine Persona ist, warum sie den Unterschied macht,
   + Copy-paste-ready Template + 2 konkrete Beispiele (Coding-Assistent,
   Lernbegleiter) + Tabelle wo man sie einträgt (pro Projekt vs. global).

2. AGENTS.MD & SAVEPOINT.MD — Gedächtnis für den Agenten
   Erklärt den Unterschied (was das Projekt ist vs. wo wir stehen),
   + vollständige Vorlagen für beide Dateien die direkt nutzbar sind,
   + 2-Schritt-Workflow (Session starten / beenden).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-23 08:53:22 +02:00
Hitonabi c0f77ba69c feat(guides): Guide-Tab komplett neu — 4 Gruppen, 12 Tutorials
Vollständige Überarbeitung des Guide-Tabs:

Struktur: Statt 8 gleichwertiger Accordions jetzt 4 klar getrennte
Gruppen (EINSTIEG / TOOLS EINRICHTEN / AGENTEN MEISTERN / WENN ETWAS
NICHT KLAPPT) — jede als eigene Card mit farbigem Teal-Label.
Anfänger sehen sofort die logische Reihenfolge.

Neue Tutorials (war 8, jetzt 12):
- "Welches Tool für mich?" — Entscheidungsbaum (OpenWebUI/Cline/OpenCode/Zed)
- "OpenCode verbinden & erste Schritte" — Config + Befehle
- "Cline in VS Code verbinden" — Plan- vs. Act-Modus erklärt
- "OpenWebUI verbinden" — für Nutzer ohne Programmierkenntnisse
- "Einen Agenten richtig briefen" — Schlecht→Gut-Beispiele
- "MCP" — überarbeitet mit konkretem Config-Beispiel und Empfehlungen
- "Skills & Rules" — AGENTS.md / .clinerules mit echten Pfaden und Quellen
- "Häufige Probleme & Lösungen" — Troubleshooting-Tabelle (7 Fälle)

Zusammengeführt: Kontext-Tutorials 2+3 (waren doppelt) → ein Tutorial.

Neue CSS-Komponenten: .tut-table/.tut-row für Vergleichstabellen,
.tut-code für Code-Blöcke, .bad für durchgestrichene Negativbeispiele.
Neues main.css von Vite extrahiert und in index.html eingebunden.

Konzepte erweitert: Token, TTL, System-Prompt, Vision ergänzt (war 9, jetzt 12).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-23 08:48:25 +02:00
Hitonabi c33fe57433 fix(ux): Idiotensicherheit — 8 Audit-Fixes
Behebung der drei kritischsten UX-Schwachstellen aus dem Produkt-Audit:

1. ConnectPanel: Steps 2-4 (Modellauswahl, Tool-Picker, Config-Snippet,
   Vision) werden blockiert wenn noch kein Modell installiert ist.
   Stattdessen klarer Hinweis "Erst im Cookbook ein Modell holen" mit
   direktem CTA. Verhindert dass Anfänger ein Snippet mit Fake-"coder"
   kopieren, bevor ein echtes Modell existiert.

2. OverviewPanel: preload() schluckte Fehler still (catch {}). Zeigt
   jetzt einen verständlichen Toast wenn die Engine nicht erreichbar ist.
   Schnellstart ist kontextsensitiv: ohne Modelle zeigt er Onboarding-
   Schritte (Modell holen → Verbinden → Guide lesen) statt sinnloser
   Aktionen wie "Speicher freigeben".

3. CookbookPanel Profi-Suche: doDownload() nutzte zwei sequenzielle
   API-Calls (download + register) — wenn der zweite scheiterte, blieb
   das System in einem inkonsistenten Halbzustand. Jetzt ein einziger
   atomarer Aufruf an /api/cookbook/install-model (wie Recipe/Discover).
   Backend-Erweiterung: InstallModelReq akzeptiert jetzt 'file' und
   'ctx' um Nutzer-Auswahl direkt zu übergeben.

4. Cookbook Section 1 als "Hier starten" markiert ("1 · Anwendungsfall
   wählen & installieren" mit erklärendem Sub-Text).

5. Post-Download-Toasts: Alle drei Install-Pfade sagen nun einheitlich
   "Modell erscheint danach automatisch im Modelle-Tab" statt nur
   "siehe Aktivität".

6. too_tight-Alternative: Bei Modellen/Setups die den Speicher übersteigen
   wird jetzt eine konkrete Alternative (kleinere Datei / passendes Rezept)
   verlinkt statt nur "Trotzdem installieren".

7. Duplikat extract_params_b aus cookbook.py entfernt — importiert jetzt
   aus hw_math (Single Source of Truth).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-23 08:31:34 +02:00
Hitonabi a93751fb01 feat(dashboard): Dashboard-Redesign + Bugfixes + Pre-load
Bugs behoben:
- Topbar + Server-Panel: 'Kein Modell im VRAM' obwohl geladen → alle
  States (running/ready/loading/starting) werden jetzt erkannt
- Topbar zeigt bei geladenem Modell: Name + ctx-Größe + State mit Farbe

Dashboard-Redesign (OverviewPanel):
- KPI-Kacheln mit Farbe: .kpi.green/.red/.blue/.muted statt .tile
  (farbige Randlinien + farbige Werte wie im Referenz-Design)
- Icons pro Kachel (server, cpu, thermo, database)
- Stack-Liste: zeigt ctx/quant/GB, 'Laden'-Button wenn Modell bereit
  aber nicht geladen, ∞-Chip für immer-aktive Modelle
- 4. Schnellstart-Button: 'Tools verbinden'

Feature: Modell Vorwärmen (Pre-load):
- POST /api/preload?model=<name> — sendet Mini-Request an llama-swap
  damit es das Modell vorab lädt (max_tokens=1, kein Output)
- 'Laden'-Button je Modell in der Stack-Liste

Topbar CSS:
- Aktives Modell: teal-hinterlegter Pill wenn Modell geladen
- Kontext-Größe direkt neben Modellname angezeigt

Cookbook:
- Discover: genaue Zeitanzeige wann Quellen zuletzt befragt wurden
  ('vor X min / h / Tg.') statt nur 'aktuell'

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-23 08:04:40 +02:00
Hitonabi f536f454ba fix(connect): OpenCode contextWindowSize nutzt echten Modell-Kontext
openCodeBlock() baut jetzt Modell-Objekte statt nur ID-Strings, damit
m.meta.ctx ausgelesen werden kann. contextWindowSize wird korrekt auf
den konfigurierten Kontext gesetzt (Standard: 131072 = 128k).

Vorher: { "name": "coder" }  (kein Kontexthinweis → AI-SDK-Default)
Nachher: { "name": "coder", "contextWindowSize": 131072 }

Identisches Problem wie bei Zed max_tokens (war 32768 hardcoded).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-22 22:25:52 +02:00
Hitonabi d8fe1f8097 fix+feat: offene Punkte abgeschlossen
Kontext in Connect-Snippet:
- ConnectPanel: max_tokens nutzt jetzt den echten konfigurierten Kontext
  des Modells (m.meta.ctx) statt hartkodiertem 32768 -> Zed sieht 128k

Phase D - 'Immer aktiv halten' Toggle:
- models.py: UpdateReq bekommt optionales ttl-Feld
- update_model: setzt TTL wenn angegeben (ctx und ttl unabhaengig)
- ModelsPanel: Checkbox 'Immer aktiv halten' im Konfig-Modal
  (TTL=99999 = nie entladen, TTL=300 = Standard 5min)

MoE tps-Schaetzung:
- hw_math.py: extract_active_params_b() erkennt A3B-Suffix
- estimate_speed(): moe_active_ratio-Parameter, sqrt-Boost fuer MoE
- evaluate_fit(): name-Parameter (optional) fuer automatische MoE-Erkennung
- cookbook.py: alle evaluate_fit-Aufrufe mit name= versehen

Cleanup:
- static/js/panels/*.js + static/js/main.js geloescht (Dead Code)
- wird-Datei (versehentlich committet) geloescht
- CLAUDE.md: KISS-Statement auf Vite+Svelte-Stand aktualisiert

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-22 22:21:15 +02:00
Hitonabi 5e9471a778 fix(vision): mmproj-Projektor wird jetzt automatisch mitgeladen
Bisher: install-recipe + install-model luden nur die Haupt-GGUF, aber
nicht den mmproj-Projektor → Vision-Modelle starteten ohne --mmproj und
konnten keine Bilder verarbeiten (obwohl der Hinweis sagte 'wird automatisch ergänzt').

Fix:
- _pick_mmproj(repo): findet die mmproj-F16/BF16-Datei im HF-Repo
- install-recipe: lädt mmproj mit hf download (multi-file) + ergänzt --mmproj/--jinja im cmd
- install-model: gleicher Fix
- Requirement-Text präzisiert (explizit 'mmproj-F16 wird mitgeladen')

hf-cli unterstützt mehrere Dateien pro Download-Aufruf → ein einziger Job
für Haupt-GGUF + Projektor.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-22 22:13:02 +02:00
Hitonabi 86831a3627 feat(phase-c): Vollstaendige Svelte-5-Migration aller 8 Panels
Alle Panels vollstaendig migriert (kein Legacy-JS mehr):
- OverviewPanel: Hero, Metriken, System-Gesundheit, Stack, Top-News
- JobsPanel: KPI-Kacheln, Sparklines, Job-Liste mit Log/Abbrechen
- ServerPanel: Engine-Status, Service-Aktionen, Live-Konsole (WebSocket)
- ModelsPanel: Schnelltest-Chat, Tabelle, Konfig- + Rollen-Modal
- CookbookPanel: Rezepte, Discover, Profi-Suche, 3 Modals (Rezept/Modell/Neu)
- ConnectPanel: Wizard, Tool-Picker, merge-sichere Snippets
- GuidesPanel + NewsPanel: bereits in Phase C1 migriert

main.ts: importiert nur noch Svelte-Panels (keine Legacy-JS-Imports)
index.html: Placeholder-Divs entfernt, nur noch leere Sections
stores/jobs.svelte.ts: track/toggle-Funktionen fuer ServerPanel
svelte.config.js: a11y-Warnungen als non-fatal konfiguriert
Build: 119 Module -> 137 kB (gzip: 48 kB)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-22 22:08:08 +02:00
Hitonabi 27b229b3d7 docs/fix: Deploy-Kette fuer Svelte-Build dokumentiert + node_modules excludiert
- CLAUDE.md: npm run build als Schritt vor git push dokumentiert, Vite-Dev-Hinweis
- maintenance.py self-update: frontend/node_modules vom rsync ausgenommen

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-22 21:50:49 +02:00