Files
kugetsu/skills/kugetsu/scripts/kugetsu-queue-daemon.sh
shokollm e128087d8e fix: add support for gitserver/owner/repo#number issue ref format
Add third pattern to parse_issue_ref_from_message() to support the mixed
format 'gitserver/owner/repo#number' (e.g., git.fbrns.co/shoko/kugetsu#116).

Previously only two formats were supported:
1. Full URL: #116
2. Short format: shoko/kugetsu#116

Now supports:
3. Mixed format: git.fbrns.co/shoko/kugetsu#116

Fixes #144
2026-04-05 10:21:36 +00:00

33 lines
1.4 KiB
Bash
Executable File

#!/bin/bash
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
source "$SCRIPT_DIR/kugetsu-config.sh"
source "$SCRIPT_DIR/kugetsu-index.sh"
source "$SCRIPT_DIR/kugetsu-worktree.sh"
source "$SCRIPT_DIR/kugetsu-log.sh"
while true; do
if [ -d "$QUEUE_ITEMS_DIR" ]; then
for item in "$QUEUE_ITEMS_DIR"/*.json; do
[ -f "$item" ] || continue
state=$(python3 -c "import json; print(json.load(open('$item')).get('state', ''))" 2>/dev/null)
if [ "$state" = "pending" ]; then
queue_id=$(basename "$item" .json)
issue_ref=$(python3 -c "import json; print(json.load(open('$item')).get('issue_ref', ''))" 2>/dev/null)
message=$(python3 -c "import json; print(json.load(open('$item')).get('message', ''))" 2>/dev/null)
pm_session=$(get_pm_agent_session_id)
if [ -n "$pm_session" ] && [ "$pm_session" != "null" ]; then
log_file="$LOGS_DIR/delegate-$(date +%s).log"
GITEA_TOKEN="${GITEA_TOKEN:-}" nohup sh -c "opencode run '$message' --continue --session '$pm_session' >> '$log_file' 2>&1" > /dev/null 2>&1 &
pid=$!
update_queue_item_state "$queue_id" "notified" "$pm_session" "$pid"
fi
fi
done
fi
sleep "${QUEUE_DAEMON_INTERVAL_MINUTES:-5}m"
done