From 88a0f88f953b0b2b94c07d7928096ce31566757f Mon Sep 17 00:00:00 2001 From: dschlueter Date: Mon, 15 Jun 2026 07:14:51 +0200 Subject: [PATCH] =?UTF-8?q?fix:=20deploy-pi-config.sh=20=C3=BCberschreibt?= =?UTF-8?q?=20Nutzer-Modellwahl=20nicht=20mehr?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 --- deploy-pi-config.sh | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/deploy-pi-config.sh b/deploy-pi-config.sh index adf2347..b0b85ff 100755 --- a/deploy-pi-config.sh +++ b/deploy-pi-config.sh @@ -12,14 +12,20 @@ echo "Kopiert: pi-coding-extension.ts → ~/.pi/agent/extensions/" cp "$REPO/models.json" ~/.pi/agent/models.json echo "Kopiert: models.json → ~/.pi/agent/" -# settings.json deployen. pi beschreibt diese Datei zur Laufzeit (z.B. bei /model), -# daher vor dem Überschreiben sichern, damit lokale Einstellungen nicht verloren gehen. +# settings.json: nur die 'packages'-Liste aktualisieren, alle anderen Nutzer-Einstellungen +# (defaultProvider, defaultModel, enabledModels, …) bleiben unberührt. +# Grund: pi schreibt Modell-Auswahl und weitere Präferenzen in diese Datei — ein vollständiges +# Überschreiben würde sie bei jedem Deploy löschen. +PACKAGES=$(jq '.packages' "$REPO/settings.json") if [ -f ~/.pi/agent/settings.json ]; then cp ~/.pi/agent/settings.json ~/.pi/agent/settings.json.bak echo "Backup: settings.json → settings.json.bak" + jq --argjson p "$PACKAGES" '.packages = $p' ~/.pi/agent/settings.json > /tmp/pi_settings_merge.json \ + && mv /tmp/pi_settings_merge.json ~/.pi/agent/settings.json +else + cp "$REPO/settings.json" ~/.pi/agent/settings.json fi -cp "$REPO/settings.json" ~/.pi/agent/settings.json -echo "Kopiert: settings.json → ~/.pi/agent/" +echo "Aktualisiert: settings.json (nur packages-Feld) → ~/.pi/agent/" echo "" echo "Fertig. Bitte /reload in pi agent ausführen."