agentloop: missing automation compared to agent_loop.py #337

Closed
opened 2026-05-31 07:20:07 +00:00 by guettlibot · 2 comments
guettlibot commented 2026-05-31 07:20:07 +00:00 (Migrated from codeberg.org)

The migration from agent_loop.py to agentloop removed several automation features that were actively used. Agentloop handles issue → agent → PR, but everything after the PR is opened is now manual.

Missing features (by priority)

1. PR CI monitoring and auto-merge

Was: After an agent opened a PR, agent_loop.py polled CI on that PR branch every minute. Once CI passed it squash-merged the PR automatically and closed the issue.

Now: The coding agent opens a PR and moves the issue to loop/code-done. A human must wait for CI, review, merge, and close the issue manually.

This was the most-used part of the old loop. Every issue required it.

2. Main branch CI failure → fix agent

Was: Every tick, agent_loop.py checked the latest ci.yml run on main. If it failed, it spawned a fix agent that fetched CI logs, identified the failure, pushed a fix directly to main.

Now: Main branch CI failures are not detected or acted on automatically.

3. Renovate PR auto-merge

Was: agent_loop.py detected open Renovate (renovate/*) PRs with passing CI and squash-merged them.

Now: Renovate PRs must be merged manually. (Note: the automerge label + Forgejo's native automerge may cover this if configured correctly — worth checking before re-implementing.)

4. Catch-up: close issues for already-merged PRs

Was: If a PR from an issue branch (issue-N-fix) was merged manually (e.g., after State/Question was set), agent_loop.py detected the merged PR on the next tick and closed the issue.

Now: Must be done manually.

5. Merge conflict rebase agent

Was: If a PR could not be merged due to conflicts, agent_loop.py spawned a rebase agent that rebased the branch onto main and pushed.

Now: Rebase must be done manually.

6. Heartbeat / health monitoring

Was: agent_loop.py wrote ~/.sharedinbox-agent-heartbeat on every tick. The monitor.yml Forgejo Actions workflow checked it every 2 hours and failed if the loop was stale.

Now: No health monitoring. If the cron stops running (machine down, cron misconfigured) nobody is alerted. monitor.yml was deleted as part of the migration.


Suggested next steps

  • High priority: Implement PR CI monitoring + auto-merge inside agentloop (or as a separate companion script). This is the biggest workflow regression.
  • Medium priority: Add a simple heartbeat/monitor workflow so cron failures are caught.
  • Low priority / optional: Main CI fix agent, Renovate auto-merge (check if Forgejo native automerge covers it first), merge conflict rebase.

See also: https://github.com/guettli/agentloop/issues — upstream may be interested in the PR monitoring feature.

The migration from `agent_loop.py` to agentloop removed several automation features that were actively used. Agentloop handles issue → agent → PR, but everything *after* the PR is opened is now manual. ## Missing features (by priority) ### 1. PR CI monitoring and auto-merge **Was:** After an agent opened a PR, agent_loop.py polled CI on that PR branch every minute. Once CI passed it squash-merged the PR automatically and closed the issue. **Now:** The coding agent opens a PR and moves the issue to `loop/code-done`. A human must wait for CI, review, merge, and close the issue manually. This was the most-used part of the old loop. Every issue required it. ### 2. Main branch CI failure → fix agent **Was:** Every tick, agent_loop.py checked the latest `ci.yml` run on `main`. If it failed, it spawned a fix agent that fetched CI logs, identified the failure, pushed a fix directly to main. **Now:** Main branch CI failures are not detected or acted on automatically. ### 3. Renovate PR auto-merge **Was:** agent_loop.py detected open Renovate (`renovate/*`) PRs with passing CI and squash-merged them. **Now:** Renovate PRs must be merged manually. (Note: the `automerge` label + Forgejo's native automerge may cover this if configured correctly — worth checking before re-implementing.) ### 4. Catch-up: close issues for already-merged PRs **Was:** If a PR from an issue branch (`issue-N-fix`) was merged manually (e.g., after State/Question was set), agent_loop.py detected the merged PR on the next tick and closed the issue. **Now:** Must be done manually. ### 5. Merge conflict rebase agent **Was:** If a PR could not be merged due to conflicts, agent_loop.py spawned a rebase agent that rebased the branch onto main and pushed. **Now:** Rebase must be done manually. ### 6. Heartbeat / health monitoring **Was:** agent_loop.py wrote `~/.sharedinbox-agent-heartbeat` on every tick. The `monitor.yml` Forgejo Actions workflow checked it every 2 hours and failed if the loop was stale. **Now:** No health monitoring. If the cron stops running (machine down, cron misconfigured) nobody is alerted. `monitor.yml` was deleted as part of the migration. --- ## Suggested next steps - **High priority:** Implement PR CI monitoring + auto-merge inside agentloop (or as a separate companion script). This is the biggest workflow regression. - **Medium priority:** Add a simple heartbeat/monitor workflow so cron failures are caught. - **Low priority / optional:** Main CI fix agent, Renovate auto-merge (check if Forgejo native automerge covers it first), merge conflict rebase. See also: https://github.com/guettli/agentloop/issues — upstream may be interested in the PR monitoring feature.
guettli commented 2026-06-01 16:51:10 +00:00 (Migrated from codeberg.org)

https://github.com/guettli/agentloop/issues/51

Handles rebase to new main, fix CI and auto merge

https://github.com/guettli/agentloop/issues/51 Handles rebase to new main, fix CI and auto merge
guettli commented 2026-06-05 19:59:47 +00:00 (Migrated from codeberg.org)

New agentloop works fine.

New agentloop works fine.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: guettli/sharedinbox#337