Compare commits
1 Commits
fix/issue-
...
270219873f
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
270219873f |
@@ -310,31 +310,12 @@ get_pending_tasks() {
|
|||||||
return
|
return
|
||||||
fi
|
fi
|
||||||
|
|
||||||
python3 -c "
|
find "$QUEUE_ITEMS_DIR" -name "*.json" -type f 2>/dev/null | while read -r file; do
|
||||||
import json
|
local state=$(python3 -c "import json; print(json.load(open('$file')).get('state', ''))" 2>/dev/null || echo "")
|
||||||
import os
|
if [ "$state" = "pending" ]; then
|
||||||
import sys
|
cat "$file"
|
||||||
|
fi
|
||||||
queue_dir = os.environ.get('QUEUE_ITEMS_DIR', '')
|
done | head -"$limit"
|
||||||
limit = int(sys.argv[1]) if len(sys.argv) > 1 else 10
|
|
||||||
|
|
||||||
items = []
|
|
||||||
if os.path.isdir(queue_dir):
|
|
||||||
for filename in os.listdir(queue_dir):
|
|
||||||
if filename.endswith('.json'):
|
|
||||||
filepath = os.path.join(queue_dir, filename)
|
|
||||||
try:
|
|
||||||
with open(filepath) as f:
|
|
||||||
data = json.load(f)
|
|
||||||
if data.get('state') == 'pending':
|
|
||||||
items.append(data)
|
|
||||||
if len(items) >= limit:
|
|
||||||
break
|
|
||||||
except:
|
|
||||||
pass
|
|
||||||
|
|
||||||
print(json.dumps(items))
|
|
||||||
" "$limit"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
get_queue_stats() {
|
get_queue_stats() {
|
||||||
|
|||||||
@@ -8,7 +8,10 @@ source "$SCRIPT_DIR/kugetsu-index.sh"
|
|||||||
source "$SCRIPT_DIR/kugetsu-worktree.sh"
|
source "$SCRIPT_DIR/kugetsu-worktree.sh"
|
||||||
source "$SCRIPT_DIR/kugetsu-log.sh"
|
source "$SCRIPT_DIR/kugetsu-log.sh"
|
||||||
|
|
||||||
load_agent_env "pm-agent"
|
# Load GITEA_TOKEN from default.env
|
||||||
|
if [ -f "$HOME/.kugetsu/env/default.env" ]; then
|
||||||
|
source "$HOME/.kugetsu/env/default.env"
|
||||||
|
fi
|
||||||
|
|
||||||
# Check if a notified task has completed (forked session ended or has new commits)
|
# Check if a notified task has completed (forked session ended or has new commits)
|
||||||
check_task_completion() {
|
check_task_completion() {
|
||||||
|
|||||||
@@ -153,10 +153,12 @@ cmd_delegate() {
|
|||||||
local issue_ref=$(extract_issue_ref_from_message "$message")
|
local issue_ref=$(extract_issue_ref_from_message "$message")
|
||||||
|
|
||||||
if [ -n "$issue_ref" ] && [[ "$issue_ref" =~ \#[0-9]+$ ]]; then
|
if [ -n "$issue_ref" ] && [[ "$issue_ref" =~ \#[0-9]+$ ]]; then
|
||||||
cmd_start "$issue_ref" "$message"
|
# Enqueue for daemon to process via cmd_start/cmd_continue
|
||||||
|
enqueue_task "$issue_ref" "$message"
|
||||||
return
|
return
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# No issue ref detected — delegate directly to PM agent (legacy path)
|
||||||
local pm_session=$(get_pm_agent_session_id)
|
local pm_session=$(get_pm_agent_session_id)
|
||||||
if [ -z "$pm_session" ] || [ "$pm_session" = "null" ] || [ "$pm_session" = "None" ]; then
|
if [ -z "$pm_session" ] || [ "$pm_session" = "null" ] || [ "$pm_session" = "None" ]; then
|
||||||
echo "Error: PM agent session not found. Run 'kugetsu init' first." >&2
|
echo "Error: PM agent session not found. Run 'kugetsu init' first." >&2
|
||||||
@@ -165,7 +167,7 @@ cmd_delegate() {
|
|||||||
|
|
||||||
mkdir -p "$LOGS_DIR"
|
mkdir -p "$LOGS_DIR"
|
||||||
local log_file="$LOGS_DIR/delegate-$(date +%s).log"
|
local log_file="$LOGS_DIR/delegate-$(date +%s).log"
|
||||||
nohup sh -c "GITEA_TOKEN='${GITEA_TOKEN:-}' opencode run '$message' --continue --session '$pm_session' >> '$log_file' 2>&1" > /dev/null 2>&1 &
|
nohup sh -c "GITEA_TOKEN='***' opencode run '$message' --continue --session '$pm_session' >> '$log_file' 2>&1" > /dev/null 2>&1 &
|
||||||
disown
|
disown
|
||||||
echo "Delegated to PM agent (logged to $(basename "$log_file"))"
|
echo "Delegated to PM agent (logged to $(basename "$log_file"))"
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user