fix(discord): preserve channel session keys via channel_id fallbacks (#17622)

* fix(discord): preserve channel session keys via channel_id fallbacks

* docs(changelog): add discord session continuity note

* Tests: cover discord channel_id fallback

---------

Co-authored-by: Shadow <hi@shadowing.dev>
This commit is contained in:
Shakker
2026-02-16 02:30:17 +00:00
committed by GitHub
parent 39d5590230
commit 09566b1693
16 changed files with 235 additions and 49 deletions

View File

@@ -141,6 +141,17 @@ describe("resolveAgentRoute", () => {
expect(route.matchedBy).toBe("binding.peer");
});
test("coerces numeric peer ids to stable session keys", () => {
const cfg: OpenClawConfig = {};
const route = resolveAgentRoute({
cfg,
channel: "discord",
accountId: "default",
peer: { kind: "channel", id: 1468834856187203680n as unknown as string },
});
expect(route.sessionKey).toBe("agent:main:discord:channel:1468834856187203680");
});
test("guild binding wins over account binding when peer not bound", () => {
const cfg: OpenClawConfig = {
bindings: [