fix: tighten thread-clear and telegram retry guards

This commit is contained in:
Ayaan Zaidi
2026-02-09 08:43:40 +05:30
committed by Ayaan Zaidi
parent d7bd68ff24
commit d85f0566a9
4 changed files with 43 additions and 6 deletions
+1 -2
View File
@@ -176,7 +176,7 @@ describe("sessions", () => {
});
});
it("updateLastRoute clears threadId when deliveryContext explicitly omits it", async () => {
it("updateLastRoute clears threadId when explicit route omits threadId", async () => {
const mainSessionKey = "agent:main:main";
const dir = await fs.mkdtemp(path.join(os.tmpdir(), "openclaw-sessions-"));
const storePath = path.join(dir, "sessions.json");
@@ -209,7 +209,6 @@ describe("sessions", () => {
deliveryContext: {
channel: "telegram",
to: "222",
threadId: undefined,
},
});
+14 -3
View File
@@ -440,10 +440,21 @@ export async function updateLastRoute(params: {
});
const mergedInput = mergeDeliveryContext(explicitContext, inlineContext);
const explicitDeliveryContext = params.deliveryContext;
const clearThreadFromFallback =
const explicitThreadFromDeliveryContext =
explicitDeliveryContext != null &&
Object.prototype.hasOwnProperty.call(explicitDeliveryContext, "threadId") &&
explicitDeliveryContext.threadId == null;
Object.prototype.hasOwnProperty.call(explicitDeliveryContext, "threadId")
? explicitDeliveryContext.threadId
: undefined;
const explicitThreadValue =
explicitThreadFromDeliveryContext ??
(threadId != null && threadId !== "" ? threadId : undefined);
const explicitRouteProvided = Boolean(
explicitContext?.channel ||
explicitContext?.to ||
inlineContext?.channel ||
inlineContext?.to,
);
const clearThreadFromFallback = explicitRouteProvided && explicitThreadValue == null;
const fallbackContext = clearThreadFromFallback
? removeThreadFromDeliveryContext(deliveryContextFromSession(existing))
: deliveryContextFromSession(existing);