Das Plugin existierte nur im Konfigordner des PCs - ohne Sicherung, ohne Historie. Zaun-Regel 'git push' entfernt (jede Aenderung soll im git landen), dafuer gezielte Sperre fuer --force/--mirror/--delete. Beides gemessen. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
3.6 KiB
OpenCode-Plugin: MC2-Governor
Hier liegt die Quelle. Der Einsatzort ist eine Kopie.
deploy/opencode-plugin/mc2-governor.ts <- versioniert, hier aendern
| kopieren
v
%USERPROFILE%\.config\opencode\plugin\ <- wird von OpenCode automatisch geladen
Bis zum 21.08.2026 existierte diese Datei nur im Konfigordner des PCs — 11 KB verhaltensbestimmender Code ohne Sicherung und ohne Historie. Deshalb liegt sie jetzt hier.
Ausbringen
Copy-Item "deploy\opencode-plugin\mc2-governor.ts" "$env:USERPROFILE\.config\opencode\plugin\" -Force
Wirkt sofort in der naechsten OpenCode-Sitzung; OpenChamber muss dafuer nicht neu starten, eine neue Sitzung reicht.
Was es tut
- Werkzeug-Zaun (
tool.execute.before) — blockt Handgriffe, die ein Agent nie unbeaufsichtigt tun darf. Leitplanke gegen Entgleisen, keine Sandbox. - Pruef-Tor + Reparaturschleife (
session.idle) — sagt der Agent „fertig", laeuft der Verify-Befehl aus der DateiVERIFYim Repo-Wurzelverzeichnis. ROT geht als naechster Auftrag zurueck an den Agenten, bis zuMC2_LOOP_MAX_ROUNDSmal. ‼️ Schlaeft derzeit: es gibt in keinem Projekt eineVERIFY-Datei. Ohne sie tut diese Funktion nichts — schadet aber auch nicht. - Savepoint statt Zusammenfassen (
session.compacted) — beim Komprimieren fallen still die Regeln aus dem Kontext; stattdessen wirdSAVEPOINT.mdgeschrieben. - Stimme — Ereignisse gehen an MC2
/api/voice/announce, Lucy spricht sie.
Der zugehoerige Governor-Proxy auf :8100 (Token-Zaehler mit Hart-Deckel, Juli 2026)
existiert nicht mehr — kein Port, kein Ordner, keine Unit. Nachgemessen am 21.08.2026.
Dieses Plugin haengt nicht an ihm.
Schalter (Umgebungsvariablen)
| Variable | Default | Wirkung |
|---|---|---|
MC2_BOX_URL |
http://192.168.178.151:9001 |
MC2-Basis fuer Meldungen |
MC2_FENCE_OFF |
— | 1 schaltet den ganzen Zaun ab (alles oder nichts) |
MC2_LOOP_AUTOFIX |
an | 0 schaltet die Reparaturschleife ab |
MC2_LOOP_MAX_ROUNDS |
3 |
Runden der Reparaturschleife |
MC2_LOOP_ANNOUNCE |
an | 0 macht Lucy stumm |
MC2_LOOP_SILENT |
— | 1 = Meldungen ohne Ton |
Aenderung 21.08.2026: git push ist frei
Der Zaun blockte urspruenglich jedes git push („Veroeffentlichen ist Sache des
Menschen"). Das passt nicht mehr: die Bahn ist jetzt PC → Gitea → Box, und jede Aenderung
soll auch im git landen. Ein Agent, der committen, aber nicht pushen darf, laesst Arbeit
auf einem einzelnen Rechner liegen.
Erzwungenes Pushen bleibt verboten — --force, --mirror, --delete. Das
ueberschreibt fremde Arbeit auf dem Server und ist genau die Klasse Unfall, gegen die der
Zaun existiert. --force-with-lease ist bewusst ausgenommen.
Beides gemessen: git push --dry-run origin main laeuft durch,
git push --force --dry-run origin main wird mit [MC2-ZAUN] abgewiesen.
‼️ Falle: das bash-Werkzeug ist auf Windows kein bash
Es laeuft in PowerShell. tail, head, grep und Freunde gibt es dort nicht, und
Pipes verhalten sich anders. Wer dem Agenten Befehle vorgibt, muss das beruecksichtigen.
‼️ Falle: Gitea-Anmeldung ist flatterhaft
Der Git Credential Manager haelt fuer die DDNS-Domain ein OAuth-Token mit einer Stunde
Laufzeit. Laeuft es ab, scheitert der Push des Agenten mit
remote: Failed to authenticate user — ein Push aus PowerShell erneuert es, danach geht es
wieder. Dauerhafte Loesung waere ein langlebiges Gitea-Token auf die interne Adresse
http://192.168.178.153:3000 (die DDNS-Domain ist nachts durch die Zwangstrennung ohnehin
zeitweise tot).