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
|
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 "$@"
|
||||||
;;
|
;;
|
||||||
|
|||||||
Reference in New Issue
Block a user