RFC: Task Queue Architecture for Autonomous PM and Dev Agents #49
Reference in New Issue
Block a user
Delete Branch "%!s()"
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?
Problem
Currently, kugetsu is entirely reactive. Tasks only get worked when:
kugetsu delegateto PM agentkugetsu startIssue: If user doesn't ask anything, both PM and dev agents sit idle.
Proposed Solution: Autonomous Queue-Based Architecture
Core Concept
PM agent continuously polls its queue and assigns work to dev agents. Sources (Gitea, cron, notifications) add tasks to the queue. PM dequeues based on priority.
Priority Tiers
Queue Structure
Queue Operations
kugetsu enqueue <tier> <task>kugetsu dequeuekugetsu queue listPM Polling Loop
Race Condition Prevention
Problem: Cron sees Gitea issue → adds to queue → PM assigns to dev A → cron runs again → assigns to dev B (double work).
Solution: Cron NEVER assigns directly. PM is sole assigner.
Assignment Lock: When PM assigns:
assigned:session-idlabel on Gitea issue immediatelyassigned:*labeldoneThis ensures the lock is set before dev starts work.
Source-Agnostic Design
Queue accepts tasks from any source:
What Needs to Change
1. New Files/Commands
~/.kugetsu/queue.json~/.kugetsu/scripts/enqueue~/.kugetsu/scripts/dequeue~/.kugetsu/scripts/queue-list~/.kugetsu/scripts/pm-poll-loop2. kugetsu CLI Commands to Add
3. PM Agent Updates
kugetsu delegate4. Cron Jobs to Create
5. Gitea Labels to Use
assigned:session-idqueuedin-progressdone6. Notification System Update
dev_followups7.kugetsu delegate Behavior Change
Currently:
kugetsu delegatesends message directly to PM agent sessionNew:
kugetsu delegateenqueues touser_interruptstier, PM picks up on next pollOr: Keep direct delivery for immediacy but also enqueue for tracking.
Implementation Phases
Phase 1: Queue Infrastructure
Phase 2: PM Polling Loop
Phase 3: Source Integration
Phase 4: Refinement
Open Questions
opencode run?Phase 1 Complete: Queue Infrastructure
Created Files
~/.kugetsu/queue.json~/.kugetsu/scripts/enqueue~/.kugetsu/scripts/dequeue~/.kugetsu/scripts/queue-listQueue Structure
Test Results
Status: Phase 1 Complete
Queue infrastructure working. Ready for Phase 2: PM Polling Loop.
Phase 2 Complete: PM Polling Loop
Created Files
~/.kugetsu/scripts/pm-poll-loopImplementation
pm-poll-loop features:
kugetsu startfor each task~/.kugetsu/logs/pm-poll.logPM Skill Updates
Updated
~/.kugetsu/pm-agent.mdand repoSKILL.mdwith:Test Results
Status: Phase 2 Complete
PM poll loop implemented. Ready for Phase 3: Source Integration.
Phase 2 Complete: PM Polling Loop
Created
Poll loop features:
PM Skill Updated
and repo now include:
Queue Status
Status: Phase 2 Complete
PM poll loop created and PM skill updated. Ready for Phase 3: Source Integration.