fix(slack): guard against undefined text in includes calls during mention handling

This commit is contained in:
stone-jin
2026-03-03 00:02:48 +08:00
committed by Peter Steinberger
parent ce4faedad6
commit 2a98fd3d0b
4 changed files with 33 additions and 0 deletions

View File

@@ -0,0 +1,20 @@
import { describe, expect, it } from "vitest";
import { stripStructuralPrefixes } from "./mentions.js";
describe("stripStructuralPrefixes", () => {
it("returns empty string for undefined input at runtime", () => {
expect(stripStructuralPrefixes(undefined as unknown as string)).toBe("");
});
it("returns empty string for empty input", () => {
expect(stripStructuralPrefixes("")).toBe("");
});
it("strips sender prefix labels", () => {
expect(stripStructuralPrefixes("John: hello")).toBe("hello");
});
it("passes through plain text", () => {
expect(stripStructuralPrefixes("just a message")).toBe("just a message");
});
});

View File

@@ -111,6 +111,9 @@ export function matchesMentionWithExplicit(params: {
}
export function stripStructuralPrefixes(text: string): string {
if (!text) {
return "";
}
// Ignore wrapper labels, timestamps, and sender prefixes so directive-only
// detection still works in group batches that include history/context.
const afterMarker = text.includes(CURRENT_MESSAGE_MARKER)