[GH-ISSUE #139] Completion promise detected immediately after direction.set (loop terminates after 1 iteration) #53

Closed
opened 2026-02-27 10:21:58 +03:00 by kerem · 1 comment
Owner

Originally created by @douglaz on GitHub (Jan 31, 2026).
Original GitHub issue: https://github.com/mikeyobrien/ralph-orchestrator/issues/139

Summary

Ralph loop terminates immediately after emitting direction.set, even when completion promise is restricted to LOOP_COMPLETE or disabled. This prevents the driver/observer hats from running.

Environment

  • Repo: mikeyobrien/ralph-orchestrator
  • Date: 2026-01-31
  • OS: Linux
  • Ralph invoked via: /home/master/bin/ralph (master, v0.88.0 reported in output)

Config

Using a simple rotating-hats config (navigator → driver → observer). Navigator emits direction.set.

Navigator instructions updated to explicitly choose exactly one of direction.set or LOOP_COMPLETE, and output nothing after direction.set. Still terminates.

Commands tried

ralph run --config ralph.yml --completion-promise "LOOP_COMPLETE" --prompt "Implement the project described in specs/00-spec.md."
ralph run --config ralph.yml --completion-promise "" --prompt "Implement the project described in specs/00-spec.md."

Expected

After navigator emits direction.set, driver hat should run.

Actual

Loop terminates right after direction.set with:

Loop terminated: Completion promise detected

Even when completion promise is empty or set to LOOP_COMPLETE.

Evidence (log tail)

Right after emitting direction.set:

Event emitted: direction.set

+----------------------------------------------------------+
| ? Loop terminated: Completion promise detected           |
+----------------------------------------------------------+
|   Iterations:  1                                         |
|   Elapsed:     XXs                                       |
+----------------------------------------------------------+

Notes

  • Termination happens even if navigator prints nothing after emitting the event.
  • Appears CLI treats end-of-turn as completion promise regardless of --completion-promise.
Originally created by @douglaz on GitHub (Jan 31, 2026). Original GitHub issue: https://github.com/mikeyobrien/ralph-orchestrator/issues/139 ### Summary Ralph loop terminates immediately after emitting `direction.set`, even when completion promise is restricted to `LOOP_COMPLETE` or disabled. This prevents the driver/observer hats from running. ### Environment - Repo: mikeyobrien/ralph-orchestrator - Date: 2026-01-31 - OS: Linux - Ralph invoked via: /home/master/bin/ralph (master, v0.88.0 reported in output) ### Config Using a simple rotating-hats config (navigator → driver → observer). Navigator emits `direction.set`. Navigator instructions updated to explicitly choose exactly one of `direction.set` or `LOOP_COMPLETE`, and output nothing after `direction.set`. Still terminates. ### Commands tried ``` ralph run --config ralph.yml --completion-promise "LOOP_COMPLETE" --prompt "Implement the project described in specs/00-spec.md." ``` ``` ralph run --config ralph.yml --completion-promise "" --prompt "Implement the project described in specs/00-spec.md." ``` ### Expected After navigator emits `direction.set`, driver hat should run. ### Actual Loop terminates right after `direction.set` with: ``` Loop terminated: Completion promise detected ``` Even when completion promise is empty or set to `LOOP_COMPLETE`. ### Evidence (log tail) Right after emitting direction.set: ``` Event emitted: direction.set +----------------------------------------------------------+ | ? Loop terminated: Completion promise detected | +----------------------------------------------------------+ | Iterations: 1 | | Elapsed: XXs | +----------------------------------------------------------+ ``` ### Notes - Termination happens even if navigator prints nothing after emitting the event. - Appears CLI treats end-of-turn as completion promise regardless of `--completion-promise`.
kerem closed this issue 2026-02-27 10:21:58 +03:00
Author
Owner

@mikeyobrien commented on GitHub (Jan 31, 2026):

Fixed in PR #141 (completion via event only).

<!-- gh-comment-id:3828748811 --> @mikeyobrien commented on GitHub (Jan 31, 2026): Fixed in PR #141 (completion via event only).
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
starred/ralph-orchestrator#53
No description provided.