Commit Graph
745 Commits
Author SHA1 Message Date
HitonabiandClaude Opus 5.5 37133fd5ed doku: erster echter Homelab-Update-Lauf (Gitea) gruen, Phase 4 erledigt
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-24 19:33:06 +02:00
HitonabiandClaude Opus 5.5 4a2b1723f4 homelab: Ausfuehrer erkennt die App auch am neuen /usr/bin/update (SCRIPT_SLUG), das Community-Scripts nach jedem Update schreibt
Nach dem ersten echten Update (Gitea 1.27.2 -> 1.27.3) stand Gitea nur noch als "gitea" ohne App-Baustein da.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-24 19:29:55 +02:00
HitonabiandClaude Opus 5.5 528198de60 homelab: Update-Weg je App (Knopf nur, wo das Community-Script die App wirklich aktualisiert), Version von PVE Scripts Local aus der App selbst
Nachgelesen in ct/<app>.sh: AdGuard und PVE Scripts Local verweisen auf ihren eingebauten Updater,
Gitea/NetBird/NPMplus aktualisieren wirklich, PBS ueber die Pakete. /root/.proxmoxve-local stand noch
auf 0.5.8, die App selbst schon auf der neuesten Veroeffentlichung (v1.2.1, untagged).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-24 19:20:04 +02:00
HitonabiandClaude Opus 5.5 56df849455 doku: Phase 0-4 live, offene Homelab-Punkte (Arcane-Schluessel, feste IP, alte Paketlisten), Verdikte Nachtmeldungen und Homelab-Instanz
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-24 19:12:32 +02:00
HitonabiandClaude Opus 5.5 160381d8b3 homelab: eigener Live-Strom (keine Getrennt-Anzeige mehr), Hinweise des Homelab-Waechters auf der Seite, Verbindungsanzeige je Instanz
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-24 19:10:02 +02:00
HitonabiandClaude Opus 5.5 83c33584e4 letzte Kanten: Hermes-Abruf 60 s statt 25 s, kein Pfeil auf dieselbe Version, Homelab-Container mit Sicherheitsupdates
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-24 19:05:56 +02:00
HitonabiandClaude Opus 5.5 39320b446d homelab: eigener Container nicht in der Geraeteliste, Geheimnis beim Einrichten richtig anstossen, Deploy zieht den Homelab-Teil mit
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-24 19:01:20 +02:00
HitonabiandClaude Opus 5.5 b452b5e672 ausfuehrer: Nur-Lesen-Modus (nur Bericht, jeder andere Auftrag abgelehnt), wahlweise bei der Einrichtung
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-24 18:52:36 +02:00
HitonabiandClaude Opus 5.5 209549f0f3 homelab: Arcane und Docker (eigene Version oeffentlich, Images mit Schluessel, Updates zuerst als Probelauf); Datei-Sperren gegen Windows-Wettlauf
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-24 18:48:28 +02:00
HitonabiandClaude Opus 5.5 5e9227c4a3 phase3+4: Homelab-Teil (Ausfuehrer, Ziele, Jetzt updaten mit Rueckweg) und Seite Homelab fuer alle Geraete
- deploy/homelab/ausfuehrer.py: laeuft als root auf dem Proxmox-Host, holt Auftraege beim Homelab-Teil
  ab (Pull, kein offener Port), feste Aktionsliste, prueft Etiketten selbst; Bericht gegen den echten
  Host erprobt (nur lesend). Kein Proxmox-Schluessel im Container noetig.
- services/homelab: Kanal mit gemeinsamem Geheimnis, App-Katalog, Inventar -> Ziele im gemeinsamen
  Modell (GitHub-Versionen, Webpruefung, alte Paketlisten = unklar), Jetzt updaten: Snapshot ->
  Update -> Pruefung -> bei Rot zurueck + dringende Meldung
- Waechter in der Rolle homelab: Ausfuehrer schweigt, Gaeste antworten nicht
- kern/github.py fuer beide Rollen (auch untagged Releases mit Version im Namen)
- Oberflaeche: Seite Homelab zeigt alle Geraete als Karten (KI-Box ueber /api/ziele, Homelab ueber
  /api/homelab/ziele) mit Stand, Rueckweg und Knopf samt Rueckfrage
- Einrichtung als Skripte (container-anlegen, ausrollen, ausfuehrer-einrichten, box-partner) — noch
  nicht ausgefuehrt, jeder Schritt braucht das User-OK
- frontend-bauen-box.sh: Frontend-Pruefung und Build auf der Box, wenn der PC keinen Speicher hat

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-24 18:39:59 +02:00
HitonabiandClaude Opus 5.5 a47489fa85 phase2e: Modelltausch schreibt die llama-swap-Config einmal statt bis zu siebenmal
- llamaswap.sammeln(): Aenderungen lesen dieselbe Config aus dem Speicher, geschrieben wird
  einmal am Ende, bei einem Fehler gar nicht
- Radar-Tausch und Hirn-Umstellung nutzen es; Hermes wird erst nach dem Schreiben umgestellt
- Test-Attrappe fuer update_brain_model: der Radar-Test faesst auf der Box nie die echte
  Hermes-Config an
- Doku: Ziel-Modell, strukturierter Verlauf, Sammel-Schreiben

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-24 18:18:47 +02:00
HitonabiandClaude Opus 5.5 589c14d5e9 phase2d: gemeinsames Ziel-Modell, KI-Box als erster Adapter, strukturierter Update-Verlauf
- kern/ziele.py: Ziel -> Bausteine mit Stand (neu/aktuell/unbekannt/festgehalten/wird-geprueft),
  Versionen und dem Knopf, der das Update anstoesst; gleiches Modell fuer Box und Homelab
- services/box_updates.py: Update-Zwischenspeicher aus dem Router geholt, ki_box_ziel() als
  Box-Adapter; GET /api/ziele
- Update-Verlauf strukturiert: autoupdate.sh und die Update-Knoepfe schreiben je Baustein eine
  JSON-Zeile (mc2-update-verlauf.jsonl); die Meldungstexte bleiben gleich, aeltere Laeufe kommen
  weiter aus dem Meldeprotokoll. Updates per Knopf erscheinen jetzt auch im Verlauf.
- jobengine: Abschluss-Haken fuer jedes Ende (neben der Nacharbeit fuer den Erfolg)
- Sonntags-Lauf setzt seinen Anlass; Hermes-Job aus dem Lauf schreibt nicht doppelt
- Vertragstest Bash-Schreiber gegen Python-Leser (laeuft auf der Box mit jq)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-24 18:14:42 +02:00
HitonabiandClaude Opus 5.5 22bb8c672b phase2c: Oberflaeche heisst Homelab Orchestrator, Bereich Homelab, Anfragen gehen an die richtige Instanz
- /api/instanz: Rolle der ausliefernden Instanz, ohne Netzabfragen
- lib/instanz.ts: /api/homelab/... an die Homelab-Instanz, alles andere an die Box,
  ueber /api/partner/..., wenn die andere Instanz die Seite ausliefert
- neue Seite Homelab: Stand der zweiten Instanz (noch nicht eingerichtet / verbunden /
  antwortet nicht) und was dazukommt
- Kopfzeile, Titel und Web-Manifest mit neuem Namen; fuenfter Menuepunkt, 320 px geprueft

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-24 17:59:23 +02:00
HitonabiandClaude Opus 5.5 ee2bb9d03c wartung: Groesse je Quantisierung, GitHub-Antworten 15 min gemerkt, Hermes-Version auch bei haengendem Abruf
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-24 17:52:37 +02:00
HitonabiandClaude Opus 5.5 0e961f112b dist: Oberflaeche Box-Wart 1.0 gebaut
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-24 17:49:35 +02:00
HitonabiandClaude Opus 5.5 d1ddafe721 Merge wartung/phase1d-frontend: Oberflaeche Box-Wart 1.0 (Updates, Modelle, Start, Strom, 320 px, Zustaende)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-24 17:47:25 +02:00
HitonabiandClaude Opus 5.5 97ba6420e2 doku: Phase 2b nachgezogen, tote Doku-Verweise im Code, Morgenmeldung verweist auf den echten Stapel
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-24 17:47:16 +02:00
HitonabiandClaude Opus 5.5 8eb2fec2ea Merge doku/phase1e-neuordnung: Doku auf den Stand des Homelab Orchestrators
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-24 17:45:25 +02:00
HitonabiandClaude Opus 5.5 bc1106ddc8 durchsicht: Rueckfragen passen aufs kleine Handy, ehrlichere Texte, Abbrechen nur wo es stoppt
Befunde der Schlussdurchsicht (Attrappe des Backends, 320 x 568 bis 1440 px):
- Rueckfragen: Bei 320 x 568 lagen "Installieren"/"Abbrechen" unter dem Bildschirmrand
  und liessen sich nicht erreichen (Dialog 791 px hoch, kein Scrollen). Jetzt hoechstens
  Bildschirmhoehe, der Text scrollt, die Knoepfe bleiben unten stehen. Gilt fuer alle.
- Installieren: Die Rueckfrage sagt jetzt, dass llama-swap beim Eintragen sofort neu laedt
  (--watch-config): laufende Antworten von Lucy/OpenChamber brechen ab, mit Rolle nach dem
  Download noch einmal. Der Ersatz-Hinweis nennt, dass das bisherige Modell "heavy" behaelt.
- Abbrechen nur noch bei Downloads (eigener Prozess). Updates und die Suche laufen als
  Shell-Kette, ein Abbruch stoppt dort nicht sicher alles.
- Auftragstitel in den Worten der Oberflaeche ("Update Motor (llama.cpp)" statt
  "Engine-Update (llama.cpp Vulkan)"); "Laeuft seit ... min" zaehlt weiter, auch wenn der
  Auftrag nichts schreibt; Ueberschriftenebene passend zum Panel.
- Updates: "Alles jetzt aktualisieren" richtet sich wie die Zeilen nach den frischen
  Details (vorher nur nach dem bis zu 10 min alten Start-Stand); "Nach Neuem suchen"
  sperrt, solange eine Suche laeuft (zwei apt-get update stolpern ueber die Sperre);
  Rueckfragetext sagt genau, was gesichert wird.
- Nach Auftragsende nur nachladen, was betroffen ist (Download: Modelle/Platte; sonst
  Versionen/Verlauf/Sicherungen) - die Update-Pruefung fragt GitHub, apt und git.
- Radar "Uebernehmen"/"Verwerfen" und "Endgueltig loeschen": Ja-Knopf gesperrt, solange
  die Aktion laeuft, und ein zweiter Klick waehrend des Schliessens loest nichts mehr aus.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-24 17:44:40 +02:00
HitonabiandClaude Opus 5.5 1389b46846 pruefen: auch ausserhalb eines Git-Checkouts; probelauf-box.sh prueft HEAD auf der Box
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-24 17:43:43 +02:00
HitonabiandClaude Opus 5.5 45048c60b7 doku: Stand main 75611be nachgezogen (Phase 2a, Waechter-Fixes)
- STACK.md: Instanz-Rolle box, Partner noch nicht eingerichtet; 62 /api-Routen; Waechter prueft
  die Partner-Instanz, sobald es sie gibt.
- OFFENE-FAEDEN.md: Phase 2 begonnen (2a auf main: backend/kern/, /api/partner,
  Partner-Pruefung, Telegram-Zweitweg); die Homelab-Instanz selbst in Phase 3 (User-OK).
  Punkt "Waechter prueft die schlafende Spracherkennung" gestrichen - auf main behoben (99ba6a7).
- VERDIKTE.md: eine Codebasis, zwei Rollen (MC_ROLLE); zweiter Weg zu Telegram direkt ueber die
  Bot-API.
- FALLEN.md: schlafgelegte Dienste auch in den HTTP-Proben ausnehmen (Fehlalarm 24.09. 14:56).
- ARBEITSWEISE.md, README.md: Homelab-Instanz ab Phase 3, Partner-Pruefung "sobald eingerichtet".

Pruefungen: git grep auf Altbegriffe ausserhalb docs/archiv trifft nur noch die Tabelle
"Ueberholt (mit Datum)" in VERDIKTE.md; 0 tote Links in 15 Dateien; keine zerrissenen Tabellen.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-24 17:43:25 +02:00
HitonabiandClaude Opus 5.5 b1bc9395cf jobengine: Nacharbeit laeuft vor dem Endzustand (Wettlauf, auf der Box sichtbar)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-24 17:42:42 +02:00
HitonabiandClaude Opus 5.5 e1d7d499f8 phase2b: Auftraege ueberleben einen Neustart von MC2
- jobengine: jeder Auftrag laeuft als eigene systemd-Einheit mc2-job-<id> (systemd-run,
  RuntimeMaxSec als Zeitlimit); Akte, Protokoll und Exit-Code liegen unter
  <Datenordner>/mc2-jobs; MC2 nimmt laufende Auftraege beim Start wieder auf
- Geheimnisse (HF_TOKEN) ueber eine nur fuer den Nutzer lesbare Umgebungsdatei, die der
  Auftrag beim Start liest und loescht; nichts davon in Befehlszeile oder Einheit
- benannte Nacharbeiten (wartung:nach_update, modell:rolle) statt Closures, laufen auch
  nach einem Neustart
- ohne systemd (PC, Tests) weiter als Kindprozess
- deploy.sh wartet nur noch auf Update-Auftraege; Downloads laufen weiter
- 14 neue Tests; systemd-Weg auf der Box echt geprueft (Neustart, Abbruch, Zeitlimit,
  Geheimnis nicht sichtbar)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-24 17:41:26 +02:00
HitonabiandClaude Opus 5.5 424aaada27 doku: Einstieg neu (README, docs/README, BEDIENUNG), Jobs-Uebersicht, AGENTS korrigiert
- README.md: eine Seite zum Homelab Orchestrator - Bereiche Box-Wart und Homelab, zwei
  Instanzen, Seiten der Oberflaeche, was von allein laeuft, Dienste und Ports, Entwickeln mit
  Prueftor, Links. Ersetzt die alte MC2-Seite (Mem0, Ideen-Queue, entfernte Routen, alte
  Modelltabelle, kaputte Tabellen).
- docs/README.md (loest docs/wissen/README.md ab): Index, Lesereihenfolge, Archiv-Uebersicht,
  Pflegeregeln.
- docs/BEDIENUNG.md: fuer den User neu geschrieben - Start, Updates, Modelle, Dienste,
  Einstellungen, jede Telegram-Nachricht mit Bedeutung und Handgriff, "wenn etwas hakt".
- deploy/jobs/README.md: alle Jobs und Timer (Modell-Radar, NerdQuiz-Nachtlauf 03:00,
  Updates wieder per Timer), Ausbringen macht deploy.sh, Daily-News-Kette auf dem Stand vom
  23./24.09.
- AGENTS.md: Coding-Oberflaeche heisst OpenChamber; der Verweis auf .agents/mcp_config.json
  (am 24.09. geloescht) ersetzt durch den tatsaechlichen Weg ueber :9001/v1; Titel mit dem
  neuen Produktnamen.
- Archivdatei der Referenzaufgabe umbenannt (…-gedaechtnis-ausbau.md), damit der Index keine
  Altnamen traegt.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-24 17:41:25 +02:00
HitonabiandClaude Opus 5.5 f4bbdad311 doku: Betriebsdoku neu (ARCHITEKTUR, BETRIEB, UPDATES, RADAR, WIEDERAUFBAU)
- ARCHITEKTUR.md (neu): Prozesse und Units, Rollen box/homelab und Partner-Instanz aus
  Phase 2a (kern/einstellungen.py, kern/zeit.py, kern/partner.py, /api/partner), Modell-Rollen,
  Bild-Weiche, wer welche Datei schreibt (inkl. mc2-quittiert.json), Meldeweg mit
  Telegram-Zweitweg, alle 62 /api-Routen, Herkunftspruefung, kurzer Ausblick Homelab-Teil.
- BETRIEB.md (neu, loest RUNBOOK.md und BACKUP.md ab): Handgriffe, Meldungen und Betreffzeilen,
  Waechter-Regeln (Partner nach 5 Takten, Spracherkennung nur wenn wach, Ausblenden-Knopf),
  Dienste schlafen/wecken, zweistufiger Deploy mit Prueftor, Sicherung und Zurueckspielen,
  Notfall, Pfade auf der Box.
- UPDATES.md (neu): Sonntags-Kette per Timer, Postchecks, Festhalten und Freigeben, Handbetrieb,
  Update-Verlauf, Fallen.
- RADAR.md (neu): Modell-Radar (Leitplanken, Nachtablauf, Pruefstand, Uebernehmen/Verwerfen,
  Merkliste) und Stack-Radar.
- WIEDERAUFBAU.md (neu, loest DISASTER_RECOVERY.md ab): entschlackte Schrittfolge, Anhang A
  (llama-swap-Unit und Drop-ins) behalten.

Stand der Aussagen: Code in main 75611be.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-24 17:37:09 +02:00
HitonabiandClaude Opus 5.5 83941847ab auftraege: Karten am PC zweispaltig
Vier Auftraege (zwei laufende, zwei frisch beendete) nahmen auf der Modelle-Seite fast
eine Bildschirmhoehe ein. Ab 1024 px stehen die Karten nebeneinander.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-24 15:43:23 +02:00
HitonabiandClaude Opus 5.5 29ec6f2ccf aufraeumen: shadcn nur noch zum Bauen, tote Exporte und Test-Attrappen raus, Lint-Regeln scharf
- shadcn liefert zur Laufzeit nichts: gebraucht wird nur shadcn/tailwind.css beim Bauen
  (am PC und im CI, beide mit npm ci inkl. devDependencies). Also devDependency; 325
  Pakete im Lockfile haengen ausschliesslich daran und sind jetzt "dev".
- @testing-library/user-event war nirgends benutzt: entfernt.
- Dialog/Sheet: ungenutzte Trigger/Close/Footer und "use client" raus.
- test/setup.ts: ResizeObserver-Attrappe fuer Recharts und Kraftgraph entfernt - beide
  gibt es nicht mehr, und Radix' Dialog misst nichts.
- eslint.config.js: Die vier React-Compiler-Regeln sollten laut Kommentar auf "error",
  sobald ihr Zaehler 0 ist. Er ist 0 - jetzt error. Veraltete Zahlen und "Recharts" im
  Kommentar korrigiert.
- lib/utils.ts bleibt (Ziel von components.json fuer die shadcn-CLI), jetzt mit Kommentar.
- Lockfile: npm 11.17 traegt sechs optionale wasm32-Unterpakete zusaetzlich ein, auch
  ohne diese Aenderung; die sind wieder raus, damit der Diff nur das Gewollte zeigt.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-24 15:42:13 +02:00
HitonabiandClaude Opus 5.5 75611be9a9 phase2a: Kern fuer zwei Instanzen (Rolle, Partner, Telegram-Zweitweg)
- kern/einstellungen.py: MC_ROLLE (box|homelab), Instanzname, Datenordner, Partner-URL
- kern/zeit.py: eine Zeitzone statt sechs Kopien
- app.py/steward.py: Box-Router und Warm-Set nur in der Rolle box; der Homelab-Teil
  laedt nichts von der Box
- /api/health nennt Rolle und Instanz; Engine/Gateway/Hirn nur auf der Box
- /api/partner (Lebenszeichen) und /api/partner/<pfad> (Durchreiche, ohne Schleifen und SSE)
- Waechter prueft die andere Instanz (rot erst nach 5 Takten, ein Neustart ist kein Alarm)
- notify.sh: Zweitweg direkt an die Telegram-Bot-API, wenn hermes send scheitert oder fehlt;
  Token nicht in der Prozessliste, Tests greifen nie auf die echte .env
- update_verlauf erkennt "OK telegram direkt"

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-24 15:41:08 +02:00
HitonabiandClaude Opus 5.5 bd12667231 zustaende: Dienste und Einstellungen sagen, was los ist
- Dienste: Lade-, Fehler- und Leerzustand; das Protokoll erscheint direkt unter dem
  angetippten Dienst (am Handy stand es vorher unter der ganzen Liste ausser Sicht) und
  meldet Lesefehler; "Wirklich neu starten?" hat ein "Nein", waehrend eines Neustarts
  sind die Knoepfe gesperrt, Meldungen nennen den Dienst beim Namen statt der Unit.
- Einstellungen: Solange der Stand laedt, steht "Wird gelesen ..." statt eines falschen
  "Fehlt."; Lesefehler und eine nicht beschreibbare Ablage werden gesagt; Speichern
  sperrt gegen Doppelklick, "Zugang loeschen" fragt vorher nach.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-24 15:38:17 +02:00
HitonabiandClaude Opus 5.5 24e6dd81ba doku: Wissen auf den Box-Wart-Stand (STACK, VERDIKTE, FALLEN, ARBEITSWEISE, OFFENE-FAEDEN)
- STACK.md: Stand 24.09. - Dienste mit Zustand (Konsole und Spracherkennung schlafen), Units im
  Repo und nur auf der Box, Modelltabelle aus der Config vom 24.09. (Hirn, Coder, zwei
  Bild-Zwillinge, brains mit exclusive: false), Hermes v0.21.4 mit MCP-Stand nach der Diaet,
  vollstaendiger Automatik-Fahrplan (Timer, Hermes-Crons, NerdQuiz 03:00), Coding-Bahn
  OpenChamber, Sicherheit in einem Satz.
- VERDIKTE.md: Box-Wart-Verdikte vom 23./24.09. ergaenzt (Umbau statt Neubau, zwei Instanzen,
  Homelab-Rechte und -Updates, keine Anmeldung, Nachtruhe, Timer, Box-Diaet, Radar-Leitplanken,
  Bild-Zwillinge, exclusive: false); Ueberholtes in eine Tabelle "Ueberholt (mit Datum)";
  Formatfehler (Zeilen mit "|-") beseitigt.
- FALLEN.md: neue Fallen (Persistent=true, Abzug ueberschreibt lebende Config, Jobs sterben bei
  MC2-Neustart, exclusive, Draft+Bild=500, Hermes-Cron als Updater, write_file, web_extract,
  Gitea-SSH-Benutzer); Werkstatt-, Kritiker-, Delegations- und Desktop-Fallen gestrichen.
- ARBEITSWEISE.md mit GRENZEN.md zusammengelegt; Flaechen-Tabelle fuer Box-Wart, Homelab-Teil,
  Lucy, Hermes, Telegram, OpenChamber, Android-App.
- OFFENE-FAEDEN.md neu: Phasen 0-5 laut Plan (Phase 1 laeuft, Oberflaeche und Doku offen) und
  13 offene Einzelpunkte, alle am Code in main belegt.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-24 15:38:10 +02:00
HitonabiandClaude Opus 5.5 a091ccb3b8 layout: 320 px ohne Ueberstand, Schubladen in voller Breite, Doppelklick-Sperre greift sofort
Befunde aus der Sichtpruefung (Attrappe des Backends, 320/768/1024/1440 px):
- Zaehlwerk: Das "H" ragte bei 320 px 30 px ueber sein Feld. Ziffern skalieren jetzt
  mit der Feldbreite (Container-Einheiten), am PC bleibt es bei 38 x 56 px.
- Flugplan und Update-Verlauf: Der Text bekam schmal nur ~50 px und lief in den Zustand.
  Schmales Feld: Zeit und Zustand oben, Text darunter (nach Feldbreite, nicht Bildschirm).
- Update-Zeilen am Handy: Name und Version stiessen aneinander ("BetriebssystemUbuntu"),
  die Version steht jetzt darunter; scheitert die Pruefung, heisst sie "unbekannt" statt "-".
- Schubladen (Modell-Suche, Dienste, Einstellungen, Protokoll) waren am Handy nur 75 %
  und am PC hoechstens 384 px breit - die shadcn-Grundklassen schlugen die eigenen.
- Doppelklick: Die Sperre beim Installieren haengt jetzt an einem Ref und greift sofort
  (vorher starteten zwei Klicks im selben Takt zwei Downloads); die Ja-Knoepfe von
  "Alles aktualisieren" und "Auftrag abbrechen" ignorieren den zweiten Klick.
- Balken eines abgebrochenen Downloads grau statt cyan.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-24 15:36:03 +02:00
HitonabiandClaude Opus 5.5 634ad27302 strom: Live-Strom baut sich selbst neu auf, Verbindungsanzeige auf jeder Breite
- Gibt EventSource endgueltig auf (502/503 vom Proxy, waehrend MC2 neu startet), baut
  die App den Strom selbst neu auf: Pause 2 s, 4 s, 8 s ... bis 30 s, sofort wenn Netz
  oder Tab zurueck sind.
- Stille-Waechter: Der Strom schickt jede Sekunde einen Messpunkt. Kommt 20 s nichts,
  gilt die Leitung als tot (Handy im Standby, WLAN-Wechsel, Proxy haelt offen) und wird
  neu aufgebaut. Im Test mit einer Attrappe: vorher blieb "Box online" stehen.
- "Box online / Getrennt" steht jetzt auf jeder Breite in der Kopfzeile (am Handy
  kleiner, getrennt in Bernstein), nicht mehr nur im Mehr-Menue.
- Obere Navigation erst ab 1024 px, darunter die Leiste unten wie am Handy: Zwischen
  768 und ~880 px lief die Kopfzeile schon vorher seitlich ueber, mit der Anzeige bis 1023.
- metrikEinspeisen (nur fuer Tests gedacht, nie benutzt) entfaellt.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-24 15:35:52 +02:00
HitonabiandClaude Opus 5.5 59631601b9 doku: Historisches ins Archiv, Ueberfluessiges geloescht
- 19 Dateien nach docs/archiv/ mit Datumspraefix (JJJJ-MM-TT-): SAVEPOINT, Autonomie-,
  Optimierungs- und TTS-Plan, Review 02.07., ZeroClaw-Auftrag und -Ergebnis, Hermes-Setup,
  Gemini-Briefing, Antigravity-Review-Prompt, Zielbild, Uebergabe Drei Welten,
  Umbauplan Abloesung, Hermes-Werkzeuge, Raphael, die drei Dateien aus docs/aufgaben
  und der Skill-Text gitea-workflow.
- Die alte Liste OFFENE-FAEDEN (Stand 04.09.) ebenfalls ins Archiv; sie enthaelt die
  Lucy-Faeden, die sonst verloren gingen. Die neue Liste folgt im naechsten Schritt.
- Geloescht (kein eigenes Wissen, Git-Historie reicht): docs/memory/* (4 Kopien der
  Claude-Notizen vom Juni), STATUS, CUTOVER, AUDIT_KICKOFF, CLAUDE_CODE_BRIEF,
  UPGRADE und skills/orchestrator.md (Quelle war der Skill selbst).
- Formatfehler im Archiv behoben: uebrig gebliebene </content>-Tags im Optimierungsplan
  und im ZeroClaw-Auftrag; toter Link auf GEDAECHTNIS-BEREICHE.md zeigt jetzt auf die
  Git-Historie (geloescht am 07.08., c3851f8).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-24 15:31:00 +02:00
HitonabiandClaude Opus 5.5 99ba6a78ab waechter: schlafende Spracherkennung ist kein Kernbefund mehr
Nach dem Schlafenlegen des voice-service (disable --now) meldete die Kern-Probe
"Der Hoer-Dienst antwortet nicht" als roten Hinweis samt Telegram (24.09. 14:56, Fehlalarm).
Die Probe laeuft jetzt nur, wenn der Dienst nicht schlaeft. Dazu ein Lint-Nachtrag im Test.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-24 15:19:55 +02:00
HitonabiandClaude Opus 5.5 739f27a7e5 start: Radar-Kasten springt wirklich zum Radar, Checkliste fragt vor Neustart und Freigeben
- "Ansehen" im Radar-Kasten fuehrt nach /modelle#radar. Der Router sprang beim Rendern
  zum Anker, als dort noch "wird gelesen" stand; jetzt springt die Modelle-Seite, sobald
  alles ueber dem Radar geladen ist.
- Knoepfe der Checkliste, die einen Dienst (neu) starten, einen Job erneut laufen lassen
  oder ein Update freigeben, fragen vorher nach. Das Protokoll oeffnet weiter sofort; der
  Dialog wird erst bei Bedarf geladen und bleibt aus dem Start-Buendel.
- Scheitert nur ein spaeteres Nachladen, bleibt der letzte Stand der Startseite stehen
  statt einer Fehlerflaeche.
- Test fuer die Rueckfrage-Logik (wann gefragt wird, Checkliste erst nach "Ja",
  gesperrter Ja-Knopf, Ersatz-Hinweis beim Installieren).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-24 15:19:03 +02:00
HitonabiandClaude Opus 5.5 3c1d8bf88f modelle: Installieren mit Rueckfrage, Doppelklick-Sperre und Rollen-Hinweis, Auftraege mit Fortschritt
- "Installieren" fragt vorher nach (Modell, Quantisierung, Groesse falls bekannt) und
  sperrt, solange der Start unterwegs ist - ein Doppelklick startet keinen zweiten Download.
- Mit Rolle "Coder" steht deutlich da, welches Modell ersetzt wird (unter der Auswahl und
  in der Rueckfrage), dass es auf der Platte bleibt und der Bild-Zwilling vorerst beim
  bisherigen Modell liest.
- Die Modelle-Seite zeigt laufende Downloads als Auftraege mit Fortschritt und Abbrechen.
- Suche und Quantisierungen haben Lade-, Fehler- und Leerzustaende; Nutzung, Radar und
  Aufraeumen melden Fehler statt still zu verschwinden. Ein 404 heisst "Radar nicht
  eingerichtet", alles andere ist ein Fehler. Scheitert nur ein spaeteres Nachladen,
  bleibt der letzte Stand der Modell-Liste stehen.
- Anzeige-Logik der Wartungsseiten liegt jetzt in lib/wartung.ts statt in anzeige.ts,
  die im Start-Buendel steckt.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-24 15:18:43 +02:00
HitonabiandClaude Opus 5.5 b0c9549a29 waechter: Werkzeugfehler eines Jobs bis zum naechsten Lauf ausblenden
Heute stand ein schon behobener web_extract-Fehler des News-Jobs bis zum naechsten Lauf
(morgen 07:00) im Cockpit. Neuer Knopf "Ausblenden bis zum naechsten Lauf": MC2 merkt sich
den Lauf in /srv/models/mc2-quittiert.json, der Waechter blendet genau diesen Lauf aus. Hat
der naechste Lauf wieder Fehler, erscheint der Hinweis erneut.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-24 15:17:36 +02:00
HitonabiandClaude Opus 5.5 4cd856bd34 phase1c: Deploy mit Rueckweg und Prueftor, tote Deploy-Dateien raus
- deploy.sh zweistufig: Sperre, laufende Update-Jobs verschieben den Deploy, fast-forward,
  dann laeuft die NEUE Fassung als Stufe 2 (Aenderungen am Skript wirken sofort).
  Stufe 2: Prueftor, Abhaengigkeiten, llama-swap-Config nur bei Aenderung des Abzugs in
  diesem Deploy (ohne Motor-Neustart, -watch-config reicht; 5 Sicherungen), alle Repo-Units
  und Drop-ins, Cron-Skripte nach ~/.hermes/scripts, Skills/Plugins, Neustart, Nachpruefung.
  Scheitert etwas: zurueck auf den alten Stand (inkl. llama-swap-Config), Dienste neu,
  dringende Meldung, Eintrag in /srv/models/mc2-deploy.log.
- deploy/pruefen.sh ersetzt die tote CI-Ampel: Shell-/Python-Syntax, ruff, Importe, pytest.
  Laeuft am PC vor dem Push und auf der Box vor dem Umschalten (pytest via requirements-dev.txt).
- Units, die nur auf der Box lagen, jetzt im Repo: projekte-sync.*, lucy-stimme.service,
  mission-control-2-Override.
- Tot und entfernt: Werkstatt-/Projektstart-/Betrieb-SOULs, worker.sh, Agent-Hooks, Ampel-CI
  (samt .gitea-Workflow und Saat in gitea-repo-create.sh), gitea-pr, Governor-Plugin, Specs,
  Selbst-Inventur, Self-Smoke, venv-Audit, setup_autonomous_crons.sh (haette alte Jobs neu
  angelegt), Einmal-Skripte, alte Bench-Skripte, .agents/mcp_config.json, client/ide-skills,
  mcp/requirements.txt. Gitea-Host-Notizen nach docs/archiv/gitea-host.
- morgenmeldung.sh begrenzt das Melde-Log (ueber 3 MB bleiben die letzten 2 MB).
- AGENTS.md: Prueftor und neuer Deploy beschrieben.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-24 15:13:50 +02:00
HitonabiandClaude Opus 5.5 5ddc952ecd updates: Urteil und Paketliste sichtbar, ehrliche Lade- und Fehlerzustaende, Rueckfragen, Auftraege aller Gruppen
- Update-Details zeigen jetzt das Urteil des Hirns ("Nichts zu tun" / "Du musst
  etwas tun" samt Text), die Zusammenfassung ist aufklappbar statt auf drei Zeilen
  gekappt, das Betriebssystem zeigt seine Paketliste (und was Ubuntu zurueckhaelt).
- Scheitert eine Pruefung (z. B. git fetch bei Hermes), steht "Konnte nicht pruefen: ..."
  statt "- -> neu"; waehrend des Ladens ein Platzhalter statt "..." und kein voreiliges "neu".
- Einzel-Update und Freigeben fragen vorher nach; der Ja-Knopf sperrt gegen Doppelklick.
- Neue Job-Karte (Fortschritt, Abbrechen mit Rueckfrage, letzte Meldung, Protokoll) fuer
  alle laufenden Auftraege, egal welche Gruppe. Updates lassen sich bewusst nicht abbrechen.
- Job-Typen an jobengine.py angeglichen ("canceled", group, started_at/finished_at):
  abgebrochene Auftraege erschienen bisher als "Laeuft".
- Fehler aus "Jetzt sichern" (Feld error) und "Es laeuft schon ein Update" (status busy)
  werden gemeldet; ist ein Auftrag fertig, lesen Versionen, Modelle und Sicherungen neu.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-24 15:13:27 +02:00
HitonabiandClaude Opus 5.5 e9f488b56c phase1b: Backend entruempelt und robuster (35 tote Routen raus, Sperren, ehrliche Update-Pruefung)
Ampel / ampel (push) Successful in 26s
Ballast raus:
- 35 Routen ohne Nutzer entfernt (agent/*, fit, roles, ctx, drafts, groups, routing/policy,
  system/history, system/self-update, maintenance/reboot, zeitmaschine/inhalt, zeitplan,
  voice/health|metrics|trace|voices|reference|tts). Von 95 auf 60.
- Tote Module geloescht: agent-Router, roles, agent_aktivitaet, metrics_history (samt
  10-s-Sampler), voice_metrics, migrate_config, parse_mc2_timeout, scripts/.
- Unbenutzte Funktionen und Konstanten entfernt (Modell-Upgrade-Empfehlung, Draft-/Kontext-
  Setzer, Konsole, PC-Ausfuehrer-Probe, Routing-Policy-Editor ...).

Robuster:
- Jobs in eigener Prozessgruppe (Abbrechen beendet wirklich alles), Zeitlimit je Job-Art,
  start_job_exklusiv: zwei Klicks starten kein doppeltes Update mehr; alte Jobs raeumen sich auf.
- Update-Pruefung meldet Fehler (pruef_fehler, Lampe "Pruefung unklar") statt "aktuell".
- Nach jedem Update sofort neu pruefen (update_stand) statt 10 Minuten alten Stand zeigen.
- llama-swap-Config: Sperre (RLock + flock) fuer UI, Radar, Aufraeumen und Hirn-Umstellung.
- Hermes-Config: bei Lesefehler nichts schreiben, atomar, mit Sicherung.
- Live-Strom und Gateway-Warnung blockieren den Event-Loop nicht mehr (Lucy, OpenChamber).
- Gateway antwortet bei Engine-Ausfall im OpenAI-Fehlerformat (502) statt nacktem 500.
- Abgestuerzte Waechter-Pruefung wird ein gelber Hinweis statt still zu verschwinden.
- Download laedt nur den gewuenschten Quant (vorher bei Fehlen alle Teile aller Varianten),
  Download-Jobs in Gruppe "download"; HF-Suche kodiert den Suchbegriff.
- Herkunftspruefung: schreibende /api-Aufrufe fremder Webseiten werden abgelehnt (keine
  Anmeldung, User-Entscheid); Skripte, Desktop-Lucy und /v1 unveraendert.
- Modellpfade: Eintragen und Loeschen nur innerhalb von MODELS_DIR.
- Dienste-Liste fragt keine abgebauten Dienste mehr ab (PC-Ausfuehrer haette 3 s gekostet).
- SSE-Fehlerzeilen von /api/voice/chat als gueltiges JSON.
- mission-control-2.service: --timeout-graceful-shutdown 3 (Neustart ohne 10-s-Haenger).

Tests: 92 gruen (neu: Herkunft, Quant-Auswahl, abgestuerzte Pruefung).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-24 15:08:44 +02:00
HitonabiandClaude Opus 5.5 c8718fcde0 autoupdate: Neustart nur noch im Wartungsfenster (So 04:00-06:59)
Ampel / ampel (push) Successful in 26s
Beim ersten Einschalten von mc2-autoupdate.timer holte systemd (Persistent=true) den seit
August verpassten Sonntagslauf sofort nach. Der Lauf spielte nichts ein, startete die Box
wegen des wartenden Kernel-Updates aber am Donnerstag um 14:51 neu. Laeufe ausserhalb des
Fensters melden einen noetigen Neustart jetzt nur an; von Hand erzwingen mit
MC_AUTOUPDATE_REBOOT_JETZT=1.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-24 14:54:52 +02:00
HitonabiandClaude Opus 5.5 45b5bf275c phase1a: Box-Diaet - schlafende Dienste, Sonntags-Update als Timer, tote Skills raus, Warm-Set nur Hirn
Ampel / ampel (push) Successful in 26s
- Waechter und Dienste-Liste kennen "schlaeft": abgeschaltete Units (disable --now) sind kein
  Befund mehr; die Oberflaeche zeigt sie grau mit Knopf "Wecken" (fuer die Android-App spaeter).
- Updates am Sonntag laufen wieder ueber mc2-autoupdate.timer (jobs/sonntags-update.sh) statt als
  Hermes-Cron, der sich beim Hermes-Update selbst neu startete (20.09.: 180 s, Fehlschlag).
  Flugplan und Waechter kennen den Timer.
- 10 abgeloeste Skills (Werkstatt, Kanban, Orchestrator, Trend-Radar ...) aus dem Repo; deploy.sh
  verschiebt sie in ~/.hermes/skills-archiv statt sie weiter zu Lucy zu kopieren.
- Embedding und Reranker schlafen: raus aus brains und Warm-Set, ttl 300, warmup.sh waermt sie
  nicht mehr vor. deploy.sh spielt Timer und Warm-Set-Drop-in selbst aus.
- Dienste-Namen: "Box-Wart (MC2)", "Hermes-Dashboard", "Spracherkennung (Desktop-Lucy)".
- Frontend neu gebaut (npm ci, lokale Pakete waren vom 28.08.).

Tests: 87 gruen (neu: schlafende Dienste), Frontend Lint/Tests/Build gruen.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-24 14:50:37 +02:00
HitonabiandClaude Opus 5.5 648be33d21 phase0: Nachtmeldungen kommen wieder an, Sicherung mit Lucys Gedaechtnis, Token-Datei raus
Ampel / ampel (push) Successful in 26s
- notify.sh sammelt nachts (00-07 Uhr) wie bisher, aber jetzt liefert mc2-morgenmeldung.timer
  um 07:00 alles als eine Telegram-Nachricht aus. Seit dem 21.08. las niemand die
  Warteschlange, alle Nachtmeldungen (auch die Sonntags-Updates) gingen verloren.
  Dringendes (-d, Betreff Alarm/Notfall, Text beginnt mit KRITISCH) geht sofort raus;
  autoupdate.sh markiert seine KRITISCH-Meldungen ausdruecklich.
- backup.sh sichert zusaetzlich ~/.hermes/memories, SOUL.md, skills/, scripts/, den
  Box-Wart-Zustand (/srv/models/mc2-*.json), User-Units, llama-swap-Drop-ins und Lucys
  Stimmreferenz. restore.sh spielt Gedaechtnis und Zustand nur zurueck, wenn sie fehlen
  oder --mit-gedaechtnis gesetzt ist.
- Update-Verlauf zaehlt die Morgenmeldung nicht als eigenen Lauf.
- Waechter und Flugplan kennen den neuen Timer; deploy.sh installiert ihn.
- .claude/settings.local.json aus dem Repo genommen (lokal behalten), .gitignore ergaenzt.
- ruff wieder gruen (4x RUF100), AGENTS.md: Deploy macht git pull, Remote ist SSH.

Tests: 86 gruen (neu: Nachtruhe, Dringendes, Morgenmeldung inkl. Telegram-Ausfall).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-24 14:42:19 +02:00
HitonabiandClaude Opus 5.5 4a05bc2a05 radar: Kandidaten messen mit der schnellsten Draft-Variante, Bild-Probe und Betrieb wie heute mit Zwilling
Ampel / ampel (push) Failing after 22s
Das heutige Modell misst mit seinem Draft (Hirn 106 t/s, ohne 68), Kandidaten liefen ohne -
Ornith fiel am 24.09. deshalb durch, obwohl es dieselbe Architektur hat. Jetzt probiert das Radar
kurz: ohne Draft, eingebauten MTP-Kopf und den Draft des heutigen Modells (gleiche Architektur,
Speicher reicht) und testet mit der schnellsten. Spekulatives Dekodieren aendert die Antworten
nicht, nur das Tempo.

Mit Draft laeuft die Bild-Probe auf einem Zwilling ohne Draft (llama.cpp: Draft und Bild = HTTP
500). Uebernehmen baut wie der Betrieb seit 24.09.: Hauptmodell mit dem gewaehlten Draft ohne
Projektor, dazu ein Bild-Zwilling; der alte Zwilling fliegt raus.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-24 13:26:08 +02:00
HitonabiandClaude Opus 5.5 42363229d4 modelle: Aufraeumen auf Knopfdruck, geteilte Gewichte bleiben beim Loeschen liegen
Ampel / ampel (push) Failing after 21s
Neuer Bereich "Aufraeumen" auf der Modelle-Seite: Eintraege ohne heutige Rolle und Ordner, auf
die kein Eintrag zeigt, mit Groesse und Erklaerung (Rueckweg, Reserve, alte Drafts). Geloescht
wird nur auf Knopfdruck mit Rueckfrage. delete_model loescht keine Dateien mehr, die ein anderer
Eintrag nennt - seit den Bild-Zwillingen haette sonst das Loeschen eines Zwillings den Coder
mitgerissen. Der Projektor des Hirn-Zwillings liegt jetzt neben den Hirn-Gewichten, damit der
Original-Ordner loeschbar bleibt.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-24 13:17:11 +02:00
HitonabiandClaude Opus 5.5 133a491aca llama-swap: brains verdraengt nichts mehr (exclusive: false) - Lucy-Anfragen warfen den Coder raus
Ampel / ampel (push) Failing after 20s
Ohne den Key ist eine llama-swap-Gruppe exklusiv: JEDE Anfrage ans Hirn entlud den Coder und
die Bild-Zwillinge (live gemessen 24.09.). Fuer OpenChamber hiess das nach jeder Lucy-, NerdQuiz-
oder Job-Anfrage: Coder neu laden und den ganzen Vorlauf nachrechnen. set_group setzt den Key fuer
immer-warme Gruppen jetzt selbst, damit ein Hirn-Tausch ihn nicht wieder verliert.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-24 13:05:25 +02:00
HitonabiandClaude Opus 5.5 91aa16eee1 bilder: Hirn und Coder sehen selbst - ueber Bild-Zwillinge, Text bleibt mit Draft schnell
Ampel / ampel (push) Failing after 21s
llama.cpp kann Draft-Beschleunigung und Bilder nicht zusammen (HTTP 500 "failed to process
speculative batch", b11057 und b11157 geprueft; speculative.n_max=0 je Anfrage hilft nicht).
Darum bekommen Hirn und Coder je einen Bild-Zwilling: gleiche Gewichte plus Projektor, ohne
Draft (vision, coder-bild), in einer eigenen llama-swap-Gruppe, die den Coder nicht verdraengt.
Probe 24.09.: beide 8/8 Bildmerkmale; Hirn-Zwilling 68 t/s, Coder-Zwilling 12,5 t/s.

Bild-Weiche v3 im Gateway: Bild im aktuellen Schritt geht an den Zwilling der Rolle, aeltere
Bilder werden einmal beschrieben (gemerkt) und als Text mitgeschickt, damit der Rest einer
Agenten-Aufgabe wieder beim schnellen Modell laeuft. Qwen3-VL gibt "vision" ab, der Coder
verliert den Projektor, der mit Draft nur HTTP 500 lieferte.

Radar misst die Bildfaehigkeit des heutigen Modells ueber dessen Zwilling (sonst gewaenne
jeder bildfaehige Kandidat mit "versteht Bilder"). Pruefstand: Coder darf vor dem Aendern
lesen (Version 3). Modelle-Seite zeigt "Bilder: ja" ueber den Zwilling.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-24 13:02:06 +02:00
HitonabiandClaude Opus 5.5 2cc1e1cc47 waechter: gelesene Seiten zaehlen nicht als Werkzeugfehler
Ampel / ampel (push) Failing after 22s
Hermes haengt an jedes web_extract-Ergebnis ein leeres "error"-Feld und haelt ein Ergebnis
fuer gescheitert, sobald dieses Feld in den ersten 500 Zeichen steht - bei kurzen Seiten also
auch Erfolge. Der Waechter zaehlt solche Ergebnisse (mehrzeilig, mit "results") nicht mehr.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-24 12:44:55 +02:00
HitonabiandClaude Opus 5.5 292a9d2b6b hermes: web_extract liest Seiten lokal (Plugin mc2-web-lesen) statt jeden Morgen zu scheitern
Ampel / ampel (push) Failing after 21s
Die Box hat als Web-Anbieter nur DuckDuckGo, der kann nicht lesen. Hermes bot web_extract
trotzdem an, jeder Aufruf scheiterte, und der Waechter meldete den Nachrichten-Job jeden
Morgen gelb. Das Plugin nutzt Hermes' offizielle Anbieter-Schnittstelle (kein Eingriff in
den Hermes-Code) und liest wie MC2s fetch_url mit httpx und trafilatura, ohne fremden Dienst.
deploy.sh kopiert Hermes-Plugins aus dem Repo; aktiviert wird einmalig von Hand.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-24 12:41:52 +02:00
HitonabiandClaude Opus 5.5 8d46adfd86 radar: mehrdeutigen Ablenker im Pruefstand entschaerft, Baseline-Cache kennt den Probenstand
Ampel / ampel (push) Failing after 21s
Der Ablenker "system_speicher" passte zur Platz-Frage besser als die erwartete Antwort
(das Live-Hirn waehlte ihn am 23.09.). Weil schon ein Vorteil fuer "bestanden" reicht,
haette dieses Rauschen allein einen Kandidaten durchbringen koennen. Aendern sich die
Proben, misst baseline() jetzt neu statt alte Werte zu vergleichen. Dazu: uebersprungene
Radar-Eintraege zeigen kein "passt nicht" mehr.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-23 22:33:27 +02:00