fix: settings.json überschreibt Default-Modell des Nutzers nicht mehr
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>
This commit is contained in:
parent
bba630cbbb
commit
dc64a0eb4a
2 changed files with 12 additions and 39 deletions
|
|
@ -25,43 +25,23 @@ test("models.json: kein Verweis mehr auf den toten Port 8002", () => {
|
|||
assert.doesNotMatch(JSON.stringify(models), /:8002/);
|
||||
});
|
||||
|
||||
test("settings.json: Default zeigt auf den Single-Server (nicht Port 8002)", () => {
|
||||
assert.equal(settings.defaultProvider, "llama-cpp-single");
|
||||
assert.equal(settings.defaultModel, "coding_model");
|
||||
assert.deepEqual(settings.enabledModels, ["llama-cpp-single/coding_model"]);
|
||||
});
|
||||
|
||||
test("settings.json: defaultProvider/defaultModel existieren in models.json", () => {
|
||||
const p = models.providers[settings.defaultProvider];
|
||||
assert.ok(p, `defaultProvider '${settings.defaultProvider}' nicht in models.json`);
|
||||
test("settings.json: enthält packages-Liste mit pi-llama-cpp", () => {
|
||||
assert.ok(Array.isArray(settings.packages), "packages-Feld fehlt oder ist kein Array");
|
||||
assert.ok(
|
||||
p.models.some((m) => m.id === settings.defaultModel),
|
||||
`defaultModel '${settings.defaultModel}' nicht im Provider`
|
||||
settings.packages.some((p) => p.includes("pi-llama-cpp")),
|
||||
"npm:pi-llama-cpp fehlt in packages"
|
||||
);
|
||||
});
|
||||
|
||||
test("settings.json: jeder enabledModels-Eintrag verweist auf existierende Provider/Modelle", () => {
|
||||
for (const ref of settings.enabledModels) {
|
||||
const idx = ref.indexOf("/");
|
||||
const prov = ref.slice(0, idx);
|
||||
const id = ref.slice(idx + 1);
|
||||
const p = models.providers[prov];
|
||||
assert.ok(p, `enabledModels: Provider '${prov}' fehlt in models.json`);
|
||||
assert.ok(p.models.some((m) => m.id === id), `enabledModels: Modell '${id}' fehlt in '${prov}'`);
|
||||
}
|
||||
});
|
||||
|
||||
test("settings.json ist valides JSON ohne überraschende Felder", () => {
|
||||
// Reine Smoke-Prüfung, dass die Datei parsebar bleibt und die Kernschlüssel da sind.
|
||||
for (const key of ["defaultProvider", "defaultModel", "enabledModels"]) {
|
||||
assert.ok(key in settings, `Schlüssel '${key}' fehlt in settings.json`);
|
||||
}
|
||||
// Reine Smoke-Prüfung, dass die Datei parsebar bleibt und den Kern-Key hat.
|
||||
assert.ok("packages" in settings, "Schlüssel 'packages' fehlt in settings.json");
|
||||
});
|
||||
|
||||
test("Konsistenz: Extension und settings.json nennen denselben Provider/dasselbe Modell", () => {
|
||||
const ext = readRepoFile("pi-coding-extension.ts");
|
||||
assert.match(ext, /SINGLE_PROVIDER = "llama-cpp-single"/);
|
||||
assert.match(ext, /SINGLE_MODEL_ID = "coding_model"/);
|
||||
assert.equal(settings.defaultProvider, "llama-cpp-single");
|
||||
assert.equal(settings.defaultModel, "coding_model");
|
||||
test("settings.json enthält keine Modell-Auswahl (Nutzer-Präferenz bleibt erhalten)", () => {
|
||||
// defaultProvider/defaultModel/enabledModels sollen nicht im Repo stehen —
|
||||
// sie überschreiben sonst das vom Nutzer gewählte Default-Modell (z. B. OpenRouter).
|
||||
assert.ok(!("defaultProvider" in settings), "defaultProvider soll nicht im Repo-settings sein");
|
||||
assert.ok(!("defaultModel" in settings), "defaultModel soll nicht im Repo-settings sein");
|
||||
assert.ok(!("enabledModels" in settings), "enabledModels soll nicht im Repo-settings sein");
|
||||
});
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue