mirror of
https://github.com/getpaseo/paseo.git
synced 2026-11-03 07:03:18 +00:00
* fix(agents): preserve Claude thinking selections Model switches now resolve thinking against the target model's saved preference instead of resetting to the catalog default. Claude owns its configured-model defaults and legacy Fable alias handling, while persisted permission modes remain unchanged. * chore(claude): tag Fable compatibility shim * fix(app): resolve persisted model aliases * fix(models): preserve aliases for older clients * fix(models): hide compatibility aliases from listings * fix(settings): hide compatibility model aliases * test(claude): cover legacy catalog entry * test(app): expect mock thinking controls in schedules * fix(app): preserve queued thinking preferences * fix(app): reconcile schedule provider snapshots * fix(app): preserve schedule model selections * fix(claude): preserve exact configured model ids * fix(app): preserve committed thinking preferences * fix(app): preserve aliased schedule thinking
31 lines
1.3 KiB
TypeScript
31 lines
1.3 KiB
TypeScript
import { describe, expect, it } from "vitest";
|
|
import { OptimisticFormPreferences } from "./optimistic-preferences";
|
|
|
|
describe("optimistic form preferences", () => {
|
|
it("removes a rejected update while preserving later queued updates", () => {
|
|
const preferences = new OptimisticFormPreferences({});
|
|
const failed = preferences.begin({ provider: "claude" });
|
|
const pending = preferences.begin({ isolation: "worktree" });
|
|
|
|
expect(preferences.current()).toEqual({ provider: "claude", isolation: "worktree" });
|
|
|
|
preferences.reject(failed);
|
|
expect(preferences.current()).toEqual({ isolation: "worktree" });
|
|
|
|
preferences.commit(pending, { isolation: "worktree" });
|
|
expect(preferences.current()).toEqual({ isolation: "worktree" });
|
|
});
|
|
|
|
it("does not replace pending optimistic state with a stale external snapshot", () => {
|
|
const preferences = new OptimisticFormPreferences({ provider: "codex" });
|
|
const pending = preferences.begin({ provider: "claude" });
|
|
|
|
preferences.reconcile({ provider: "codex", isolation: "local" });
|
|
expect(preferences.current()).toEqual({ provider: "claude" });
|
|
|
|
preferences.commit(pending, { provider: "claude" });
|
|
preferences.reconcile({ provider: "claude", isolation: "worktree" });
|
|
expect(preferences.current()).toEqual({ provider: "claude", isolation: "worktree" });
|
|
});
|
|
});
|