From dd7c5eeaeb81b45ece3036c70221dafe7e301b53 Mon Sep 17 00:00:00 2001 From: shokollm <270575765+shokollm@users.noreply.github.com> Date: Wed, 1 Apr 2026 07:29:50 +0000 Subject: [PATCH] feat(kugetsu): add queue and enqueue commands Add basic cmd_queue and cmd_enqueue commands for RFC #56 workflow. cmd_queue shows pending issues from index. cmd_enqueue validates issue exists and confirms queue entry. --- skills/kugetsu/scripts/kugetsu | 59 +++++++++++++++++++++++++++++++--- 1 file changed, 55 insertions(+), 4 deletions(-) diff --git a/skills/kugetsu/scripts/kugetsu b/skills/kugetsu/scripts/kugetsu index 32cb19e..960c101 100755 --- a/skills/kugetsu/scripts/kugetsu +++ b/skills/kugetsu/scripts/kugetsu @@ -1121,6 +1121,50 @@ cmd_destroy() { fi } +cmd_queue() { + local index=$(read_index) + local issue_refs=$(echo "$index" | python3 -c "import sys, json; d=json.load(sys.stdin); print('\n'.join(d['issues'].keys()))" 2>/dev/null || true) + + if [ -z "$issue_refs" ]; then + echo "Queue is empty. No pending issues." + return + fi + + echo "Pending issues (ready for delegation):" + echo "" + while IFS= read -r issue_ref; do + local session_file=$(get_session_for_issue "$issue_ref") + local session_path="$SESSIONS_DIR/$session_file" + local worktree="" + if [ -f "$session_path" ]; then + worktree=$(python3 -c "import json; print(json.load(open('$session_path')).get('worktree_path', 'N/A'))" 2>/dev/null || echo "N/A") + fi + printf " %-50s %-40s\n" "$issue_ref" "$worktree" + done <<< "$issue_refs" +} + +cmd_enqueue() { + local issue_ref="${1:-}" + + if [ -z "$issue_ref" ]; then + echo "Error: enqueue requires " >&2 + echo "Usage: kugetsu enqueue " >&2 + exit 1 + fi + + validate_issue_ref "$issue_ref" + + local existing_session=$(get_session_for_issue "$issue_ref") + if [ -z "$existing_session" ] || [ "$existing_session" = "null" ]; then + echo "Error: No session found for '$issue_ref'" >&2 + echo "Use 'kugetsu start $issue_ref ' to create a session first" >&2 + exit 1 + fi + + echo "Issue '$issue_ref' is queued for processing." + echo "Use 'kugetsu continue $issue_ref ' to pick up the task." +} + main() { if [ $# -eq 0 ]; then usage @@ -1159,10 +1203,17 @@ main() { notify) cmd_notify "$@" ;; - list) - cmd_list "$@" - ;; - prune) + list) + cmd_list "$@" + ;; + queue) + cmd_queue + ;; + enqueue) + shift + cmd_enqueue "$@" + ;; + prune) cmd_prune "$@" ;; destroy)