/optimize, /coder, /judge, /fix nutzen ohne PI_CODER_MODEL jetzt
strata/qwen3.8-flash-next-iq3_s; llama-cpp-single/coding_model über
PI_CODER_MODEL. Hinweis bei nicht bereitem Server nennt strata.sh start.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
parseVerdict und das SHIP-Urteil erwarteten „Urteil: PASS“ ohne Markup.
Der Judge schrieb „## Urteil: **PASS WITH CONCERNS**“; jede Runde galt als
unklar, --approve-concerns griff nie. Neu: parseShipVerdict, Tests.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Zwei Judge-Runden mit „Blocker: Keine“ und verschiedenen Major-Punkten galten
als „gleicher Blocker zweimal“. loopKey() vergleicht jetzt die Blocker, bei
leerem Blocker-Abschnitt die Major-Punkte, sonst den ganzen Judge-Text.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
PI_CODER_MODEL=<provider>/<id> setzt das Modell für beide Rollen; ohne
Variable bleibt es bei llama-cpp-single/coding_model. Die Bereitschafts-
prüfung nutzt baseUrl des Modells statt fest Port 8001. Neuer Provider
strata (lokaler Strata-Server, 127.0.0.1:9090) in models.json.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Wenn ein Projekt-Verzeichnis kein eigenes .git hat aber in einem
übergeordneten Repo liegt (z.B. ~/Python_Programs/* im Home-Repo),
würde git add -A das gesamte Home-Verzeichnis scannen — inkl.
HuggingFace-Modelle und Podman-Overlays → Minuten-lange Hänger.
Lösung: ensureLocalGitRepo() prüft am Anfang aller Coding-Kommandos
(/coder, /optimize, /fix, /patch) ob ctx.cwd ein eigenes .git hat.
Falls nicht: git init + .gitignore + initialer Commit — mit Warnung.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
selectRole() sichert jetzt ctx.model vor dem ersten Wechsel auf coding_model.
deselectRole() stellt es danach wieder her — alle 10 Kommando-Exits
(/coder, /judge, /fix, /shipit, /patch, /quick_check, /plan, /continue,
/optimize finally, runUpdateDoku) rufen deselectRole(pi) statt
currentRole = "idle" auf.
Damit bleibt das OpenRouter-Modell des Nutzers aktiv für freien Chat
(Wetter, Recherchen etc.), während Coding-Kommandos weiterhin explizit
coding_model via selectRole() setzen.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
currentRole erhält dritten Zustand "idle" (Initialwert + Reset nach jedem Kommando).
Der Hook injiziert nur noch eine Persona wenn currentRole "coder" oder "judge" ist —
im freien Chat bleibt der System-Prompt unverändert, sodass andere Extensions
(z. B. research-web.ts) nicht durch die Coding-Persona gestört werden.
Alle Kommando-Handler (/coder, /judge, /fix, /shipit, /optimize, /patch,
/quick_check, /plan, /continue) und runUpdateDoku setzen currentRole am
Ende auf "idle" zurück.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Name beschreibt den Zweck (Coding-Extension für pi agent), nicht die
interne Coder/Judge-Implementierung. Alle Referenzen in deploy-pi-config.sh,
README, Tests und Helpers aktualisiert.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>