mirror of
https://github.com/paperclipai/paperclip.git
synced 2026-11-13 07:12:00 +01:00
fix(ui): hide legacy commands for native Claude
Co-Authored-By: Paperclip <noreply@paperclip.ing>
This commit is contained in:
1 parent
7ede05c1c5
commit
7c0f3d75a6
3 files changed
+22
-2
No files matched your search
@@ -701,7 +701,23 @@ describe("AgentConfigForm environment selector", () => {
|
||||
expect(result.onSave.mock.calls[0][0].runner).toBeUndefined();
|
||||
});
|
||||
|
||||
it.each([{ provider: "opencode", model: "openrouter/anthropic/claude-sonnet-4.6" }, { provider: "acpx", acpxAgent: "claude" }, { provider: "unknown-provider" }])("preserves saved native $provider configuration with the experimental gate off", async adapterConfig => {
|
||||
it("shows Claude's saved runner without legacy command controls when the experimental gate is off", async () => {
|
||||
mockInstanceSettingsApi.getExperimental.mockResolvedValue({ enableNativeRunner: false });
|
||||
const result = await renderForm([], { adapterType: "paperclip_runner", adapterConfig: { provider: "acpx", acpxAgent: "claude", model: "claude-opus-5-5", modelReasoningEffort: "high" } }, { showAdapterTypeField: true });
|
||||
roots.push(result.root);
|
||||
expect(result.container.querySelector('[aria-label="Harness"]')?.textContent).toContain("Claude");
|
||||
await clickByText(result.container, "Advanced");
|
||||
expect(result.container.querySelector('[aria-label="Runner"]')?.textContent).toContain("Paperclip Runner");
|
||||
const labels = Array.from(result.container.querySelectorAll("label")).map(label => label.textContent?.trim());
|
||||
expect(labels).not.toContain("Command");
|
||||
expect(labels).not.toContain("Extra args (comma-separated)");
|
||||
await act(async () => setInputValue(result.container.querySelector<HTMLInputElement>('[placeholder="Agent name"]')!, "Renamed Claude"));
|
||||
await flushReact();
|
||||
await clickByText(result.container, "Save");
|
||||
expect(result.onSave).toHaveBeenCalledWith({ name: "Renamed Claude" });
|
||||
});
|
||||
|
||||
it.each([{ provider: "opencode", model: "openrouter/anthropic/claude-sonnet-4.6" }, { provider: "unknown-provider" }])("preserves saved native $provider configuration with the experimental gate off", async adapterConfig => {
|
||||
mockInstanceSettingsApi.getExperimental.mockResolvedValue({ enableNativeRunner: false });
|
||||
const result = await renderForm([], { adapterType: "paperclip_runner", adapterConfig }, { showAdapterTypeField: true });
|
||||
roots.push(result.root);
|
||||
|
||||
@@ -1901,7 +1901,7 @@ export function AgentConfigForm(props: AgentConfigFormProps) {
|
||||
defaultRunner={runnerAvailability?.defaultRunner}
|
||||
supportedRunners={runnerAvailability?.supportedRunners}
|
||||
onChange={next => isCreate ? set!({ runner: next }) : setOverlay(prev => ({ ...prev, runner: next }))} />}
|
||||
{isLocal && (<> {/*
|
||||
{isLocal && fieldsAdapterType !== "paperclip_runner" && (<> {/*
|
||||
The command names a binary on the execution host, so the
|
||||
managed-sandbox-only policy hides it: the platform-managed image
|
||||
owns the binary. Hiding is presentation only. A stored
|
||||
|
||||
Reference in new issue
Block a user