Statt settings.json vollständig zu ersetzen, wird jetzt nur das
'packages'-Feld per jq aktualisiert. defaultProvider, defaultModel,
enabledModels und alle anderen Nutzer-Präferenzen bleiben erhalten.
Hintergrund: pi schreibt bei Modellwechsel (z.B. /model oder UI) in
settings.json — ein vollständiges Überschreiben löscht diese Einstellungen
und zwingt pi bei Start zur Fallback-Suche (die fälschlich Anthropic wählt).
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>
Nur noch `packages: ["npm:pi-llama-cpp"]` im Repo — defaultProvider,
defaultModel, enabledModels und lastChangelogVersion werden entfernt.
Diese sind Nutzer-Präferenzen und dürfen nicht durch deploy-pi-config.sh
überschrieben werden (das lokale coding_model als Default verhinderte, dass
andere Extensions wie research-web.ts ein geeignetes Modell für Tool-Calling nutzen).
Das Coding-Workflow ist davon unberührt: selectRole() setzt das Modell
für /coder, /judge, /optimize etc. immer explizit.
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>
curl gibt Exit-Code 56 zurück wenn der Server die Verbindung während des
Modell-Ladens zurücksetzt. Mit set -e brach das Skript dadurch ab, obwohl
der Container noch startete. || HTTP_CODE="000" fängt den Fehler ab und
lässt die Warte-Schleife korrekt weiterlaufen.
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>
Das Skript installiert keine Server, sondern deployt Konfigurationsdateien
(Extension, models.json, settings.json) nach ~/.pi/agent/. Der neue Name
beschreibt das korrekt und passt zum verb-noun.sh-Muster der anderen Skripte.
Alle Referenzen in README, BEDIENUNGSANLEITUNG und Tests aktualisiert.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Konsistente Benennung analog zu start-coding-server.sh und stop-coding-server.sh.
Alle Referenzen in README, BEDIENUNGSANLEITUNG und Tests aktualisiert.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Konsistente Benennung: Server-Skripte beschreiben ihre Funktion (coding-server),
nicht das spezifische Modell oder die Architektur. Alle Referenzen in Extension,
Tests, README und BEDIENUNGSANLEITUNG aktualisiert.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Statt modell-spezifischer Namen (qwen3.5-single, qwen36-27b-single) wird
überall der semantisch neutrale Bezeichner coding_model verwendet.
Dadurch kann das Modell bei Bedarf ausgetauscht werden, ohne Konfiguration,
Skripte oder Tests anpassen zu müssen.
Geändert: models.json, settings.json, start-single.sh, stop-servers.sh,
status.sh, pi-coder-judge-extension.ts, tests/, README.md, BEDIENUNGSANLEITUNG.md
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- pi-coder-judge-extension.ts: licenceMd() + writeLicenceMd() — erzeugt
proprietäre LICENCE.md in der Doku-Phase (nur wenn noch nicht vorhanden)
- tests: Guards und pure-logic-Tests für LICENCE.md ergänzt (38 Tests, alle grün)
- .gitignore: Node, TypeScript-Artefakte, Backups, Editor-Dateien, OS-Metadaten
- README.md + BEDIENUNGSANLEITUNG.md: vollständig auf Single-GPU-Architektur
aktualisiert (ein Server, System-Prompt-Rollen, kein Quick-Judge,
PASS WITH CONCERNS-Verhalten, LICENCE.md in /update_doku, start-single.sh)
- SINGLE_SERVER_PLAN.md: entfernt (umgesetzt, kein Mehrwert mehr)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Macht die Single-Server-Konfiguration reproduzierbar (defaultProvider/
defaultModel/enabledModels -> llama-cpp-single). install_servers_and_pi_coder_extension.sh
deployt settings.json jetzt mit; vorher wird die bestehende Datei nach
settings.json.bak gesichert, da pi sie zur Laufzeit beschreibt.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Single-GPU-Umstellung:
- models.json auf ein Modell qwen3.5-single kollabiert; tote Provider
(llama-cpp, llama-cpp-coder, llama-cpp-judge) entfernt
- Coder/Judge-Rolle via before_agent_start-Hook (Persona als System-Prompt)
statt Modellwechsel; switchModel -> ensureSingleModel + selectRole
- Dual-GPU-Skripte entfernt (start-coder/judge/servers.sh); stop/status auf
Single-Container reduziert
/optimize-Bugfixes:
- Crash behoben: ctx.ui.select positional aufrufen (verursachte
"Cannot read properties of undefined (reading 'length')" bei SHIP/version)
- PASS WITH CONCERNS loest jetzt eine Coder-Fix-Runde aus; nur sauberes PASS
gilt als bestanden (--approve-concerns bleibt Opt-out)
- Quick-Judge abgeschafft: immer voller Judge ab Runde 1
- Loop-Erkennung greift auch ohne Blocker-Abschnitt
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Beide Rollen (Coder + Judge) auf einem llama.cpp-Server (Port 8001).
switchModel wechselt zwischen qwen3.5-coder und qwen3.5-judge via
llama-cpp-single-Provider ohne Server-Neustart. start-single.sh startet
den gemeinsamen Server, GPU wählbar per GPU_DEVICE-Env-Variable.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>