Skip to content

Commit 5cb7c2c

Browse files
committed
test(inference): prove partial Hermes sync failure
Signed-off-by: Ho Lim <subhoya@gmail.com>
1 parent 1047cc2 commit 5cb7c2c

2 files changed

Lines changed: 18 additions & 3 deletions

File tree

src/lib/actions/inference-set-hermes-run.test.ts

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -237,7 +237,11 @@ describe("runInferenceSet Hermes routing", () => {
237237
},
238238
deps,
239239
),
240-
).rejects.toThrow(/Hermes inference route synchronization did not complete/);
240+
).rejects.toMatchObject({
241+
name: "InferenceSetError",
242+
exitCode: 1,
243+
message: expect.stringMatching(/Hermes inference route synchronization did not complete/),
244+
});
241245

242246
// A failed gateway-config write leaves the old config in place; re-seeding the
243247
// dashboard from it would be pointless. The host route remains committed, but
@@ -282,9 +286,20 @@ describe("runInferenceSet Hermes routing", () => {
282286
},
283287
deps,
284288
),
285-
).rejects.toThrow(/Hermes inference route synchronization did not complete/);
289+
).rejects.toMatchObject({
290+
name: "InferenceSetError",
291+
exitCode: 1,
292+
message: expect.stringMatching(/Hermes inference route synchronization did not complete/),
293+
});
286294

287295
expect(deps.calls.writeSandboxConfig).toHaveBeenCalledOnce();
296+
expect(deps.calls.updateSandbox).toHaveBeenCalledWith(
297+
"hermes",
298+
expect.objectContaining({
299+
provider: "hermes-provider",
300+
model: "openai/gpt-5.4-mini",
301+
}),
302+
);
288303
expect(deps.calls.seedHermesDashboardConfig).not.toHaveBeenCalled();
289304
const logs = deps.calls.log.mock.calls.map((call) => String(call[0]));
290305
expect(logs.some((line) => line.includes("failed to refresh its integrity hash"))).toBe(true);

src/lib/actions/inference-set.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1323,7 +1323,7 @@ async function runInferenceSetWithoutHostLock(
13231323
throw new InferenceSetError(
13241324
`Hermes inference route synchronization did not complete for '${sandboxName}'. ` +
13251325
`The OpenShell route and NemoClaw registry remain committed, but the in-sandbox ` +
1326-
`Hermes config is stale. Run '${CLI_NAME} ${sandboxName} rebuild' to converge it.`,
1326+
`Hermes configuration did not fully converge. Run '${CLI_NAME} ${sandboxName} rebuild' to converge it.`,
13271327
);
13281328
}
13291329
return mutation;

0 commit comments

Comments
 (0)