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:
@@ -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 <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() {
|
||||
if [ $# -eq 0 ]; then
|
||||
usage
|
||||
@@ -1162,6 +1206,13 @@ main() {
|
||||
list)
|
||||
cmd_list "$@"
|
||||
;;
|
||||
queue)
|
||||
cmd_queue
|
||||
;;
|
||||
enqueue)
|
||||
shift
|
||||
cmd_enqueue "$@"
|
||||
;;
|
||||
prune)
|
||||
cmd_prune "$@"
|
||||
;;
|
||||
|
||||
Reference in New Issue
Block a user