Fix pending Jupyter workspace handoff

This commit is contained in:
wuyang6
2026-05-13 17:22:58 +08:00
parent 9a42b00bfe
commit cdbc7d9fb7
3 changed files with 15 additions and 29 deletions
+6 -20
View File
@@ -1,11 +1,12 @@
"use client";
const ACTIVE_SESSION_ID_KEY = "claw.activeSessionId";
const PENDING_WORKSPACE_SESSION_ID_KEY = "claw.pendingWorkspaceSessionId";
export const ACTIVE_SESSION_CHANGED_EVENT = "claw-active-session-changed";
export const PENDING_WORKSPACE_SESSION_CHANGED_EVENT =
"claw-pending-workspace-session-changed";
let pendingWorkspaceSessionId: string | null = null;
export function readActiveSessionId() {
if (typeof window === "undefined") return null;
return (
@@ -55,8 +56,7 @@ export function writePendingWorkspaceSessionId(
clearPendingWorkspaceSessionId();
return;
}
window.sessionStorage.setItem(PENDING_WORKSPACE_SESSION_ID_KEY, normalized);
window.localStorage.setItem(PENDING_WORKSPACE_SESSION_ID_KEY, normalized);
pendingWorkspaceSessionId = normalized;
window.dispatchEvent(
new CustomEvent(PENDING_WORKSPACE_SESSION_CHANGED_EVENT, {
detail: { sessionId: normalized },
@@ -64,28 +64,14 @@ export function writePendingWorkspaceSessionId(
);
}
export function consumePendingWorkspaceSessionId() {
const sessionId = readPendingWorkspaceSessionId();
clearPendingWorkspaceSessionId();
return sessionId;
}
export function readPendingWorkspaceSessionId() {
if (typeof window === "undefined") return null;
return (
normalizeSessionId(
window.sessionStorage.getItem(PENDING_WORKSPACE_SESSION_ID_KEY),
) ??
normalizeSessionId(
window.localStorage.getItem(PENDING_WORKSPACE_SESSION_ID_KEY),
)
);
return pendingWorkspaceSessionId;
}
function clearPendingWorkspaceSessionId() {
export function clearPendingWorkspaceSessionId() {
if (typeof window === "undefined") return;
window.sessionStorage.removeItem(PENDING_WORKSPACE_SESSION_ID_KEY);
window.localStorage.removeItem(PENDING_WORKSPACE_SESSION_ID_KEY);
pendingWorkspaceSessionId = null;
window.dispatchEvent(
new CustomEvent(PENDING_WORKSPACE_SESSION_CHANGED_EVENT, {
detail: { sessionId: null },