diff --git a/agent/canvas.py b/agent/canvas.py index 65303ca9e9..4c3ca59192 100644 --- a/agent/canvas.py +++ b/agent/canvas.py @@ -354,23 +354,26 @@ class Canvas(Graph): key = k[4:] if key in self.variables: variable = self.variables[key] - if variable["type"] == "string": - self.globals[k] = "" - variable["value"] = "" - elif variable["type"] == "number": - self.globals[k] = 0 - variable["value"] = 0 - elif variable["type"] == "boolean": - self.globals[k] = False - variable["value"] = False - elif variable["type"] == "object": - self.globals[k] = {} - variable["value"] = {} - elif variable["type"].startswith("array"): - self.globals[k] = [] - variable["value"] = [] + if variable["value"]: + self.globals[k] = variable["value"] else: - self.globals[k] = "" + if variable["type"] == "string": + self.globals[k] = "" + # variable["value"] = "" + elif variable["type"] == "number": + self.globals[k] = 0 + # variable["value"] = 0 + elif variable["type"] == "boolean": + self.globals[k] = False + # variable["value"] = False + elif variable["type"] == "object": + self.globals[k] = {} + # variable["value"] = {} + elif variable["type"].startswith("array"): + self.globals[k] = [] + # variable["value"] = [] + else: + self.globals[k] = "" else: self.globals[k] = "" diff --git a/web/src/pages/agent/chat/use-send-agent-message.ts b/web/src/pages/agent/chat/use-send-agent-message.ts index c037f236b4..dc8cc074a0 100644 --- a/web/src/pages/agent/chat/use-send-agent-message.ts +++ b/web/src/pages/agent/chat/use-send-agent-message.ts @@ -315,7 +315,10 @@ export const useSendAgentMessage = ({ params.files = uploadResponseList; - params.session_id = sessionId || exploreSessionId; + // Prefer the session selected by the outer page state. + // The hook keeps its own session cache for streamed replies, but that cache + // can lag behind when the user switches sessions in Explore. + params.session_id = exploreSessionId || sessionId; if (releaseMode) { params.release = releaseMode; }