fix: preserve newlines in reply tags
This commit is contained in:
@@ -70,6 +70,7 @@
|
|||||||
- Discord: include recent guild context when replying to mentions and add `discord.historyLimit` to tune how many messages are captured.
|
- Discord: include recent guild context when replying to mentions and add `discord.historyLimit` to tune how many messages are captured.
|
||||||
- Discord: include author tag + id in group context `[from:]` lines for ping-ready replies (thanks @thewilloftheshadow).
|
- Discord: include author tag + id in group context `[from:]` lines for ping-ready replies (thanks @thewilloftheshadow).
|
||||||
- Discord: include replied-to message context when a Discord message references another message (thanks @thewilloftheshadow).
|
- Discord: include replied-to message context when a Discord message references another message (thanks @thewilloftheshadow).
|
||||||
|
- Discord: preserve newlines when stripping reply tags from agent output.
|
||||||
- Gateway: fix TypeScript build by aligning hook mapping `channel` types and removing a dead Group DM branch in Discord monitor.
|
- Gateway: fix TypeScript build by aligning hook mapping `channel` types and removing a dead Group DM branch in Discord monitor.
|
||||||
- Skills: switch imsg installer to brew tap formula.
|
- Skills: switch imsg installer to brew tap formula.
|
||||||
- Skills: gate macOS-only skills by OS and surface block reasons in the Skills UI.
|
- Skills: gate macOS-only skills by OS and surface block reasons in the Skills UI.
|
||||||
|
|||||||
@@ -109,6 +109,15 @@ describe("directive parsing", () => {
|
|||||||
expect(res.cleaned).toBe("see now");
|
expect(res.cleaned).toBe("see now");
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it("preserves newlines when stripping reply tags", () => {
|
||||||
|
const res = extractReplyToTag(
|
||||||
|
"line 1\nline 2 [[reply_to_current]]\n\nline 3",
|
||||||
|
"msg-2",
|
||||||
|
);
|
||||||
|
expect(res.replyToId).toBe("msg-2");
|
||||||
|
expect(res.cleaned).toBe("line 1\nline 2\n\nline 3");
|
||||||
|
});
|
||||||
|
|
||||||
it("strips reply tags and maps reply_to_current to MessageSid", async () => {
|
it("strips reply tags and maps reply_to_current to MessageSid", async () => {
|
||||||
await withTempHome(async (home) => {
|
await withTempHome(async (home) => {
|
||||||
vi.mocked(runEmbeddedPiAgent).mockResolvedValue({
|
vi.mocked(runEmbeddedPiAgent).mockResolvedValue({
|
||||||
|
|||||||
@@ -193,7 +193,10 @@ export function extractReplyToTag(
|
|||||||
hasTag = true;
|
hasTag = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
cleaned = cleaned.replace(/\s+/g, " ").trim();
|
cleaned = cleaned
|
||||||
|
.replace(/[ \t]+/g, " ")
|
||||||
|
.replace(/[ \t]*\n[ \t]*/g, "\n")
|
||||||
|
.trim();
|
||||||
return { cleaned, replyToId, hasTag };
|
return { cleaned, replyToId, hasTag };
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user