Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions apps/server/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -259,6 +259,10 @@ const settingsService = new SettingsService(DATA_DIR);
const agentService = new AgentService(DATA_DIR, events, settingsService);
const featureLoader = new FeatureLoader();
const autoModeService = new AutoModeService(events, settingsService);
// Initialize auto mode service (performs startup cleanup of orphaned processes on Windows)
autoModeService.initialize().catch((err) => {
logger.error('[AutoModeService] Initialization error:', err);
});
const claudeUsageService = new ClaudeUsageService();
const codexAppServerService = new CodexAppServerService();
const codexModelCacheService = new CodexModelCacheService(DATA_DIR, codexAppServerService);
Expand Down
9 changes: 7 additions & 2 deletions apps/server/src/routes/auto-mode/routes/stop-feature.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,14 +9,19 @@ import { getErrorMessage, logError } from '../common.js';
export function createStopFeatureHandler(autoModeService: AutoModeService) {
return async (req: Request, res: Response): Promise<void> => {
try {
const { featureId } = req.body as { featureId: string };
const { featureId, waitForCleanup } = req.body as {
featureId: string;
waitForCleanup?: boolean;
};

if (!featureId) {
res.status(400).json({ success: false, error: 'featureId is required' });
return;
}

const stopped = await autoModeService.stopFeature(featureId);
// Default to waiting for cleanup unless explicitly set to false
const shouldWait = waitForCleanup !== false;
const stopped = await autoModeService.stopFeature(featureId, shouldWait);
res.json({ success: true, stopped });
} catch (error) {
logError(error, 'Stop feature failed');
Expand Down
Loading