feat: update resumeFeature API to support optional useWorktrees parameter

- Modified the resumeFeature method across multiple files to accept an optional useWorktrees parameter, defaulting to false for improved control over worktree usage.
- Updated related hooks and service methods to ensure consistent handling of the new parameter.
- Enhanced server route logic to reflect the change, ensuring worktrees are only utilized when explicitly enabled.
This commit is contained in:
Cody Seibert
2025-12-16 19:02:30 -05:00
parent 360b7ebe08
commit f9ec7222f2
7 changed files with 16 additions and 11 deletions

View File

@@ -342,7 +342,8 @@ export function useBoardActions({
const result = await api.autoMode.resumeFeature(
currentProject.path,
feature.id
feature.id,
useWorktrees
);
if (result.success) {
@@ -356,7 +357,7 @@ export function useBoardActions({
await loadFeatures();
}
},
[currentProject, loadFeatures]
[currentProject, loadFeatures, useWorktrees]
);
const handleManualVerify = useCallback(

View File

@@ -233,7 +233,8 @@ export interface AutoModeAPI {
) => Promise<{ success: boolean; passes?: boolean; error?: string }>;
resumeFeature: (
projectPath: string,
featureId: string
featureId: string,
useWorktrees?: boolean
) => Promise<{ success: boolean; passes?: boolean; error?: string }>;
contextExists: (
projectPath: string,
@@ -1464,7 +1465,7 @@ function createMockAutoModeAPI(): AutoModeAPI {
return { success: true, passes: true };
},
resumeFeature: async (projectPath: string, featureId: string) => {
resumeFeature: async (projectPath: string, featureId: string, useWorktrees?: boolean) => {
if (mockRunningFeatures.has(featureId)) {
return {
success: false,

View File

@@ -536,8 +536,8 @@ export class HttpApiClient implements ElectronAPI {
}),
verifyFeature: (projectPath: string, featureId: string) =>
this.post("/api/auto-mode/verify-feature", { projectPath, featureId }),
resumeFeature: (projectPath: string, featureId: string) =>
this.post("/api/auto-mode/resume-feature", { projectPath, featureId }),
resumeFeature: (projectPath: string, featureId: string, useWorktrees?: boolean) =>
this.post("/api/auto-mode/resume-feature", { projectPath, featureId, useWorktrees }),
contextExists: (projectPath: string, featureId: string) =>
this.post("/api/auto-mode/context-exists", { projectPath, featureId }),
analyzeProject: (projectPath: string) =>

View File

@@ -359,7 +359,8 @@ export interface AutoModeAPI {
resumeFeature: (
projectPath: string,
featureId: string
featureId: string,
useWorktrees?: boolean
) => Promise<{
success: boolean;
passes?: boolean;

View File

@@ -29,8 +29,9 @@ export function createResumeFeatureHandler(autoModeService: AutoModeService) {
}
// Start resume in background
// Default to false - worktrees should only be used when explicitly enabled
autoModeService
.resumeFeature(projectPath, featureId, useWorktrees ?? true)
.resumeFeature(projectPath, featureId, useWorktrees ?? false)
.catch((error) => {
logger.error(`[AutoMode] Resume feature ${featureId} error:`, error);
});

View File

@@ -31,8 +31,9 @@ export function createRunFeatureHandler(autoModeService: AutoModeService) {
// Start execution in background
// If worktreePath is provided, use it directly; otherwise let the service decide
// Default to false - worktrees should only be used when explicitly enabled
autoModeService
.executeFeature(projectPath, featureId, useWorktrees ?? true, false, worktreePath)
.executeFeature(projectPath, featureId, useWorktrees ?? false, false, worktreePath)
.catch((error) => {
logger.error(`[AutoMode] Feature ${featureId} error:`, error);
});

View File

@@ -193,7 +193,7 @@ export class AutoModeService {
async executeFeature(
projectPath: string,
featureId: string,
useWorktrees = true,
useWorktrees = false,
isAutoMode = false,
providedWorktreePath?: string
): Promise<void> {
@@ -352,7 +352,7 @@ export class AutoModeService {
async resumeFeature(
projectPath: string,
featureId: string,
useWorktrees = true
useWorktrees = false
): Promise<void> {
// Check if context exists in .automaker directory
const featureDir = getFeatureDir(projectPath, featureId);