test: isolate gateway prewarm scheduling · openclaw/openclaw@0f24a8d
steipete
·
2026-04-28
·
via Recent Commits to openclaw:main
| Original file line number | Diff line number | Diff line change |
|---|
@@ -313,9 +313,8 @@ describe("startGatewayPostAttachRuntime", () => {
|
313 | 313 | }); |
314 | 314 | |
315 | 315 | it("starts channels without waiting for primary model prewarm completion", async () => { |
316 | | -hoisted.resolveAgentModelPrimaryValue.mockReturnValue("openai/gpt-5.4"); |
317 | 316 | let resolvePrewarm!: () => void; |
318 | | -hoisted.ensureOpenClawModelsJson.mockImplementation( |
| 317 | +const prewarmPrimaryModel = vi.fn( |
319 | 318 | async () => |
320 | 319 | await new Promise<undefined>((resolve) => { |
321 | 320 | resolvePrewarm = () => resolve(undefined); |
@@ -332,6 +331,7 @@ describe("startGatewayPostAttachRuntime", () => {
|
332 | 331 | defaultWorkspaceDir: "/tmp/openclaw-workspace", |
333 | 332 | deps: {} as never, |
334 | 333 | startChannels, |
| 334 | +prewarmPrimaryModel: prewarmPrimaryModel as never, |
335 | 335 | log: { warn: vi.fn() }, |
336 | 336 | logHooks: { |
337 | 337 | info: vi.fn(), |
@@ -346,7 +346,7 @@ describe("startGatewayPostAttachRuntime", () => {
|
346 | 346 | |
347 | 347 | await vi.waitFor( |
348 | 348 | () => { |
349 | | -expect(hoisted.ensureOpenClawModelsJson).toHaveBeenCalledTimes(1); |
| 349 | +expect(prewarmPrimaryModel).toHaveBeenCalledTimes(1); |
350 | 350 | expect(startChannels).toHaveBeenCalledTimes(1); |
351 | 351 | }, |
352 | 352 | { timeout: 2_000 }, |
|
| Original file line number | Diff line number | Diff line change |
|---|
@@ -208,6 +208,7 @@ export async function startGatewaySidecars(params: {
|
208 | 208 | defaultWorkspaceDir: string; |
209 | 209 | deps: CliDeps; |
210 | 210 | startChannels: () => Promise<void>; |
| 211 | +prewarmPrimaryModel?: typeof prewarmConfiguredPrimaryModel; |
211 | 212 | log: { warn: (msg: string) => void }; |
212 | 213 | logHooks: { |
213 | 214 | info: (msg: string) => void; |
@@ -329,11 +330,14 @@ export async function startGatewaySidecars(params: {
|
329 | 330 | await measureStartup(params.startupTrace, "sidecars.channels", async () => { |
330 | 331 | if (!skipChannels) { |
331 | 332 | try { |
332 | | -schedulePrimaryModelPrewarm({ |
333 | | -cfg: params.cfg, |
334 | | -log: params.log, |
335 | | -startupTrace: params.startupTrace, |
336 | | -}); |
| 333 | +schedulePrimaryModelPrewarm( |
| 334 | +{ |
| 335 | +cfg: params.cfg, |
| 336 | +log: params.log, |
| 337 | +startupTrace: params.startupTrace, |
| 338 | +}, |
| 339 | +params.prewarmPrimaryModel, |
| 340 | +); |
337 | 341 | await measureStartup(params.startupTrace, "sidecars.channel-start", () => |
338 | 342 | params.startChannels(), |
339 | 343 | ); |
|
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。