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.
This commit is contained in:
shokollm
2026-04-01 07:29:50 +00:00
parent 33b023b01e
commit dd7c5eeaeb

View File

@@ -1121,6 +1121,50 @@ cmd_destroy() {
fi 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 <issue-ref>" >&2
echo "Usage: kugetsu enqueue <issue-ref>" >&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 <message>' to create a session first" >&2
exit 1
fi
echo "Issue '$issue_ref' is queued for processing."
echo "Use 'kugetsu continue $issue_ref <message>' to pick up the task."
}
main() { main() {
if [ $# -eq 0 ]; then if [ $# -eq 0 ]; then
usage usage
@@ -1162,6 +1206,13 @@ main() {
list) list)
cmd_list "$@" cmd_list "$@"
;; ;;
queue)
cmd_queue
;;
enqueue)
shift
cmd_enqueue "$@"
;;
prune) prune)
cmd_prune "$@" cmd_prune "$@"
;; ;;