diff --git a/apps/desktop/src/lib/codegen/messageQueue.svelte.ts b/apps/desktop/src/lib/codegen/messageQueue.svelte.ts index f71e1b05eb..8c8ce000b9 100644 --- a/apps/desktop/src/lib/codegen/messageQueue.svelte.ts +++ b/apps/desktop/src/lib/codegen/messageQueue.svelte.ts @@ -121,11 +121,11 @@ export class MessageQueueProcessor { $effect(() => { for (const id of queueIds) { const queue = $derived(messageQueueSelectors.selectById(this.clientState.messageQueue, id)); - if (queue) { - $effect(() => { + $effect(() => { + if (queue) { this.handleQueue(queue); - }); - } + } + }); } }); } diff --git a/apps/desktop/src/lib/state/uiState.svelte.ts b/apps/desktop/src/lib/state/uiState.svelte.ts index ab8d3ad5a1..a7d3527379 100644 --- a/apps/desktop/src/lib/state/uiState.svelte.ts +++ b/apps/desktop/src/lib/state/uiState.svelte.ts @@ -10,6 +10,7 @@ import { type ThunkDispatch, type UnknownAction } from '@reduxjs/toolkit'; +import { untrack } from 'svelte'; import type { ThinkingLevel, ModelType, PermissionMode } from '$lib/codegen/types'; import type { PullRequest } from '$lib/forge/interface/types'; import type { StackDetails } from '$lib/stacks/stack'; @@ -267,18 +268,20 @@ export class UiState { }; // If the value is an array of strings, we add methods to add/remove - if (Array.isArray(mutableResult) && mutableResult.every(isStr)) { - (props[key] as GlobalProperty).add = (...value: string[]) => { - const current = mutableResult as string[]; - mutableResult = [...current, ...value.filter((v) => !current.includes(v))]; - this.update(`${id}:${key}`, mutableResult); - }; - (props[key] as GlobalProperty).remove = (value: string) => { - const current = mutableResult as string[]; - mutableResult = current.filter((v) => v !== value); - this.update(`${id}:${key}`, mutableResult); - }; - } + untrack(() => { + if (Array.isArray(mutableResult) && mutableResult.every(isStr)) { + (props[key] as GlobalProperty).add = (...value: string[]) => { + const current = mutableResult as string[]; + mutableResult = [...current, ...value.filter((v) => !current.includes(v))]; + this.update(`${id}:${key}`, mutableResult); + }; + (props[key] as GlobalProperty).remove = (value: string) => { + const current = mutableResult as string[]; + mutableResult = current.filter((v) => v !== value); + this.update(`${id}:${key}`, mutableResult); + }; + } + }); } scopeCache[id] = props as GlobalStore; return scopeCache[id]; diff --git a/apps/desktop/src/lib/worktree/worktreeService.svelte.ts b/apps/desktop/src/lib/worktree/worktreeService.svelte.ts index be1ba0b48b..7f9b631fb8 100644 --- a/apps/desktop/src/lib/worktree/worktreeService.svelte.ts +++ b/apps/desktop/src/lib/worktree/worktreeService.svelte.ts @@ -43,8 +43,7 @@ export class WorktreeService { } worktreeData(projectId: string) { - const result = $derived(this.api.endpoints.worktreeChanges.useQuery({ projectId })); - return result; + return this.api.endpoints.worktreeChanges.useQuery({ projectId }); } treeChangeByPath(projectId: string, path: string) {