fix(worktrees): remove worktrees in the background (#3319)

* refactor(worktrees): fetch source once during creation

* fix(worktrees): remove worktrees in background

* fix(worktrees): show background removal progress

* fix(worktrees): name the worktree in removal toasts
This commit is contained in:
𝖎𝖚𝖑𝖎𝖎𝖆
2026-09-03 15:17:28 +03:00
committed by GitHub
parent 5995802fe3
commit 0d8709a72e
43 changed files with 326 additions and 447 deletions
-12
View File
@@ -56,7 +56,6 @@ interface OpenChamberDefaults {
defaultVariant?: string;
defaultAgent?: string;
autoCreateWorktree?: boolean;
worktreeFetchSource?: boolean;
gitmojiEnabled?: boolean;
defaultFileViewerPreview?: boolean;
zenModel?: string;
@@ -129,7 +128,6 @@ const requestOpenChamberDefaults = async (): Promise<OpenChamberDefaults> => {
defaultVariant: defaultVariant.length > 0 ? defaultVariant : undefined,
defaultAgent: defaultAgent.length > 0 ? defaultAgent : undefined,
autoCreateWorktree: typeof data?.autoCreateWorktree === 'boolean' ? data.autoCreateWorktree : undefined,
worktreeFetchSource: typeof data?.worktreeFetchSource === 'boolean' ? data.worktreeFetchSource : undefined,
gitmojiEnabled,
defaultFileViewerPreview,
zenModel: zenModel.length > 0 ? zenModel : undefined,
@@ -176,7 +174,6 @@ const requestOpenChamberDefaults = async (): Promise<OpenChamberDefaults> => {
defaultVariant: defaultVariant.length > 0 ? defaultVariant : undefined,
defaultAgent: defaultAgent.length > 0 ? defaultAgent : undefined,
autoCreateWorktree: typeof data?.autoCreateWorktree === 'boolean' ? data.autoCreateWorktree : undefined,
worktreeFetchSource: typeof data?.worktreeFetchSource === 'boolean' ? data.worktreeFetchSource : undefined,
gitmojiEnabled,
defaultFileViewerPreview,
zenModel: zenModel.length > 0 ? zenModel : undefined,
@@ -1056,7 +1053,6 @@ interface ConfigStore {
// when neither our settingsDefaultModel nor the resolved agent pins a model.
opencodeDefaultModel: string | undefined;
settingsAutoCreateWorktree: boolean;
settingsWorktreeFetchSource: boolean;
settingsGitmojiEnabled: boolean;
settingsDefaultFileViewerPreview: boolean;
settingsZenModel: string | undefined;
@@ -1144,7 +1140,6 @@ interface ConfigStore {
setSettingsDefaultVariant: (variant: string | undefined) => void;
setSettingsDefaultAgent: (agent: string | undefined) => void;
setSettingsAutoCreateWorktree: (enabled: boolean) => void;
setSettingsWorktreeFetchSource: (enabled: boolean) => void;
setSettingsGitmojiEnabled: (enabled: boolean) => void;
setSettingsDefaultFileViewerPreview: (enabled: boolean) => void;
setSettingsZenModel: (model: string | undefined) => void;
@@ -1226,7 +1221,6 @@ export const useConfigStore = create<ConfigStore>()(
opencodeDefaultAgent: undefined,
opencodeDefaultModel: undefined,
settingsAutoCreateWorktree: false,
settingsWorktreeFetchSource: true,
settingsGitmojiEnabled: false,
settingsDefaultFileViewerPreview: false,
settingsZenModel: undefined,
@@ -2171,7 +2165,6 @@ export const useConfigStore = create<ConfigStore>()(
settingsDefaultVariant: openChamberDefaults.defaultVariant,
settingsDefaultAgent: openChamberDefaults.defaultAgent,
settingsAutoCreateWorktree: openChamberDefaults.autoCreateWorktree ?? false,
settingsWorktreeFetchSource: openChamberDefaults.worktreeFetchSource ?? true,
settingsGitmojiEnabled: openChamberDefaults.gitmojiEnabled ?? false,
settingsDefaultFileViewerPreview: openChamberDefaults.defaultFileViewerPreview ?? false,
settingsZenModel: resolvedZenModel,
@@ -2921,10 +2914,6 @@ export const useConfigStore = create<ConfigStore>()(
set({ settingsAutoCreateWorktree: enabled });
},
setSettingsWorktreeFetchSource: (enabled: boolean) => {
set({ settingsWorktreeFetchSource: enabled });
},
setSettingsGitmojiEnabled: (enabled: boolean) => {
set({ settingsGitmojiEnabled: enabled });
},
@@ -3467,7 +3456,6 @@ export const useConfigStore = create<ConfigStore>()(
settingsDefaultVariant: state.settingsDefaultVariant,
settingsDefaultAgent: state.settingsDefaultAgent,
settingsAutoCreateWorktree: state.settingsAutoCreateWorktree,
settingsWorktreeFetchSource: state.settingsWorktreeFetchSource,
settingsGitmojiEnabled: state.settingsGitmojiEnabled,
settingsDefaultFileViewerPreview: state.settingsDefaultFileViewerPreview,
settingsZenModel: state.settingsZenModel,