fix: cover missing session key model switch persist (#1465) (thanks @robbyczgw-cla)
This commit is contained in:
@@ -6,6 +6,7 @@ Docs: https://docs.clawd.bot
|
|||||||
|
|
||||||
### Fixes
|
### Fixes
|
||||||
- BlueBubbles: stop typing indicator on idle/no-reply. (#1439) Thanks @Nicell.
|
- BlueBubbles: stop typing indicator on idle/no-reply. (#1439) Thanks @Nicell.
|
||||||
|
- Auto-reply: only report a model switch when session state is available. (#1465) Thanks @robbyczgw-cla.
|
||||||
|
|
||||||
## 2026.1.21-2
|
## 2026.1.21-2
|
||||||
|
|
||||||
|
|||||||
@@ -138,6 +138,39 @@ describe("handleDirectiveOnly model persist behavior (fixes #1435)", () => {
|
|||||||
expect(result?.text).toContain("session state unavailable");
|
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 () => {
|
it("shows no model message when no /model directive", async () => {
|
||||||
const directives = parseInlineDirectives("hello world");
|
const directives = parseInlineDirectives("hello world");
|
||||||
const sessionEntry: SessionEntry = {
|
const sessionEntry: SessionEntry = {
|
||||||
|
|||||||
Reference in New Issue
Block a user