mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-06 23:31:35 +00:00
fix(slack): wrap session key in backticks to prevent emoji shortcode parsing (openclaw#30266) thanks @pushkarsingh32
Verified: - pnpm build - pnpm check - pnpm test:macmini Co-authored-by: pushkarsingh32 <29558481+pushkarsingh32@users.noreply.github.com> Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com>
This commit is contained in:
@@ -92,6 +92,7 @@ Docs: https://docs.openclaw.ai
|
|||||||
- Cron/Schedule errors: notify users when a job is auto-disabled after repeated schedule computation failures. (#29098) Thanks .
|
- Cron/Schedule errors: notify users when a job is auto-disabled after repeated schedule computation failures. (#29098) Thanks .
|
||||||
- File tools/tilde paths: expand `~/...` against the user home directory before workspace-root checks in host file read/write/edit paths, while preserving root-boundary enforcement so outside-root targets remain blocked. (#29779) Thanks @Glucksberg.
|
- File tools/tilde paths: expand `~/...` against the user home directory before workspace-root checks in host file read/write/edit paths, while preserving root-boundary enforcement so outside-root targets remain blocked. (#29779) Thanks @Glucksberg.
|
||||||
- Slack/HTTP mode startup: treat Slack HTTP accounts as configured when `botToken` + `signingSecret` are present (without requiring `appToken`) in channel config/runtime status so webhook mode is not silently skipped. (#30567)
|
- Slack/HTTP mode startup: treat Slack HTTP accounts as configured when `botToken` + `signingSecret` are present (without requiring `appToken`) in channel config/runtime status so webhook mode is not silently skipped. (#30567)
|
||||||
|
- Slack/Usage footer formatting: wrap session keys in inline code in full response-usage footers so Slack does not parse colon-delimited session segments as emoji shortcodes. (#30258) Thanks @pushkarsingh32.
|
||||||
- Onboarding/Custom providers: raise default custom-provider model context window to the runtime hard minimum (16k) and auto-heal existing custom model entries below that threshold during reconfiguration, preventing immediate `Model context window too small (4096 tokens)` failures. (#21653) Thanks @r4jiv007.
|
- Onboarding/Custom providers: raise default custom-provider model context window to the runtime hard minimum (16k) and auto-heal existing custom model entries below that threshold during reconfiguration, preventing immediate `Model context window too small (4096 tokens)` failures. (#21653) Thanks @r4jiv007.
|
||||||
- Web UI/Assistant text: strip internal `<relevant-memories>...</relevant-memories>` scaffolding from rendered assistant messages (while preserving code-fence literals), preventing memory-context leakage in chat output for models that echo internal blocks. (#29851) Thanks @Valkster70.
|
- Web UI/Assistant text: strip internal `<relevant-memories>...</relevant-memories>` scaffolding from rendered assistant messages (while preserving code-fence literals), preventing memory-context leakage in chat output for models that echo internal blocks. (#29851) Thanks @Valkster70.
|
||||||
- Dashboard/Sessions: allow authenticated Control UI clients to delete and patch sessions while still blocking regular webchat clients from session mutation RPCs, fixing Dashboard session delete failures. (#21264) Thanks @jskoiz.
|
- Dashboard/Sessions: allow authenticated Control UI clients to delete and patch sessions while still blocking regular webchat clients from session mutation RPCs, fixing Dashboard session delete failures. (#21264) Thanks @jskoiz.
|
||||||
|
|||||||
@@ -1391,7 +1391,7 @@ describe("runReplyAgent response usage footer", () => {
|
|||||||
const res = await createRun({ responseUsage: "full", sessionKey });
|
const res = await createRun({ responseUsage: "full", sessionKey });
|
||||||
const payload = Array.isArray(res) ? res[0] : res;
|
const payload = Array.isArray(res) ? res[0] : res;
|
||||||
expect(String(payload?.text ?? "")).toContain("Usage:");
|
expect(String(payload?.text ?? "")).toContain("Usage:");
|
||||||
expect(String(payload?.text ?? "")).toContain(`· session ${sessionKey}`);
|
expect(String(payload?.text ?? "")).toContain(`· session \`${sessionKey}\``);
|
||||||
});
|
});
|
||||||
|
|
||||||
it("does not append session key when responseUsage=tokens", async () => {
|
it("does not append session key when responseUsage=tokens", async () => {
|
||||||
|
|||||||
@@ -605,7 +605,7 @@ export async function runReplyAgent(params: {
|
|||||||
costConfig,
|
costConfig,
|
||||||
});
|
});
|
||||||
if (formatted && responseUsageMode === "full" && sessionKey) {
|
if (formatted && responseUsageMode === "full" && sessionKey) {
|
||||||
formatted = `${formatted} · session ${sessionKey}`;
|
formatted = `${formatted} · session \`${sessionKey}\``;
|
||||||
}
|
}
|
||||||
if (formatted) {
|
if (formatted) {
|
||||||
responseUsageLine = formatted;
|
responseUsageLine = formatted;
|
||||||
|
|||||||
Reference in New Issue
Block a user