diff --git a/src/tui/tui.test.ts b/src/tui/tui.test.ts index 9b46da66a99..2882cebcd64 100644 --- a/src/tui/tui.test.ts +++ b/src/tui/tui.test.ts @@ -74,6 +74,27 @@ describe("resolveTuiSessionKey", () => { }), ).toBe("agent:ops:incident"); }); + + it("lowercases session keys with uppercase characters", () => { + // Uppercase in agent-prefixed form + expect( + resolveTuiSessionKey({ + raw: "agent:main:Test1", + sessionScope: "global", + currentAgentId: "main", + sessionMainKey: "agent:main:main", + }), + ).toBe("agent:main:test1"); + // Uppercase in bare form (prefixed by currentAgentId) + expect( + resolveTuiSessionKey({ + raw: "Test1", + sessionScope: "global", + currentAgentId: "main", + sessionMainKey: "agent:main:main", + }), + ).toBe("agent:main:test1"); + }); }); describe("resolveGatewayDisconnectState", () => { diff --git a/src/tui/tui.ts b/src/tui/tui.ts index 847245b3b67..fe365477d91 100644 --- a/src/tui/tui.ts +++ b/src/tui/tui.ts @@ -203,9 +203,9 @@ export function resolveTuiSessionKey(params: { return trimmed; } if (trimmed.startsWith("agent:")) { - return trimmed; + return trimmed.toLowerCase(); } - return `agent:${params.currentAgentId}:${trimmed}`; + return `agent:${params.currentAgentId}:${trimmed.toLowerCase()}`; } export function resolveGatewayDisconnectState(reason?: string): {