Show Claude model refresh button

This commit is contained in:
Dotta committed 2026-05-29 04:01:40 +00:00
1 parent b3ee2a9bb8
commit 23fd01f52e
2 files changed
+20 -1

No files matched your search

+15
View File
@@ -0,0 +1,15 @@
import { describe, expect, it } from "vitest";
import { supportsAdapterModelRefresh } from "./AgentConfigForm";
describe("supportsAdapterModelRefresh", () => {
it("enables the model refresh action for Claude, Codex, and ACPX adapters", () => {
expect(supportsAdapterModelRefresh("claude_local")).toBe(true);
expect(supportsAdapterModelRefresh("codex_local")).toBe(true);
expect(supportsAdapterModelRefresh("acpx_local")).toBe(true);
});
it("keeps the refresh action hidden for adapters without a live refresh hook", () => {
expect(supportsAdapterModelRefresh("opencode_local")).toBe(false);
expect(supportsAdapterModelRefresh("process")).toBe(false);
});
});
+5 -1
View File
@@ -114,6 +114,10 @@ const emptyOverlay: AgentConfigOverlay = {
/** Stable empty object used as fallback for missing env config to avoid new-object-per-render. */
const EMPTY_ENV: Record<string, EnvBinding> = {};
export function supportsAdapterModelRefresh(adapterType: string): boolean {
return adapterType === "claude_local" || adapterType === "codex_local" || adapterType === "acpx_local";
}
function isOverlayDirty(o: AgentConfigOverlay): boolean {
return (
Object.keys(o.identity).length > 0 ||
@@ -1006,7 +1010,7 @@ export function AgentConfigForm(props: AgentConfigFormProps) {
return result.data?.model ?? null;
}}
onRefreshModels={
adapterType === "codex_local" || adapterType === "acpx_local"
supportsAdapterModelRefresh(adapterType)
? handleRefreshModels
: undefined
}