refactor: prune legacy group prefixes
This commit is contained in:
@@ -17,20 +17,23 @@ describe("gateway session utils", () => {
|
||||
expect(res.items).toEqual(["b", "c"]);
|
||||
});
|
||||
|
||||
test("parseGroupKey handles group prefixes", () => {
|
||||
expect(parseGroupKey("group:abc")).toEqual({ id: "abc" });
|
||||
test("parseGroupKey handles group keys", () => {
|
||||
expect(parseGroupKey("discord:group:dev")).toEqual({
|
||||
channel: "discord",
|
||||
kind: "group",
|
||||
id: "dev",
|
||||
});
|
||||
expect(parseGroupKey("agent:ops:discord:group:dev")).toEqual({
|
||||
channel: "discord",
|
||||
kind: "group",
|
||||
id: "dev",
|
||||
});
|
||||
expect(parseGroupKey("foo:bar")).toBeNull();
|
||||
});
|
||||
|
||||
test("classifySessionKey respects chat type + prefixes", () => {
|
||||
expect(classifySessionKey("global")).toBe("global");
|
||||
expect(classifySessionKey("unknown")).toBe("unknown");
|
||||
expect(classifySessionKey("group:abc")).toBe("group");
|
||||
expect(classifySessionKey("discord:group:dev")).toBe("group");
|
||||
expect(classifySessionKey("main")).toBe("direct");
|
||||
const entry = { chatType: "group" } as SessionEntry;
|
||||
@@ -52,7 +55,9 @@ describe("gateway session utils", () => {
|
||||
session: { mainKey: "main" },
|
||||
agents: { list: [{ id: "ops", default: true }] },
|
||||
} as ClawdbotConfig;
|
||||
expect(resolveSessionStoreKey({ cfg, sessionKey: "group:123" })).toBe("agent:ops:group:123");
|
||||
expect(resolveSessionStoreKey({ cfg, sessionKey: "discord:group:123" })).toBe(
|
||||
"agent:ops:discord:group:123",
|
||||
);
|
||||
expect(resolveSessionStoreKey({ cfg, sessionKey: "agent:alpha:main" })).toBe(
|
||||
"agent:alpha:main",
|
||||
);
|
||||
|
||||
@@ -60,7 +60,7 @@ export function classifySessionKey(key: string, entry?: SessionEntry): GatewaySe
|
||||
if (entry?.chatType === "group" || entry?.chatType === "channel") {
|
||||
return "group";
|
||||
}
|
||||
if (key.startsWith("group:") || key.includes(":group:") || key.includes(":channel:")) {
|
||||
if (key.includes(":group:") || key.includes(":channel:")) {
|
||||
return "group";
|
||||
}
|
||||
return "direct";
|
||||
@@ -71,10 +71,6 @@ export function parseGroupKey(
|
||||
): { channel?: string; kind?: "group" | "channel"; id?: string } | null {
|
||||
const agentParsed = parseAgentSessionKey(key);
|
||||
const rawKey = agentParsed?.rest ?? key;
|
||||
if (rawKey.startsWith("group:")) {
|
||||
const raw = rawKey.slice("group:".length);
|
||||
return raw ? { id: raw } : null;
|
||||
}
|
||||
const parts = rawKey.split(":").filter(Boolean);
|
||||
if (parts.length >= 3) {
|
||||
const [channel, kind, ...rest] = parts;
|
||||
|
||||
Reference in New Issue
Block a user