Merge branch 'main' into commands-list-clean
This commit is contained in:
@@ -37,6 +37,7 @@
|
|||||||
- Auto-reply: block reply ordering fix (duplicate PR superseded by #503). (#483) — thanks @AbhisekBasu1
|
- Auto-reply: block reply ordering fix (duplicate PR superseded by #503). (#483) — thanks @AbhisekBasu1
|
||||||
- Auto-reply: avoid splitting outbound chunks inside parentheses. (#499) — thanks @philipp-spiess
|
- Auto-reply: avoid splitting outbound chunks inside parentheses. (#499) — thanks @philipp-spiess
|
||||||
- Auto-reply: preserve spacing when stripping inline directives. (#539) — thanks @joshp123
|
- Auto-reply: preserve spacing when stripping inline directives. (#539) — thanks @joshp123
|
||||||
|
- Auto-reply: relax reply tag parsing to allow whitespace. (#560) — thanks @mcinteerj
|
||||||
- Auto-reply: fix /status usage summary filtering for the active provider.
|
- Auto-reply: fix /status usage summary filtering for the active provider.
|
||||||
- Status: show provider prefix in /status model display. (#506) — thanks @mcinteerj
|
- Status: show provider prefix in /status model display. (#506) — thanks @mcinteerj
|
||||||
- Status: compact /status with session token usage + estimated cost, add `/cost` per-response usage lines (tokens-only for OAuth).
|
- Status: compact /status with session token usage + estimated cost, add `/cost` per-response usage lines (tokens-only for OAuth).
|
||||||
|
|||||||
@@ -162,12 +162,24 @@ describe("directive parsing", () => {
|
|||||||
expect(res.cleaned).toBe("ok");
|
expect(res.cleaned).toBe("ok");
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it("extracts reply_to_current tag with whitespace", () => {
|
||||||
|
const res = extractReplyToTag("ok [[ reply_to_current ]]", "msg-1");
|
||||||
|
expect(res.replyToId).toBe("msg-1");
|
||||||
|
expect(res.cleaned).toBe("ok");
|
||||||
|
});
|
||||||
|
|
||||||
it("extracts reply_to id tag", () => {
|
it("extracts reply_to id tag", () => {
|
||||||
const res = extractReplyToTag("see [[reply_to:12345]] now", "msg-1");
|
const res = extractReplyToTag("see [[reply_to:12345]] now", "msg-1");
|
||||||
expect(res.replyToId).toBe("12345");
|
expect(res.replyToId).toBe("12345");
|
||||||
expect(res.cleaned).toBe("see now");
|
expect(res.cleaned).toBe("see now");
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it("extracts reply_to id tag with whitespace", () => {
|
||||||
|
const res = extractReplyToTag("see [[ reply_to : 12345 ]] now", "msg-1");
|
||||||
|
expect(res.replyToId).toBe("12345");
|
||||||
|
expect(res.cleaned).toBe("see now");
|
||||||
|
});
|
||||||
|
|
||||||
it("preserves newlines when stripping reply tags", () => {
|
it("preserves newlines when stripping reply tags", () => {
|
||||||
const res = extractReplyToTag(
|
const res = extractReplyToTag(
|
||||||
"line 1\nline 2 [[reply_to_current]]\n\nline 3",
|
"line 1\nline 2 [[reply_to_current]]\n\nline 3",
|
||||||
|
|||||||
@@ -11,18 +11,18 @@ export function extractReplyToTag(
|
|||||||
let replyToId: string | undefined;
|
let replyToId: string | undefined;
|
||||||
let hasTag = false;
|
let hasTag = false;
|
||||||
|
|
||||||
const currentMatch = cleaned.match(/\[\[reply_to_current\]\]/i);
|
const currentMatch = cleaned.match(/\[\[\s*reply_to_current\s*\]\]/i);
|
||||||
if (currentMatch) {
|
if (currentMatch) {
|
||||||
cleaned = cleaned.replace(/\[\[reply_to_current\]\]/gi, " ");
|
cleaned = cleaned.replace(/\[\[\s*reply_to_current\s*\]\]/gi, " ");
|
||||||
hasTag = true;
|
hasTag = true;
|
||||||
if (currentMessageId?.trim()) {
|
if (currentMessageId?.trim()) {
|
||||||
replyToId = currentMessageId.trim();
|
replyToId = currentMessageId.trim();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const idMatch = cleaned.match(/\[\[reply_to:([^\]\n]+)\]\]/i);
|
const idMatch = cleaned.match(/\[\[\s*reply_to\s*:\s*([^\]\n]+)\s*\]\]/i);
|
||||||
if (idMatch?.[1]) {
|
if (idMatch?.[1]) {
|
||||||
cleaned = cleaned.replace(/\[\[reply_to:[^\]\n]+\]\]/gi, " ");
|
cleaned = cleaned.replace(/\[\[\s*reply_to\s*:\s*[^\]\n]+\s*\]\]/gi, " ");
|
||||||
replyToId = idMatch[1].trim();
|
replyToId = idMatch[1].trim();
|
||||||
hasTag = true;
|
hasTag = true;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user