diff --git a/packages/app/src/hooks/use-agent-history.ts b/packages/app/src/hooks/use-agent-history.ts index 265a07cb1..1b17c5bee 100644 --- a/packages/app/src/hooks/use-agent-history.ts +++ b/packages/app/src/hooks/use-agent-history.ts @@ -126,10 +126,11 @@ export function useAgentHistory(options: { () => (data?.pages ?? []) .flatMap((page) => page.agents) - .map((agent) => ({ - ...agent, - serverLabel: serverLabel ?? agent.serverLabel, - })), + .map((agent) => + Object.assign({}, agent, { + serverLabel: serverLabel ?? agent.serverLabel, + }), + ), [data?.pages, serverLabel], ); const isInitialLoad = isLoading && agents.length === 0; diff --git a/packages/app/src/stores/session-store-hooks.ts b/packages/app/src/stores/session-store-hooks.ts index fb6a2f021..f6dd921aa 100644 --- a/packages/app/src/stores/session-store-hooks.ts +++ b/packages/app/src/stores/session-store-hooks.ts @@ -221,10 +221,9 @@ function selectWorkspaceStructureProjects( ({ workspaces: projectWorkspaces, ...project }) => { const sortedWorkspaces = [...projectWorkspaces].sort(compareWorkspaceStructureItems); - return { - ...project, + return Object.assign({}, project, { workspaceKeys: sortedWorkspaces.map((workspace) => workspace.workspaceId), - }; + }); }, ); diff --git a/packages/app/src/stores/session-store.ts b/packages/app/src/stores/session-store.ts index cd5c646c6..1d6d56352 100644 --- a/packages/app/src/stores/session-store.ts +++ b/packages/app/src/stores/session-store.ts @@ -135,7 +135,7 @@ export function normalizeWorkspaceDescriptor( name: payload.name, status: payload.status, diffStat: payload.diffStat ?? null, - scripts: (payload.scripts ?? []).map((s) => ({ ...s })), + scripts: (payload.scripts ?? []).map((s) => Object.assign({}, s)), }; } diff --git a/packages/app/src/stores/workspace-tabs-store.ts b/packages/app/src/stores/workspace-tabs-store.ts index 5c3b7bbfd..c943dbb0e 100644 --- a/packages/app/src/stores/workspace-tabs-store.ts +++ b/packages/app/src/stores/workspace-tabs-store.ts @@ -277,7 +277,7 @@ export const useWorkspaceTabsStore = create()( } const nextTabs = currentTabs.map((tab, tabIndex) => - tabIndex === index ? { ...tab, target: normalizedTarget } : tab, + tabIndex === index ? Object.assign({}, tab, { target: normalizedTarget }) : tab, ); retargetedTabId = normalizedTabId; return { diff --git a/packages/app/src/utils/provider-definitions.ts b/packages/app/src/utils/provider-definitions.ts index c1b0b9a73..5ace4914a 100644 --- a/packages/app/src/utils/provider-definitions.ts +++ b/packages/app/src/utils/provider-definitions.ts @@ -9,11 +9,12 @@ import { function buildProviderModes(entry: ProviderSnapshotEntry): AgentProviderModeDefinition[] { const entryModes = entry.modes ?? []; - return entryModes.map((mode) => ({ - ...mode, - icon: (mode.icon ?? "ShieldCheck") as AgentModeIcon, - colorTier: (mode.colorTier ?? "moderate") as AgentModeColorTier, - })); + return entryModes.map((mode) => + Object.assign({}, mode, { + icon: (mode.icon ?? "ShieldCheck") as AgentModeIcon, + colorTier: (mode.colorTier ?? "moderate") as AgentModeColorTier, + }), + ); } export function buildProviderDefinitions( diff --git a/packages/server/src/server/agent/agent-manager.ts b/packages/server/src/server/agent/agent-manager.ts index 480f43013..7e8a7236b 100644 --- a/packages/server/src/server/agent/agent-manager.ts +++ b/packages/server/src/server/agent/agent-manager.ts @@ -543,9 +543,7 @@ export class AgentManager { listAgents(): ManagedAgent[] { return Array.from(this.agents.values()) .filter((agent) => !agent.internal) - .map((agent) => ({ - ...agent, - })); + .map((agent) => Object.assign({}, agent)); } async listPersistedAgents( diff --git a/packages/server/src/server/agent/agent-projections.ts b/packages/server/src/server/agent/agent-projections.ts index 66a4eae15..b793bcacb 100644 --- a/packages/server/src/server/agent/agent-projections.ts +++ b/packages/server/src/server/agent/agent-projections.ts @@ -294,13 +294,14 @@ function buildSerializableConfig(config: AgentSessionConfig): SerializableAgentC function sanitizePendingPermissions( pending: Map, ): AgentPermissionRequest[] { - return Array.from(pending.values()).map((request) => ({ - ...request, - input: sanitizeMetadata(request.input), - suggestions: sanitizeMetadataArray(request.suggestions), - actions: request.actions?.map((action) => ({ ...action })), - metadata: sanitizeMetadata(request.metadata), - })); + return Array.from(pending.values()).map((request) => + Object.assign({}, request, { + input: sanitizeMetadata(request.input), + suggestions: sanitizeMetadataArray(request.suggestions), + actions: request.actions?.map((action) => Object.assign({}, action)), + metadata: sanitizeMetadata(request.metadata), + }), + ); } function sanitizePersistenceHandle( diff --git a/packages/server/src/server/agent/provider-registry.ts b/packages/server/src/server/agent/provider-registry.ts index 56c9f2d1e..5b149cb2f 100644 --- a/packages/server/src/server/agent/provider-registry.ts +++ b/packages/server/src/server/agent/provider-registry.ts @@ -271,12 +271,7 @@ function mergeModels( ); return mergedModels.map((model) => - additionalDefaultIds.has(model.id) - ? model - : { - ...model, - isDefault: false, - }, + additionalDefaultIds.has(model.id) ? model : Object.assign({}, model, { isDefault: false }), ); } @@ -388,11 +383,10 @@ function createRegistryEntry( if (mode.icon && mode.colorTier) return mode; const definitionMode = resolved.definition.modes.find((d) => d.id === mode.id); if (!definitionMode) return mode; - return { - ...mode, + return Object.assign({}, mode, { icon: mode.icon ?? definitionMode.icon, colorTier: mode.colorTier ?? definitionMode.colorTier, - }; + }); }); }, }; diff --git a/packages/server/src/server/agent/providers/codex-app-server-agent.ts b/packages/server/src/server/agent/providers/codex-app-server-agent.ts index 31bf97fb6..19927f53a 100644 --- a/packages/server/src/server/agent/providers/codex-app-server-agent.ts +++ b/packages/server/src/server/agent/providers/codex-app-server-agent.ts @@ -4379,10 +4379,11 @@ export class CodexAppServerAgentClient implements AgentClient { }); } - const thinkingOptions = Array.from(thinkingById.values()).map((option) => ({ - ...option, - isDefault: option.id === resolvedDefaultReasoningEffort, - })); + const thinkingOptions = Array.from(thinkingById.values()).map((option) => + Object.assign({}, option, { + isDefault: option.id === resolvedDefaultReasoningEffort, + }), + ); const defaultThinkingOptionId = resolvedDefaultReasoningEffort ?? thinkingOptions.find((option) => option.isDefault)?.id ?? diff --git a/packages/server/src/server/script-proxy.ts b/packages/server/src/server/script-proxy.ts index d15cf05f2..b16bf776c 100644 --- a/packages/server/src/server/script-proxy.ts +++ b/packages/server/src/server/script-proxy.ts @@ -106,7 +106,7 @@ export class ScriptRouteStore { } listRoutes(): ScriptRouteEntry[] { - return Array.from(this.routes.values()).map((entry) => ({ ...entry })); + return Array.from(this.routes.values()).map((entry) => Object.assign({}, entry)); } listRoutesForWorkspace(workspaceId: string): ScriptRouteEntry[] { diff --git a/packages/server/src/utils/worktree.ts b/packages/server/src/utils/worktree.ts index 6267a5876..1340ddcab 100644 --- a/packages/server/src/utils/worktree.ts +++ b/packages/server/src/utils/worktree.ts @@ -1004,12 +1004,11 @@ export async function listPaseoWorktrees({ const rootPrefix = normalizePathForOwnership(worktreesRoot) + sep; return parseWorktreeList(stdout) - .map((entry) => ({ ...entry, path: normalizePathForOwnership(entry.path) })) + .map((entry) => Object.assign({}, entry, { path: normalizePathForOwnership(entry.path) })) .filter((entry) => entry.path.startsWith(rootPrefix)) - .map((entry) => ({ - ...entry, - createdAt: resolveWorktreeCreatedAtIso(entry.path), - })); + .map((entry) => + Object.assign({}, entry, { createdAt: resolveWorktreeCreatedAtIso(entry.path) }), + ); } export async function resolveExistingWorktreeForSlug({ diff --git a/scripts/sync-release-notes-from-changelog.mjs b/scripts/sync-release-notes-from-changelog.mjs index 30cb00a2b..70cee1615 100644 --- a/scripts/sync-release-notes-from-changelog.mjs +++ b/scripts/sync-release-notes-from-changelog.mjs @@ -109,11 +109,10 @@ function parseChangelog(changelogText) { notesParts.push("", ...bodyLines); } - return { - ...heading, + return Object.assign({}, heading, { tag: `v${heading.version}`, notes: `${notesParts.join("\n").trim()}\n`, - }; + }); }); }