fix: multiple issues with queue daemon and agent forking
1. daemon: use $WORKTREES_DIR instead of $HOME/.kugetsu-worktrees - Worktrees are created in ~/.kugetsu/worktrees but daemon was checking ~/.kugetsu-worktrees - This caused cmd_start to be called when cmd_continue should have been 2. load_agent_env: add fallback to pm-agent.env - When dev.env and default.env don't exist, fallback to pm-agent.env - Ensures GITEA_TOKEN is available 3. Remove '&& disown' pattern that causes 'no such job' errors - nohup already makes process immune to SIGHUP - disown was causing errors because job context was lost
This commit is contained in:
@@ -194,8 +194,8 @@ cmd_delegate() {
|
||||
|
||||
mkdir -p "$LOGS_DIR"
|
||||
local log_file="$LOGS_DIR/delegate-$(date +%s).log"
|
||||
nohup sh -c "GITEA_TOKEN='***' opencode run '$message' --continue --session '$pm_session' >> '$log_file' 2>&1" > /dev/null 2>&1 &
|
||||
disown
|
||||
load_agent_env "pm-agent"
|
||||
nohup sh -c "GITEA_TOKEN='$GITEA_TOKEN' opencode run '$message' --continue --session '$pm_session'" >> "$log_file" 2>&1 &
|
||||
echo "Delegated to PM agent (logged to $(basename "$log_file"))"
|
||||
}
|
||||
|
||||
@@ -313,7 +313,8 @@ cmd_start() {
|
||||
|
||||
load_agent_env "dev"
|
||||
|
||||
(cd "$worktree_path" && nohup sh -c "GITEA_TOKEN='$GITEA_TOKEN' opencode run '$dev_message' --continue --session '$new_session_id'" >> "$LOGS_DIR/dev-$new_session_id.log" 2>&1 &) && disown
|
||||
cd "$worktree_path"
|
||||
nohup sh -c "GITEA_TOKEN='$GITEA_TOKEN' opencode run '$dev_message' --continue --session '$new_session_id'" >> "$LOGS_DIR/dev-$new_session_id.log" 2>&1 &
|
||||
|
||||
echo "Session started for '$issue_ref': $new_session_id"
|
||||
echo "Worktree: $worktree_path"
|
||||
@@ -367,9 +368,10 @@ cmd_continue() {
|
||||
fi
|
||||
|
||||
if [ -n "$worktree_path" ] && [ -d "$worktree_path" ]; then
|
||||
(cd "$worktree_path" && nohup sh -c "GITEA_TOKEN='$GITEA_TOKEN' opencode run '$message' --continue --session '$opencode_session_id'" >> "$LOGS_DIR/dev-$opencode_session_id.log" 2>&1 &) && disown
|
||||
cd "$worktree_path"
|
||||
nohup sh -c "GITEA_TOKEN='$GITEA_TOKEN' opencode run '$message' --continue --session '$opencode_session_id'" >> "$LOGS_DIR/dev-$opencode_session_id.log" 2>&1 &
|
||||
else
|
||||
(nohup sh -c "GITEA_TOKEN='$GITEA_TOKEN' opencode run '$message' --continue --session '$opencode_session_id'" >> "$LOGS_DIR/dev-$opencode_session_id.log" 2>&1 &) && disown
|
||||
nohup sh -c "GITEA_TOKEN='$GITEA_TOKEN' opencode run '$message' --continue --session '$opencode_session_id'" >> "$LOGS_DIR/dev-$opencode_session_id.log" 2>&1 &
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user