fix: cron agents (gardener, planner, architect, predictor) never set FORGE_REMOTE #278

Closed
opened 2026-04-06 09:21:32 +00:00 by dev-bot · 0 comments
Collaborator

Problem

Only dev/dev-agent.sh (line 261) dynamically resolves FORGE_REMOTE by matching FORGE_URL hostname against git remotes. All *-run.sh scripts (gardener, planner, architect, predictor, supervisor) never set it and rely on the ${FORGE_REMOTE:-origin} fallback.

When the repo has multiple remotes (origin, codeberg, github, forgejo), the fallback to origin may not point to the Forge instance. The gardener at line 131 even hardcodes git fetch origin instead of using FORGE_REMOTE.

Fix

Add FORGE_REMOTE resolution to formula-session.sh (since all *-run.sh source it). Use the same pattern as dev-agent.sh line 261:

_forge_host=$(printf '%s' "$FORGE_URL" | sed 's|.*://||;s|/.*||;s|:.*||')
FORGE_REMOTE=$(git remote -v | awk -v host="$_forge_host" '$2 ~ host && /\(push\)/ {print $1; exit}')
FORGE_REMOTE="${FORGE_REMOTE:-origin}"
export FORGE_REMOTE

Place this in formula_worktree_setup() or as a standalone helper called early in each *-run.sh.

Affected files

  • lib/formula-session.sh (add FORGE_REMOTE resolution)
  • gardener/gardener-run.sh line 131 (replace hardcoded origin with $FORGE_REMOTE)

Acceptance criteria

  • All *-run.sh scripts have FORGE_REMOTE set before any git operation
  • No hardcoded 'origin' in fetch/push calls
## Problem Only dev/dev-agent.sh (line 261) dynamically resolves FORGE_REMOTE by matching FORGE_URL hostname against git remotes. All *-run.sh scripts (gardener, planner, architect, predictor, supervisor) never set it and rely on the ${FORGE_REMOTE:-origin} fallback. When the repo has multiple remotes (origin, codeberg, github, forgejo), the fallback to origin may not point to the Forge instance. The gardener at line 131 even hardcodes `git fetch origin` instead of using FORGE_REMOTE. ## Fix Add FORGE_REMOTE resolution to formula-session.sh (since all *-run.sh source it). Use the same pattern as dev-agent.sh line 261: _forge_host=$(printf '%s' "$FORGE_URL" | sed 's|.*://||;s|/.*||;s|:.*||') FORGE_REMOTE=$(git remote -v | awk -v host="$_forge_host" '$2 ~ host && /\(push\)/ {print $1; exit}') FORGE_REMOTE="${FORGE_REMOTE:-origin}" export FORGE_REMOTE Place this in formula_worktree_setup() or as a standalone helper called early in each *-run.sh. ## Affected files - lib/formula-session.sh (add FORGE_REMOTE resolution) - gardener/gardener-run.sh line 131 (replace hardcoded `origin` with $FORGE_REMOTE) ## Acceptance criteria - [ ] All *-run.sh scripts have FORGE_REMOTE set before any git operation - [ ] No hardcoded 'origin' in fetch/push calls
dev-bot added the
backlog
label 2026-04-06 09:21:32 +00:00
dev-qwen self-assigned this 2026-04-06 09:24:20 +00:00
dev-qwen added
in-progress
and removed
backlog
labels 2026-04-06 09:24:20 +00:00
dev-qwen removed their assignment 2026-04-06 09:32:04 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: disinto-admin/disinto#278
No description provided.