Files
mission-control-v2/deploy/opencode
Hitonabi 59d6be8c4a
Ampel / ampel (push) Successful in 22s
OpenCode-Vorlagen vollstaendig: PC-Seite + README
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>
2026-07-25 21:40:49 +02:00
..

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 in opencode.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:fs statt cat und Buns ${{ raw: cmd }} statt bash -lc — beides fehlt auf Windows bzw. verschluckt den Befehl.
  • Bei opencode run beendet sich der Prozess, bevor session.idle fertig ist (gemessen 25.07.). Für unbeaufsichtigte Läufe liegt die Prüf-Schleife deshalb zusätzlich in opencode-lauf.sh, wo sie den Prozess überlebt. In Zed greift das Plugin.
  • Plugin-Verzeichnis: plugin/ und plugins/ werden beide erkannt; wir nutzen plugin/.