Skip to content

Commit b0a69a9

Browse files
committed
fix: guard QMD session stem fallback
1 parent ad71a99 commit b0a69a9

2 files changed

Lines changed: 19 additions & 1 deletion

File tree

src/plugin-sdk/session-transcript-hit.test.ts

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -217,6 +217,23 @@ describe("resolveTranscriptStemToSessionKeys", () => {
217217
).toEqual(["agent:main:s1"]);
218218
});
219219

220+
it("ignores store entries without session ids during QMD-slugified fallback", () => {
221+
const store: Record<string, SessionEntry> = {
222+
"agent:main:non-session": {
223+
updatedAt: 1,
224+
} as SessionEntry,
225+
"agent:main:s1": baseEntry({ sessionId: "foo_bar.v1" }),
226+
};
227+
228+
expect(
229+
resolveTranscriptStemToSessionKeys({
230+
store,
231+
stem: "foo-bar-v1",
232+
allowQmdSlugFallback: true,
233+
}),
234+
).toEqual(["agent:main:s1"]);
235+
});
236+
220237
it("does not use QMD-slugified fallback unless requested", () => {
221238
const store: Record<string, SessionEntry> = {
222239
"agent:main:s1": baseEntry({ sessionId: "foo_bar.v1" }),

src/plugin-sdk/session-transcript-hit.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,8 @@ export function resolveTranscriptStemToSessionKeys(params: {
151151
continue;
152152
}
153153
}
154-
if (normalizeQmdSessionStem(entry.sessionId) === normalizedStem) {
154+
const entrySessionId = normalizeOptionalString(entry.sessionId);
155+
if (entrySessionId && normalizeQmdSessionStem(entrySessionId) === normalizedStem) {
155156
matches.push(sessionKey);
156157
}
157158
}

0 commit comments

Comments
 (0)