Queue system with background daemon #134

Closed
opened 2026-04-05 04:35:36 +02:00 by shoko · 0 comments
Owner

Overview

Implement a file-based queue system with background daemon to enable automatic task processing when agent slots open.

Requirements

Queue Item Format

Location: ~/.kugetsu/queue/items/<id>.json

{
  "id": "q_abc123",
  "issue_ref": "github.com/shoko/kugetsu#14",
  "message": "fix the login bug",
  "state": "pending",
  "pending_since": "2026-04-05T10:00:00Z",
  "notified_at": null,
  "completed_at": null,
  "error": null
}

States

  • pending - waiting in queue, daemon can pick up
  • notified - PM acknowledged, has picked up the task
  • completed - Dev agent finished, PR created
  • error - timeout or failure

New Commands

kugetsu queue

kugetsu queue list              # Show queued tasks
kugetsu queue clear             # Clear completed items
kugetsu queue stats            # Show queue statistics

kugetsu queue-daemon

kugetsu queue-daemon start     # Start daemon in background
kugetsu queue-daemon stop      # Stop daemon
kugetsu queue-daemon restart   # Restart daemon
kugetsu queue-daemon status    # Check if running
kugetsu queue-daemon logs      # Show recent logs

Behavior

  1. kugetsu delegate <msg> always enqueues (does NOT invoke PM directly)
  2. Daemon runs at configurable interval (default: 5 min)
  3. Daemon picks 1-N items when slots open (batch size configurable)
  4. Daemon forks PM session for each picked item
  5. PM marks queue item as notified_at after picking up
  6. Dev agent calls kugetsu notify "done, PR: URL" on completion
  7. Daemon marks queue item as completed_at

Configuration

QUEUE_DAEMON_INTERVAL_MINUTES=5
QUEUE_DAEMON_BATCH_SIZE=2
QUEUE_CLEANUP_AGE_DAYS=7

Implementation Notes

  • Use PID file: ~/.kugetsu/queue/daemon.pid
  • Use lock file: ~/.kugetsu/queue/daemon.lock
  • Log file: ~/.kugetsu/queue/daemon.log
  • Daemon should handle SIGTERM gracefully
## Overview Implement a file-based queue system with background daemon to enable automatic task processing when agent slots open. ## Requirements ### Queue Item Format Location: `~/.kugetsu/queue/items/<id>.json` ```json { "id": "q_abc123", "issue_ref": "github.com/shoko/kugetsu#14", "message": "fix the login bug", "state": "pending", "pending_since": "2026-04-05T10:00:00Z", "notified_at": null, "completed_at": null, "error": null } ``` ### States - `pending` - waiting in queue, daemon can pick up - `notified` - PM acknowledged, has picked up the task - `completed` - Dev agent finished, PR created - `error` - timeout or failure ### New Commands #### `kugetsu queue` ``` kugetsu queue list # Show queued tasks kugetsu queue clear # Clear completed items kugetsu queue stats # Show queue statistics ``` #### `kugetsu queue-daemon` ``` kugetsu queue-daemon start # Start daemon in background kugetsu queue-daemon stop # Stop daemon kugetsu queue-daemon restart # Restart daemon kugetsu queue-daemon status # Check if running kugetsu queue-daemon logs # Show recent logs ``` ### Behavior 1. **`kugetsu delegate <msg>`** always enqueues (does NOT invoke PM directly) 2. Daemon runs at configurable interval (default: 5 min) 3. Daemon picks 1-N items when slots open (batch size configurable) 4. Daemon forks PM session for each picked item 5. PM marks queue item as `notified_at` after picking up 6. Dev agent calls `kugetsu notify "done, PR: URL"` on completion 7. Daemon marks queue item as `completed_at` ### Configuration ```bash QUEUE_DAEMON_INTERVAL_MINUTES=5 QUEUE_DAEMON_BATCH_SIZE=2 QUEUE_CLEANUP_AGE_DAYS=7 ``` ### Implementation Notes - Use PID file: `~/.kugetsu/queue/daemon.pid` - Use lock file: `~/.kugetsu/queue/daemon.lock` - Log file: `~/.kugetsu/queue/daemon.log` - Daemon should handle SIGTERM gracefully ## Related Issues - Meta issue: #133
han was assigned by shoko 2026-04-05 04:45:00 +02:00
shoko added this to the v0.1.0 milestone 2026-04-05 04:45:00 +02:00
shoko closed this issue 2026-04-05 06:49:13 +02:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: shoko/kugetsu#134