59d6be8c4a
Ampel / ampel (push) Successful in 22s
Die Box-Seite lag im Repo, die PC-Seite nur auf dem PC — bei Verlust waere die Haelfte des Setups unrekonstruierbar gewesen. Jetzt liegen beide Vorlagen nebeneinander, plus ein README mit der Mannschaftsaufstellung (inkl. der auf der Box gemessenen Tempi) und den vier Fallen, die beim Bauen Zeit gekostet haben: kein _comment in opencode.json, Plugin muss Windows+Linux koennen, session.idle ueberlebt `opencode run` nicht, plugin/ vs plugins/. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
OpenCode-Seite: ein Regelwerk, zwei Auslöser
Tagsüber tippst du in Zed (PC), nachts ruft ein Hermes-Cron dasselbe (Box). Beide Wege benutzen dieselbe OpenCode-Version, dieselbe Mannschaft, dasselbe Plugin und denselben Token-Wächter. Der einzige Unterschied ist die Adresse des Governors.
Was wohin gehört
| Datei hier | Ziel auf dem PC | Ziel auf der Box |
|---|---|---|
opencode.pc.json |
~/.config/opencode/opencode.json |
— |
opencode.box.json |
— | ~/.config/opencode/opencode.json |
plugin/mc2-governor.ts |
~/.config/opencode/plugin/ |
~/.config/opencode/plugin/ |
VERIFY.template |
— | wird von gitea-repo-create.sh in jedes neue Repo als VERIFY gesät |
Der Governor selbst liegt in ../governor/ (Proxy + systemd-Unit), der unbeaufsichtigte
Läufer in ../opencode-lauf.sh.
Die Mannschaft
| Rolle | Modell | Gemessen (25.07.2026) | Warum |
|---|---|---|---|
plan + build |
coder — Qwen3-Coder-Next |
51,5 t/s | Hält den Faden, verteilt Zuarbeit. MoE mit 3B aktiv → schnell auf Strix Halo. |
explore |
hermes — Qwen3.6-35B |
69,6 t/s | Ohnehin dauerwarm → kostet null zusätzlichen Speicher. Sucht, liest, meldet kurz zurück. |
review |
kritiker — Devstral-Small-2 |
15,0 t/s | Bewusst eine fremde Modellfamilie (Mistral statt Qwen) → andere blinde Flecken. Dicht = langsam beim Schreiben, aber ein Kritiker liest viel und schreibt wenig. |
heavy (gpt-oss-120b, 63 GB) ist nicht mehr in der Tagesrolle: es würde beim Laden
das ganze warme Set verdrängen. Es bleibt der Nacht-Gutachter (4:30-Cron).
Nach einer Änderung
Die Dateien hier sind Vorlagen, keine Live-Konfiguration. Nach einer Änderung verteilen:
# Box
scp deploy/opencode/opencode.box.json hitonabi@192.168.178.151:~/.config/opencode/opencode.json
scp deploy/opencode/plugin/*.ts hitonabi@192.168.178.151:~/.config/opencode/plugin/
# PC (aus dem Repo heraus)
cp deploy/opencode/opencode.pc.json ~/.config/opencode/opencode.json
cp deploy/opencode/plugin/*.ts ~/.config/opencode/plugin/
Zed muss danach neu gestartet werden — OpenCode liest seine Konfiguration nur beim Start.
Fallen, die Zeit gekostet haben
- Kein
_comment-Schlüssel inopencode.json. OpenCode validiert streng und verweigert den Start mit „Unrecognized key". Kommentare gehören in dieses README. - Das Plugin läuft auf Windows UND Linux. Deshalb
node:fsstattcatund Buns${{ raw: cmd }}stattbash -lc— beides fehlt auf Windows bzw. verschluckt den Befehl. - Bei
opencode runbeendet sich der Prozess, bevorsession.idlefertig ist (gemessen 25.07.). Für unbeaufsichtigte Läufe liegt die Prüf-Schleife deshalb zusätzlich inopencode-lauf.sh, wo sie den Prozess überlebt. In Zed greift das Plugin. - Plugin-Verzeichnis:
plugin/undplugins/werden beide erkannt; wir nutzenplugin/.