fix(web-shell): settle pin optimism after invalidation

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
This commit is contained in:
jinjing.zzj 2026-08-20 22:57:12 +08:00
parent f6a2f827fc
commit 65db7cf809

View file

@ -3125,6 +3125,7 @@ export function WebShellSidebar({
return;
}
const targetPinned = !session.isPinned;
let rpcSucceeded = false;
const markRpcSettled = (): void => {
setOptimisticPins((previous) => {
const entry = previous.get(sessionIdentity);
@ -3174,7 +3175,7 @@ export function WebShellSidebar({
isPinned: targetPinned,
})
.then(() => {
markRpcSettled();
rpcSucceeded = true;
bumpWorkspaceReload();
})
.catch((err: unknown) => {
@ -3186,6 +3187,7 @@ export function WebShellSidebar({
if (workspaceCwd) {
sessionCatalogController.invalidateWorkspace(workspaceCwd);
}
if (rpcSucceeded) markRpcSettled();
setSessionBusy(sessionId, false, session.workspaceCwd);
});
},