fix(kugetsu): prevent excess agent spawning with flock + sequential processing #147
Reference in New Issue
Block a user
Delete Branch "fix/issue-queue-daemon-excess-agents"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Fixes queue daemon spawning excess agents due to race condition when enqueueing multiple tasks.
Changes
count_active_dev_sessions(): Now excludes pm-agent.json from count, allowing MAX_CONCURRENT_AGENTS=3 to mean 3 dev agents (PM doesn't count)
process_queue(): Completely rewritten to:
kugetsu startdirectly instead ofopencode run(bypasses concurrency logic)cmd_start(): Added flock around critical section to prevent race conditions when multiple processes check/create sessions
Notifications: Added 5 new notification types:
task_queued: When task is enqueuedtask_dequeued: When daemon picks up tasktask_started: When session is createdtask_completed: When task completestask_error: When task errors/times outConfig: Removed QUEUE_DAEMON_BATCH_SIZE (no longer needed)
Issue
Fixes #146
bda762b774to54aa6419eblgtm