|
|
|
@@ -138,6 +138,39 @@ describe("handleDirectiveOnly model persist behavior (fixes #1435)", () => {
|
|
|
|
|
expect(result?.text).toContain("session state unavailable");
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
it("shows error message when sessionKey is missing", async () => {
|
|
|
|
|
const directives = parseInlineDirectives("/model openai/gpt-4o");
|
|
|
|
|
const sessionEntry: SessionEntry = {
|
|
|
|
|
sessionId: "s1",
|
|
|
|
|
updatedAt: Date.now(),
|
|
|
|
|
};
|
|
|
|
|
const sessionStore = { "agent:main:dm:1": sessionEntry };
|
|
|
|
|
|
|
|
|
|
const result = await handleDirectiveOnly({
|
|
|
|
|
cfg: baseConfig(),
|
|
|
|
|
directives,
|
|
|
|
|
sessionEntry,
|
|
|
|
|
sessionStore,
|
|
|
|
|
sessionKey: undefined, // Missing!
|
|
|
|
|
storePath: "/tmp/sessions.json",
|
|
|
|
|
elevatedEnabled: false,
|
|
|
|
|
elevatedAllowed: false,
|
|
|
|
|
defaultProvider: "anthropic",
|
|
|
|
|
defaultModel: "claude-opus-4-5",
|
|
|
|
|
aliasIndex: baseAliasIndex(),
|
|
|
|
|
allowedModelKeys,
|
|
|
|
|
allowedModelCatalog,
|
|
|
|
|
resetModelOverride: false,
|
|
|
|
|
provider: "anthropic",
|
|
|
|
|
model: "claude-opus-4-5",
|
|
|
|
|
initialModelLabel: "anthropic/claude-opus-4-5",
|
|
|
|
|
formatModelSwitchEvent: (label) => `Switched to ${label}`,
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
expect(result?.text).toContain("failed");
|
|
|
|
|
expect(result?.text).toContain("session state unavailable");
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
it("shows no model message when no /model directive", async () => {
|
|
|
|
|
const directives = parseInlineDirectives("hello world");
|
|
|
|
|
const sessionEntry: SessionEntry = {
|
|
|
|
|