Target: ${html(result.providerConnection.target.origin)} · ${html(result.providerConnection.target.commit ?? "revision unavailable")} · ${result.providerConnection.assisted ? "Assisted login" : "Unassisted"} · ${html(result.providerConnection.authFreshness)} browser · ${html(result.providerConnection.entry)} / ${html(result.providerConnection.method)} · stopped at ${html(result.providerConnection.phase)}
` : ""} ${failures.length ? `Failed checks:
No behavioral matcher failed.${notReached.length ? " The journey is incomplete; unexercised checks are not passes." : failed ? " The overall failure came from a separate run, cleanup, or evidence check." : ""}
` : ""} ${notReached.length ? `Not reached:
| Result | Check | Detail |
|---|---|---|
| ${c.notReached ? "Not reached" : c.passed ? "Pass" : "Fail"} | ${html(c.id)} | ${html(c.detail)}${c.notReached ? ` — ${html(c.notReached)}` : ""} |
Synthetic cleanup fixture
"); + }); + await new Promise{refreshModelsError - ?? (fetchedModelsError instanceof Error - ? fetchedModelsError.message + ?? (modelError instanceof Error + ? modelError.message : "Failed to load adapter models.")}
)} {adapterType === "opencode_local" + && !connectionModels && currentDefaultEnvironment && currentDefaultEnvironment.driver !== "local" && (
@@ -3666,19 +3678,26 @@ export function AdapterTypeDropdown({
return (
Loading models…
- {onDetectModel
+ {loadingModels ? "Loading models…" : onDetectModel
? (emptyDetectHint ?? "No model detected yet. Enter a provider/model manually.")
: "No models found."}
{savedKeys.options.length} saved API{" "}
@@ -269,15 +295,17 @@ export function AgentProviderConnection({
)}
{method === "subscription" &&
savedKeys.subscriptions.length > 0 && (
- Loading connection settings…Provider settings
- {mark.dark && (
-
- )}
- >
- );
-}
+export { AdapterMark } from "../AdapterMark";
+
function AgentBasicsCharacter() {
const { selectedCompanyId } = useCompany();
const { appearance } = useAgentAppearanceDraft(`${selectedCompanyId}:new-agent`);
diff --git a/ui/src/components/new-agent/AgentProviderConnection.test.tsx b/ui/src/components/new-agent/AgentProviderConnection.test.tsx
index a9116af73b1..0c0510428fd 100644
--- a/ui/src/components/new-agent/AgentProviderConnection.test.tsx
+++ b/ui/src/components/new-agent/AgentProviderConnection.test.tsx
@@ -1,6 +1,5 @@
// @vitest-environment jsdom
import { flushSync } from "react-dom";
-import type { LocalAiLoginStatus } from "@paperclipai/shared";
import { createRoot, type Root } from "react-dom/client";
import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
import { afterEach, describe, expect, it, vi } from "vitest";
@@ -18,8 +17,8 @@ const managedApi = vi.hoisted(() => ({
list: vi.fn(async () => ({ currentUserId: "user-1", connections: [] })),
loginResult: vi.fn(async () => ({ connectionId: "login-account", grantId: "login-grant" })),
connectLocal: vi.fn(async () => ({ connectionId: "local-account", grantId: "local-grant" })),
- startLocalLogin: vi.fn(async () => ({ sessionId: "local-attempt", command: "CODEX_HOME='/fixture/isolated-login' codex login", expiresAt: "2026-09-11T20:00:00Z" })),
- checkLocalLogin: vi.fn(async (): Promise