fix(ui): preserve model provider route provenance (#106872)

* fix(ui): preserve model provider route provenance

* fix(ci): repair current-main quality gates
This commit is contained in:
Peter Steinberger
2026-07-13 16:31:28 -07:00
committed by GitHub
parent ad8107e136
commit d6d09293c2
2 changed files with 23 additions and 1 deletions
+1 -1
View File
@@ -6,8 +6,8 @@ import type { ModelProvidersRouteData } from "./model-providers-page.ts";
async function loadModelProvidersRouteData(
context: ApplicationContext,
): Promise<ModelProvidersRouteData> {
const { EMPTY_MODEL_PROVIDERS_DATA, loadModelProvidersData } = await import("./load.ts");
const gatewaySnapshot = context.gateway.snapshot;
const { EMPTY_MODEL_PROVIDERS_DATA, loadModelProvidersData } = await import("./load.ts");
const client = gatewaySnapshot.connected ? gatewaySnapshot.client : null;
if (!client) {
return { data: EMPTY_MODEL_PROVIDERS_DATA, client: null };
+22
View File
@@ -4,6 +4,8 @@ import type { GatewayBrowserClient } from "../api/gateway.ts";
import type { ApplicationContext, ApplicationGatewaySnapshot } from "../app/context.ts";
import type { AgentsRouteData } from "./agents/agents-page.ts";
import { page as agentsPage } from "./agents/route.ts";
import type { ModelProvidersRouteData } from "./model-providers/model-providers-page.ts";
import { page as modelProvidersPage } from "./model-providers/route.ts";
import type { NodesRouteData } from "./nodes/nodes-page.ts";
import { page as nodesPage } from "./nodes/route.ts";
import type { PluginsRouteData } from "./plugins/plugins-page.ts";
@@ -135,6 +137,26 @@ describe("route preload gateway provenance", () => {
expect(data.gatewaySnapshot).toBe(originalSnapshot);
});
it("keeps model providers provenance from before its lazy module load", async () => {
const originalRequest = vi.fn(async () => ({}));
const originalClient = { request: originalRequest } as unknown as GatewayBrowserClient;
const replacementRequest = vi.fn(async () => ({}));
const replacementClient = {
request: replacementRequest,
} as unknown as GatewayBrowserClient;
const mutable = mutableGateway(snapshot(originalClient, true));
const request = loadRoute<ModelProvidersRouteData>(modelProvidersPage, {
gateway: mutable.gateway,
} as unknown as ApplicationContext);
mutable.replaceSnapshot(snapshot(replacementClient, true));
const data = await request;
expect(data.client).toBe(originalClient);
expect(originalRequest).toHaveBeenCalled();
expect(replacementRequest).not.toHaveBeenCalled();
});
it("keeps skills provenance from before its async preload", async () => {
const client = {
request: vi.fn(async () => ({ skills: [] })),