3b87e24d7b
* feat: implement queue system v2 with auto-promotion - Add Queue column to Kanban board between Planning and In Progress - Implement configurable parallel task limit (default: 3) - Add auto-promotion from Queue to In Progress when capacity becomes available - Add "Add All to Queue" button to move all Planning tasks to Queue - Add Queue Settings modal for configuring max parallel tasks - Replace 'pr_created' status with 'queue' in task types - Add queue-related i18n translations (en/fr) - Add queue column styling to globals.css When parallel task limit is reached, tasks are automatically moved to Queue instead of In Progress. When a task leaves In Progress, the oldest queued task is automatically promoted to fill the available slot (FIFO ordering). 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * fix: remove incorrect store selector for updateProjectSettings updateProjectSettings is an exported function, not a store method. Remove the incorrect selector that was causing runtime errors. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * fix(queue): fix auto-promotion and max parallel tasks settings Fixes three issues with the queue system: 1. Auto-promotion after bulk add: processQueue() is now called after handleQueueAll() to automatically promote queued tasks when bulk-adding tasks from backlog to queue. 2. Auto-promotion on task completion: Added task status change listener mechanism that triggers processQueue() whenever a task leaves in_progress status (e.g., goes to human_review), ensuring slots are filled automatically. 3. Max parallel tasks settings: Fixed settings merge to handle undefined project.settings and added error handling with proper toast notifications. Co-Authored-By: Claude <noreply@anthropic.com> Signed-off-by: Joshua Riley <joshua@joshuariley.co.uk> * fix(queue): add queue status mapper and i18n translation keys Fixes blocking issues from pre-PR validation: 1. Add 'queue' case to mapStatusToPlanStatus() in plan-file-utils.ts - Maps 'queue' TaskStatus to 'queued' planStatus for backend compatibility 2. Add i18n translation keys for queue settings modal - English translations: queue.settings.* in en/tasks.json - French translations: queue.settings.* in fr/tasks.json - All user-facing strings now use translation keys 3. Update QueueSettingsModal.tsx to use translation keys - Title, description, labels, validation messages, buttons - Imports 'common' namespace for cancel/save buttons 4. Update KanbanBoard.tsx toast messages to use translation keys - Settings saved/success/error messages Co-Authored-By: Claude <noreply@anthropic.com> Signed-off-by: Joshua Riley <joshua@joshuariley.co.uk> * fix(queue): prevent infinite loop when persistTaskStatus fails Fix critical bug where processQueue() would infinite loop if persistTaskStatus() returns { success: false } without throwing. Changes: - processQueue: Check return value of persistTaskStatus and skip failed tasks with error logging - handleQueueAll: Check return value and only count successful moves The bug occurred because: 1. persistTaskStatus can fail without throwing 2. On failure, task status remains unchanged (still in queue) 3. Loop would re-select same task and try again infinitely Fix prevents UI freeze and excessive IPC calls. Co-Authored-By: Claude <noreply@anthropic.com> Signed-off-by: Joshua Riley <joshua@joshuariley.co.uk> * fix: resolve merge conflicts - remove pr_created status references The pr_created task status has been removed in favor of 'done' status. This commit fixes all TypeScript errors related to the removed status. Changes: - task-store.ts: Updated TaskOrderState to use 'queue' instead of 'pr_created' - KanbanBoard.tsx: Removed pr_created from getVisualColumn and cleanedOrder - TaskCard.tsx: Updated status checks to use 'done' instead of 'pr_created' - Worktrees.tsx: Updated PR creation to set status to 'done' - TaskDetailModal.tsx: Updated status checks for PR completion display - project-store.ts: Removed pr_created from statusMap - plan-file-utils.ts: Removed pr_created from status conversion - worktree-handlers.ts: Updated PR status persistence to 'done' - task-order.test.ts: Updated test helper to use 'queue' instead of 'pr_created' - task-store.test.ts: Removed pr_created test case - test_auth.py: Updated error message regex to match new authentication text Co-Authored-By: Claude <noreply@anthropic.com> * fix(tests): update auth test regex to match 'No OAuth token found' * fix(queue): address PR review comments for queue system v2 - Fix critical worktree cleanup bypass in drag-drop by using handleStatusChange - Fix empty projectId handling in QueueSettingsModal with conditional render - Fix input silently ignored when cleared in QueueSettingsModal - Add missing queue status label to i18n tasks.json - Guard undefined project.settings before reading maxParallelTasks - Improve processQueue failure handling to prevent infinite loops Co-Authored-By: Claude <noreply@anthropic.com> * fix(queue): prevent race condition in processQueue Add mutex lock using useRef to prevent concurrent processQueue executions that could violate maxParallelTasks limit. This addresses a race condition where multiple processQueue calls triggered by the status change listener could read stale in-progress counts and promote more tasks than allowed. Changes: - Add useRef import for isProcessingQueueRef flag - Add early return if queue processing is already active - Wrap processQueue body in try/finally to ensure lock release Co-Authored-By: Claude <noreply@anthropic.com> * fix(kanban): prevent race condition in queue parallel task limit Fixed race condition where manual drag from queue to in_progress could exceed maxParallelTasks limit during automatic queue promotion. The bypass for queue->in_progress transitions now only applies during active queue processing (when isProcessingQueueRef is true), preventing both auto-promotion and manual drag from succeeding simultaneously. Fixes potential bug identified in KanbanBoard.tsx#L1043-L1058 Co-Authored-By: Claude <noreply@anthropic.com> --------- Signed-off-by: Joshua Riley <joshua@joshuariley.co.uk> Co-authored-by: Claude <noreply@anthropic.com> Co-authored-by: Andy <119136210+AndyMik90@users.noreply.github.com>
54 lines
1.5 KiB
JSON
54 lines
1.5 KiB
JSON
{
|
|
"name": "auto-claude",
|
|
"version": "2.7.5",
|
|
"description": "Autonomous multi-agent coding framework powered by Claude AI",
|
|
"license": "AGPL-3.0",
|
|
"author": "Auto Claude Team",
|
|
"workspaces": [
|
|
"apps/*",
|
|
"libs/*"
|
|
],
|
|
"scripts": {
|
|
"install:backend": "node scripts/install-backend.js",
|
|
"install:frontend": "cd apps/frontend && npm install",
|
|
"install:all": "npm run install:backend && npm run install:frontend",
|
|
"start": "cd apps/frontend && npm run build && npm run start",
|
|
"dev": "cd apps/frontend && npm run dev",
|
|
"dev:debug": "cd apps/frontend && npm run dev:debug",
|
|
"dev:mcp": "cd apps/frontend && npm run dev:mcp",
|
|
"build": "cd apps/frontend && npm run build",
|
|
"lint": "cd apps/frontend && npm run lint",
|
|
"test": "cd apps/frontend && npm test",
|
|
"test:backend": "node scripts/test-backend.js",
|
|
"package": "cd apps/frontend && npm run package",
|
|
"package:mac": "cd apps/frontend && npm run package:mac",
|
|
"package:win": "cd apps/frontend && npm run package:win",
|
|
"package:linux": "cd apps/frontend && npm run package:linux"
|
|
},
|
|
"engines": {
|
|
"node": ">=24.0.0",
|
|
"npm": ">=10.0.0"
|
|
},
|
|
"repository": {
|
|
"type": "git",
|
|
"url": "https://github.com/AndyMik90/Auto-Claude.git"
|
|
},
|
|
"keywords": [
|
|
"ai",
|
|
"claude",
|
|
"autonomous",
|
|
"coding",
|
|
"agents",
|
|
"electron"
|
|
],
|
|
"devDependencies": {
|
|
"jsdom": "^27.4.0"
|
|
},
|
|
"dependencies": {
|
|
"lucide-react": "^0.562.0"
|
|
},
|
|
"overrides": {
|
|
"@electron/rebuild": "4.0.2"
|
|
}
|
|
}
|