[GH-ISSUE #96] Interactive session does not start when using opencode backend #38

Closed
opened 2026-02-27 10:21:53 +03:00 by kerem · 5 comments
Owner

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

I'd like to use opencode as a backend but with the ralph plan -b opencode "<MY PROMPT>" command the interactive session does not start and I don't see opencode being launched. Here's the output I get:

ralph plan -b opencode "Build a React todo list app"
🎯 Starting Prompt-Driven Development session...
|  Bash     List files to check for existing directories

To transform your rough idea into a detailed design and implementation plan, I need to know where to store the project documents.

Please provide the **project_dir** (the directory where you want the planning artifacts, research, and design documents to be saved).

*Example: `docs/todo-app`, `planning`, or `.sop/todo-list`*

If I use gemini-cli as backend (-b gemini) everything works fine.

In opencode I've successfully logged into my gemini subscription and I can use it just fine.

Ralph 2.2.0
opencode 1.1.31
ubuntu 24.04

Any suggestion?

Originally created by @deedeedev on GitHub (Jan 22, 2026). Original GitHub issue: https://github.com/mikeyobrien/ralph-orchestrator/issues/96 I'd like to use opencode as a backend but with the `ralph plan -b opencode "<MY PROMPT>"` command the interactive session does not start and I don't see opencode being launched. Here's the output I get: ``` ralph plan -b opencode "Build a React todo list app" 🎯 Starting Prompt-Driven Development session... | Bash List files to check for existing directories To transform your rough idea into a detailed design and implementation plan, I need to know where to store the project documents. Please provide the **project_dir** (the directory where you want the planning artifacts, research, and design documents to be saved). *Example: `docs/todo-app`, `planning`, or `.sop/todo-list`* ``` If I use gemini-cli as backend (`-b gemini`) everything works fine. In opencode I've successfully logged into my gemini subscription and I can use it just fine. `Ralph 2.2.0` `opencode 1.1.31` `ubuntu 24.04` Any suggestion?
kerem closed this issue 2026-02-27 10:21:53 +03:00
Author
Owner

@postpersonality commented on GitHub (Jan 22, 2026):

same issue on my side

even with the custom command from the previous issue #90

<!-- gh-comment-id:3786068939 --> @postpersonality commented on GitHub (Jan 22, 2026): same issue on my side even with the custom command from the previous issue #90
Author
Owner

@matbgn commented on GitHub (Jan 22, 2026):

Same without TUI.

Ralph Config:

cli:
  backend: "custom"
  command: "opencode"
  args:
    - "run"
    - "-m"
    - "opencode/minimax-m2.1-free"
  prompt_mode: "arg"

Logs

ralph run -v -p "Say hi" --no-tui
2026-01-22T14:02:44.207284Z DEBUG ralph_core::config: Loading configuration from file path=ralph.yml
2026-01-22T14:02:44.207402Z DEBUG ralph_core::config: Configuration loaded backend=opencode has_v1_fields=false custom_hats=3
2026-01-22T14:02:44.207422Z DEBUG ralph::process_management: Process group initialized: PID 305051
2026-01-22T14:02:44.207431Z DEBUG ralph: Resolving prompt content inline_prompt=Some("Say hi...") prompt_file=
2026-01-22T14:02:44.207434Z DEBUG ralph: Using inline prompt text len=6
2026-01-22T14:02:44.207493Z DEBUG ralph: Created events file for this run: .ralph/events-20260122-140244.jsonl
2026-01-22T14:02:44.207520Z DEBUG ralph_core::event_loop: Multi-hat mode: 3 custom hats + Ralph as fallback
2026-01-22T14:02:44.207537Z DEBUG ralph_core::event_loop: Published task.start event topic="task.start"
2026-01-22T14:02:44.207570Z DEBUG ralph_core::event_logger: Event logged topic=task.start iteration=0
2026-01-22T14:02:44.207579Z DEBUG ralph: Execution mode configured execution_mode=autonomous

═══════════════════════════════════════════════════════════════════════════════
 ITERATION 1 │ 🎭 ralph │ 0s elapsed │ 1/100
═══════════════════════════════════════════════════════════════════════════════
2026-01-22T14:02:44.207595Z  INFO ralph: I'm Ralph. Let's do this.
2026-01-22T14:02:44.207597Z DEBUG ralph: Iteration 1/100 — ralph active
2026-01-22T14:02:44.207632Z  INFO ralph_core::event_loop: Memory injection check: enabled=true, inject=Auto, workspace_root="/home/matbgn/Dev/omniticket"
2026-01-22T14:02:44.207640Z  INFO ralph_core::event_loop: Looking for memories at: "/home/matbgn/Dev/omniticket/.agent/memories.md" (exists: false)
2026-01-22T14:02:44.207643Z  INFO ralph_core::event_loop: Successfully loaded 0 memories from store
2026-01-22T14:02:44.207644Z  INFO ralph_core::event_loop: Memory store is empty - no memories to inject
2026-01-22T14:02:44.207645Z DEBUG ralph_core::event_loop: build_prompt: routing to HatlessRalph (multi-hat coordinator mode), active_hats: []

════════════════════════════════════════════════════════════════════════════════
📋 PROMPT FOR ralph (iteration 1)
────────────────────────────────────────────────────────────────────────────────
You are Ralph. You have fresh context each iteration.

...

════════════════════════════════════════════════════════════════════════════════

2026-01-22T14:02:55.191922Z DEBUG ralph_adapters::pty_executor: PTY reader: EOF
2026-01-22T14:02:55.191949Z DEBUG ralph_adapters::pty_executor: Output channel closed

═══════════════════════════════════════════════════════════════════════════════
 ITERATION 2 │ 🔨 builder │ 11s elapsed │ 2/100
═══════════════════════════════════════════════════════════════════════════════
2026-01-22T14:02:55.243378Z DEBUG ralph: Iteration 2/100 — ralph active
2026-01-22T14:02:55.243411Z  INFO ralph_core::event_loop: Memory injection check: enabled=true, inject=Auto, workspace_root="/home/matbgn/Dev/omniticket"
2026-01-22T14:02:55.243419Z  INFO ralph_core::event_loop: Looking for memories at: "/home/matbgn/Dev/omniticket/.agent/memories.md" (exists: false)
2026-01-22T14:02:55.243422Z  INFO ralph_core::event_loop: Successfully loaded 0 memories from store
2026-01-22T14:02:55.243424Z  INFO ralph_core::event_loop: Memory store is empty - no memories to inject
2026-01-22T14:02:55.243425Z DEBUG ralph_core::event_loop: build_prompt: routing to HatlessRalph (multi-hat coordinator mode), active_hats: ["builder"]

════════════════════════════════════════════════════════════════════════════════
📋 PROMPT FOR ralph (iteration 2)
────────────────────────────────────────────────────────────────────────────────
You are Ralph. You have fresh context each iteration.

...

════════════════════════════════════════════════════════════════════════════════

2026-01-22T14:02:55.243550Z DEBUG ralph_adapters::cli_backend: Built CLI command command=opencode args_count=2 prompt_len=4912 interactive=false uses_stdin=false uses_temp_file=false
2026-01-22T14:02:55.244307Z DEBUG ralph_adapters::pty_executor: Spawning PTY output reader thread (streaming mode)

I'll handle the `say_hi` task by delegating to the Builder and ensuring proper implementation.

**Delegating to Builder:**

|  Bash     ralph emit "build.task" "task: say_hi"
Error: Error: [DecimalError] Invalid argument: [object Object]

2026-01-22T14:04:04.771971Z DEBUG ralph_adapters::pty_executor: PTY reader: EOF
2026-01-22T14:04:04.772015Z DEBUG ralph_adapters::pty_executor: Output channel closed

═══════════════════════════════════════════════════════════════════════════════
 ITERATION 3 │ 🔨 builder │ 1m 20s elapsed │ 3/100
═══════════════════════════════════════════════════════════════════════════════
2026-01-22T14:04:04.772204Z DEBUG ralph: Iteration 3/100 — ralph active
2026-01-22T14:04:04.772234Z  INFO ralph_core::event_loop: Memory injection check: enabled=true, inject=Auto, workspace_root="/home/matbgn/Dev/omniticket"
2026-01-22T14:04:04.772243Z  INFO ralph_core::event_loop: Looking for memories at: "/home/matbgn/Dev/omniticket/.agent/memories.md" (exists: false)
2026-01-22T14:04:04.772246Z  INFO ralph_core::event_loop: Successfully loaded 0 memories from store
2026-01-22T14:04:04.772248Z  INFO ralph_core::event_loop: Memory store is empty - no memories to inject
2026-01-22T14:04:04.772250Z DEBUG ralph_core::event_loop: build_prompt: routing to HatlessRalph (multi-hat coordinator mode), active_hats: ["builder"]

════════════════════════════════════════════════════════════════════════════════
📋 PROMPT FOR ralph (iteration 3)
────────────────────────────────────────────────────────────────────────────────
You are Ralph. You have fresh context each iteration.

...

════════════════════════════════════════════════════════════════════════════════

2026-01-22T14:04:04.772369Z DEBUG ralph_adapters::cli_backend: Built CLI command command=opencode args_count=2 prompt_len=4912 interactive=false uses_stdin=false uses_temp_file=false
2026-01-22T14:04:04.773063Z DEBUG ralph_adapters::pty_executor: Spawning PTY output reader thread (streaming mode)

I'll handle this as Ralph. Let me study the specs first to understand the context, then delegate the task.

|  List     specs
|  Bash     ralph emit "build.task" "task: say_hi"
Error: Error: [DecimalError] Invalid argument: [object Object]

2026-01-22T14:04:15.308490Z DEBUG ralph_adapters::pty_executor: PTY reader: EOF
2026-01-22T14:04:15.308519Z DEBUG ralph_adapters::pty_executor: Output channel closed

═══════════════════════════════════════════════════════════════════════════════
 ITERATION 4 │ 🔨 builder │ 1m 31s elapsed │ 4/100
═══════════════════════════════════════════════════════════════════════════════
2026-01-22T14:04:15.359973Z DEBUG ralph: Iteration 4/100 — ralph active
2026-01-22T14:04:15.360034Z  INFO ralph_core::event_loop: Memory injection check: enabled=true, inject=Auto, workspace_root="/home/matbgn/Dev/omniticket"
2026-01-22T14:04:15.360051Z  INFO ralph_core::event_loop: Looking for memories at: "/home/matbgn/Dev/omniticket/.agent/memories.md" (exists: false)
2026-01-22T14:04:15.360059Z  INFO ralph_core::event_loop: Successfully loaded 0 memories from store
2026-01-22T14:04:15.360064Z  INFO ralph_core::event_loop: Memory store is empty - no memories to inject
2026-01-22T14:04:15.360067Z DEBUG ralph_core::event_loop: build_prompt: routing to HatlessRalph (multi-hat coordinator mode), active_hats: ["builder"]

════════════════════════════════════════════════════════════════════════════════
📋 PROMPT FOR ralph (iteration 4)
────────────────────────────────────────────────────────────────────────────────
You are Ralph. You have fresh context each iteration.

### 0a. ORIENTATION
You MUST study `./specs/` to understand requirements.
You MUST NOT assume features aren't implemented — search first.

...

════════════════════════════════════════════════════════════════════════════════

2026-01-22T14:04:15.360175Z DEBUG ralph_adapters::cli_backend: Built CLI command command=opencode args_count=2 prompt_len=4912 interactive=false uses_stdin=false uses_temp_file=false
2026-01-22T14:04:15.360850Z DEBUG ralph_adapters::pty_executor: Spawning PTY output reader thread (streaming mode)

I'll handle this task. Let me first understand what "say_hi" means by searching for context.

|  Glob     {"pattern":"**/say_hi*"}
|  Glob     {"pattern":"**/tasks/*.code-task.md"}
|  Read     specs/architecture.md
Error: Error: [DecimalError] Invalid argument: [object Object]

2026-01-22T14:04:23.859297Z DEBUG ralph_adapters::pty_executor: PTY reader: EOF
2026-01-22T14:04:23.859333Z DEBUG ralph_adapters::pty_executor: Output channel closed
2026-01-22T14:04:23.859432Z DEBUG ralph: No pending events after iteration. Agent may have failed to publish a valid event. Expected one of: []. Loop will terminate on next iteration. hat=ralph expected_topics=[]
2026-01-22T14:04:23.859439Z DEBUG ralph_core::event_loop: Injecting fallback event to recover - triggering Ralph with task.resume

═══════════════════════════════════════════════════════════════════════════════
 ITERATION 5 │ 🎭 ralph │ 1m 39s elapsed │ 5/100
═══════════════════════════════════════════════════════════════════════════════
2026-01-22T14:04:23.859456Z DEBUG ralph: Iteration 5/100 — ralph active
2026-01-22T14:04:23.859482Z  INFO ralph_core::event_loop: Memory injection check: enabled=true, inject=Auto, workspace_root="/home/matbgn/Dev/omniticket"
2026-01-22T14:04:23.859489Z  INFO ralph_core::event_loop: Looking for memories at: "/home/matbgn/Dev/omniticket/.agent/memories.md" (exists: false)
2026-01-22T14:04:23.859493Z  INFO ralph_core::event_loop: Successfully loaded 0 memories from store
2026-01-22T14:04:23.859495Z  INFO ralph_core::event_loop: Memory store is empty - no memories to inject
2026-01-22T14:04:23.859497Z DEBUG ralph_core::event_loop: build_prompt: routing to HatlessRalph (multi-hat coordinator mode), active_hats: []

════════════════════════════════════════════════════════════════════════════════
📋 PROMPT FOR ralph (iteration 5)
────────────────────────────────────────────────────────────────────────────────
You are Ralph. You have fresh context each iteration.

### 0a. ORIENTATION
You MUST study `./specs/` to understand requirements.
You MUST NOT assume features aren't implemented — search first.

...

════════════════════════════════════════════════════════════════════════════════

2026-01-22T14:04:23.859617Z DEBUG ralph_adapters::cli_backend: Built CLI command command=opencode args_count=2 prompt_len=4506 interactive=false uses_stdin=false uses_temp_file=false
2026-01-22T14:04:23.860236Z DEBUG ralph_adapters::pty_executor: Spawning PTY output reader thread (streaming mode)
|  Bash     ralph tools memory list 2>/dev/null || echo "No memory found"
|  Bash     ralph tools task list 2>/dev/null || echo "No tasks found"
|  Bash     cat .taskmaster/tasks/tasks.json 2>/dev/null || echo "No tasks file"
Error: Error: [DecimalError] Invalid argument: [object Object]

2026-01-22T14:04:32.402292Z DEBUG ralph_adapters::pty_executor: PTY reader: EOF
2026-01-22T14:04:32.402335Z DEBUG ralph_adapters::pty_executor: Output channel closed
2026-01-22T14:04:32.452673Z  INFO ralph_core::event_loop: Wrapping up: consecutive_failures. 5 iterations in 1m 48s. reason=consecutive_failures iterations=5 duration=1m 48s
2026-01-22T14:04:32.452812Z DEBUG ralph_core::event_logger: Event logged topic=loop.terminate iteration=5

┌──────────────────────────────────────────────────────────┐
│ ✗ Loop terminated: Too many consecutive failures
├──────────────────────────────────────────────────────────┤
│   Iterations:  5
│   Elapsed:     108.2s
└──────────────────────────────────────────────────────────┘
<!-- gh-comment-id:3786629004 --> @matbgn commented on GitHub (Jan 22, 2026): Same without TUI. Ralph Config: ``` cli: backend: "custom" command: "opencode" args: - "run" - "-m" - "opencode/minimax-m2.1-free" prompt_mode: "arg" ``` Logs ``` ralph run -v -p "Say hi" --no-tui 2026-01-22T14:02:44.207284Z DEBUG ralph_core::config: Loading configuration from file path=ralph.yml 2026-01-22T14:02:44.207402Z DEBUG ralph_core::config: Configuration loaded backend=opencode has_v1_fields=false custom_hats=3 2026-01-22T14:02:44.207422Z DEBUG ralph::process_management: Process group initialized: PID 305051 2026-01-22T14:02:44.207431Z DEBUG ralph: Resolving prompt content inline_prompt=Some("Say hi...") prompt_file= 2026-01-22T14:02:44.207434Z DEBUG ralph: Using inline prompt text len=6 2026-01-22T14:02:44.207493Z DEBUG ralph: Created events file for this run: .ralph/events-20260122-140244.jsonl 2026-01-22T14:02:44.207520Z DEBUG ralph_core::event_loop: Multi-hat mode: 3 custom hats + Ralph as fallback 2026-01-22T14:02:44.207537Z DEBUG ralph_core::event_loop: Published task.start event topic="task.start" 2026-01-22T14:02:44.207570Z DEBUG ralph_core::event_logger: Event logged topic=task.start iteration=0 2026-01-22T14:02:44.207579Z DEBUG ralph: Execution mode configured execution_mode=autonomous ═══════════════════════════════════════════════════════════════════════════════ ITERATION 1 │ 🎭 ralph │ 0s elapsed │ 1/100 ═══════════════════════════════════════════════════════════════════════════════ 2026-01-22T14:02:44.207595Z INFO ralph: I'm Ralph. Let's do this. 2026-01-22T14:02:44.207597Z DEBUG ralph: Iteration 1/100 — ralph active 2026-01-22T14:02:44.207632Z INFO ralph_core::event_loop: Memory injection check: enabled=true, inject=Auto, workspace_root="/home/matbgn/Dev/omniticket" 2026-01-22T14:02:44.207640Z INFO ralph_core::event_loop: Looking for memories at: "/home/matbgn/Dev/omniticket/.agent/memories.md" (exists: false) 2026-01-22T14:02:44.207643Z INFO ralph_core::event_loop: Successfully loaded 0 memories from store 2026-01-22T14:02:44.207644Z INFO ralph_core::event_loop: Memory store is empty - no memories to inject 2026-01-22T14:02:44.207645Z DEBUG ralph_core::event_loop: build_prompt: routing to HatlessRalph (multi-hat coordinator mode), active_hats: [] ════════════════════════════════════════════════════════════════════════════════ 📋 PROMPT FOR ralph (iteration 1) ──────────────────────────────────────────────────────────────────────────────── You are Ralph. You have fresh context each iteration. ... ════════════════════════════════════════════════════════════════════════════════ 2026-01-22T14:02:55.191922Z DEBUG ralph_adapters::pty_executor: PTY reader: EOF 2026-01-22T14:02:55.191949Z DEBUG ralph_adapters::pty_executor: Output channel closed ═══════════════════════════════════════════════════════════════════════════════ ITERATION 2 │ 🔨 builder │ 11s elapsed │ 2/100 ═══════════════════════════════════════════════════════════════════════════════ 2026-01-22T14:02:55.243378Z DEBUG ralph: Iteration 2/100 — ralph active 2026-01-22T14:02:55.243411Z INFO ralph_core::event_loop: Memory injection check: enabled=true, inject=Auto, workspace_root="/home/matbgn/Dev/omniticket" 2026-01-22T14:02:55.243419Z INFO ralph_core::event_loop: Looking for memories at: "/home/matbgn/Dev/omniticket/.agent/memories.md" (exists: false) 2026-01-22T14:02:55.243422Z INFO ralph_core::event_loop: Successfully loaded 0 memories from store 2026-01-22T14:02:55.243424Z INFO ralph_core::event_loop: Memory store is empty - no memories to inject 2026-01-22T14:02:55.243425Z DEBUG ralph_core::event_loop: build_prompt: routing to HatlessRalph (multi-hat coordinator mode), active_hats: ["builder"] ════════════════════════════════════════════════════════════════════════════════ 📋 PROMPT FOR ralph (iteration 2) ──────────────────────────────────────────────────────────────────────────────── You are Ralph. You have fresh context each iteration. ... ════════════════════════════════════════════════════════════════════════════════ 2026-01-22T14:02:55.243550Z DEBUG ralph_adapters::cli_backend: Built CLI command command=opencode args_count=2 prompt_len=4912 interactive=false uses_stdin=false uses_temp_file=false 2026-01-22T14:02:55.244307Z DEBUG ralph_adapters::pty_executor: Spawning PTY output reader thread (streaming mode) I'll handle the `say_hi` task by delegating to the Builder and ensuring proper implementation. **Delegating to Builder:** | Bash ralph emit "build.task" "task: say_hi" Error: Error: [DecimalError] Invalid argument: [object Object] 2026-01-22T14:04:04.771971Z DEBUG ralph_adapters::pty_executor: PTY reader: EOF 2026-01-22T14:04:04.772015Z DEBUG ralph_adapters::pty_executor: Output channel closed ═══════════════════════════════════════════════════════════════════════════════ ITERATION 3 │ 🔨 builder │ 1m 20s elapsed │ 3/100 ═══════════════════════════════════════════════════════════════════════════════ 2026-01-22T14:04:04.772204Z DEBUG ralph: Iteration 3/100 — ralph active 2026-01-22T14:04:04.772234Z INFO ralph_core::event_loop: Memory injection check: enabled=true, inject=Auto, workspace_root="/home/matbgn/Dev/omniticket" 2026-01-22T14:04:04.772243Z INFO ralph_core::event_loop: Looking for memories at: "/home/matbgn/Dev/omniticket/.agent/memories.md" (exists: false) 2026-01-22T14:04:04.772246Z INFO ralph_core::event_loop: Successfully loaded 0 memories from store 2026-01-22T14:04:04.772248Z INFO ralph_core::event_loop: Memory store is empty - no memories to inject 2026-01-22T14:04:04.772250Z DEBUG ralph_core::event_loop: build_prompt: routing to HatlessRalph (multi-hat coordinator mode), active_hats: ["builder"] ════════════════════════════════════════════════════════════════════════════════ 📋 PROMPT FOR ralph (iteration 3) ──────────────────────────────────────────────────────────────────────────────── You are Ralph. You have fresh context each iteration. ... ════════════════════════════════════════════════════════════════════════════════ 2026-01-22T14:04:04.772369Z DEBUG ralph_adapters::cli_backend: Built CLI command command=opencode args_count=2 prompt_len=4912 interactive=false uses_stdin=false uses_temp_file=false 2026-01-22T14:04:04.773063Z DEBUG ralph_adapters::pty_executor: Spawning PTY output reader thread (streaming mode) I'll handle this as Ralph. Let me study the specs first to understand the context, then delegate the task. | List specs | Bash ralph emit "build.task" "task: say_hi" Error: Error: [DecimalError] Invalid argument: [object Object] 2026-01-22T14:04:15.308490Z DEBUG ralph_adapters::pty_executor: PTY reader: EOF 2026-01-22T14:04:15.308519Z DEBUG ralph_adapters::pty_executor: Output channel closed ═══════════════════════════════════════════════════════════════════════════════ ITERATION 4 │ 🔨 builder │ 1m 31s elapsed │ 4/100 ═══════════════════════════════════════════════════════════════════════════════ 2026-01-22T14:04:15.359973Z DEBUG ralph: Iteration 4/100 — ralph active 2026-01-22T14:04:15.360034Z INFO ralph_core::event_loop: Memory injection check: enabled=true, inject=Auto, workspace_root="/home/matbgn/Dev/omniticket" 2026-01-22T14:04:15.360051Z INFO ralph_core::event_loop: Looking for memories at: "/home/matbgn/Dev/omniticket/.agent/memories.md" (exists: false) 2026-01-22T14:04:15.360059Z INFO ralph_core::event_loop: Successfully loaded 0 memories from store 2026-01-22T14:04:15.360064Z INFO ralph_core::event_loop: Memory store is empty - no memories to inject 2026-01-22T14:04:15.360067Z DEBUG ralph_core::event_loop: build_prompt: routing to HatlessRalph (multi-hat coordinator mode), active_hats: ["builder"] ════════════════════════════════════════════════════════════════════════════════ 📋 PROMPT FOR ralph (iteration 4) ──────────────────────────────────────────────────────────────────────────────── You are Ralph. You have fresh context each iteration. ### 0a. ORIENTATION You MUST study `./specs/` to understand requirements. You MUST NOT assume features aren't implemented — search first. ... ════════════════════════════════════════════════════════════════════════════════ 2026-01-22T14:04:15.360175Z DEBUG ralph_adapters::cli_backend: Built CLI command command=opencode args_count=2 prompt_len=4912 interactive=false uses_stdin=false uses_temp_file=false 2026-01-22T14:04:15.360850Z DEBUG ralph_adapters::pty_executor: Spawning PTY output reader thread (streaming mode) I'll handle this task. Let me first understand what "say_hi" means by searching for context. | Glob {"pattern":"**/say_hi*"} | Glob {"pattern":"**/tasks/*.code-task.md"} | Read specs/architecture.md Error: Error: [DecimalError] Invalid argument: [object Object] 2026-01-22T14:04:23.859297Z DEBUG ralph_adapters::pty_executor: PTY reader: EOF 2026-01-22T14:04:23.859333Z DEBUG ralph_adapters::pty_executor: Output channel closed 2026-01-22T14:04:23.859432Z DEBUG ralph: No pending events after iteration. Agent may have failed to publish a valid event. Expected one of: []. Loop will terminate on next iteration. hat=ralph expected_topics=[] 2026-01-22T14:04:23.859439Z DEBUG ralph_core::event_loop: Injecting fallback event to recover - triggering Ralph with task.resume ═══════════════════════════════════════════════════════════════════════════════ ITERATION 5 │ 🎭 ralph │ 1m 39s elapsed │ 5/100 ═══════════════════════════════════════════════════════════════════════════════ 2026-01-22T14:04:23.859456Z DEBUG ralph: Iteration 5/100 — ralph active 2026-01-22T14:04:23.859482Z INFO ralph_core::event_loop: Memory injection check: enabled=true, inject=Auto, workspace_root="/home/matbgn/Dev/omniticket" 2026-01-22T14:04:23.859489Z INFO ralph_core::event_loop: Looking for memories at: "/home/matbgn/Dev/omniticket/.agent/memories.md" (exists: false) 2026-01-22T14:04:23.859493Z INFO ralph_core::event_loop: Successfully loaded 0 memories from store 2026-01-22T14:04:23.859495Z INFO ralph_core::event_loop: Memory store is empty - no memories to inject 2026-01-22T14:04:23.859497Z DEBUG ralph_core::event_loop: build_prompt: routing to HatlessRalph (multi-hat coordinator mode), active_hats: [] ════════════════════════════════════════════════════════════════════════════════ 📋 PROMPT FOR ralph (iteration 5) ──────────────────────────────────────────────────────────────────────────────── You are Ralph. You have fresh context each iteration. ### 0a. ORIENTATION You MUST study `./specs/` to understand requirements. You MUST NOT assume features aren't implemented — search first. ... ════════════════════════════════════════════════════════════════════════════════ 2026-01-22T14:04:23.859617Z DEBUG ralph_adapters::cli_backend: Built CLI command command=opencode args_count=2 prompt_len=4506 interactive=false uses_stdin=false uses_temp_file=false 2026-01-22T14:04:23.860236Z DEBUG ralph_adapters::pty_executor: Spawning PTY output reader thread (streaming mode) | Bash ralph tools memory list 2>/dev/null || echo "No memory found" | Bash ralph tools task list 2>/dev/null || echo "No tasks found" | Bash cat .taskmaster/tasks/tasks.json 2>/dev/null || echo "No tasks file" Error: Error: [DecimalError] Invalid argument: [object Object] 2026-01-22T14:04:32.402292Z DEBUG ralph_adapters::pty_executor: PTY reader: EOF 2026-01-22T14:04:32.402335Z DEBUG ralph_adapters::pty_executor: Output channel closed 2026-01-22T14:04:32.452673Z INFO ralph_core::event_loop: Wrapping up: consecutive_failures. 5 iterations in 1m 48s. reason=consecutive_failures iterations=5 duration=1m 48s 2026-01-22T14:04:32.452812Z DEBUG ralph_core::event_logger: Event logged topic=loop.terminate iteration=5 ┌──────────────────────────────────────────────────────────┐ │ ✗ Loop terminated: Too many consecutive failures ├──────────────────────────────────────────────────────────┤ │ Iterations: 5 │ Elapsed: 108.2s └──────────────────────────────────────────────────────────┘ ```
Author
Owner

@matbgn commented on GitHub (Jan 22, 2026):

@mikeyobrien maybe it could be useful if you create a free account on opencode with the following free model opencode/minimax-m2.1-free to test on your side, so you could avoid back and forth testing like this issues, noop? #96 #90 #82 #75 #69 (opened and closed in the last 96 hours)

<!-- gh-comment-id:3786665007 --> @matbgn commented on GitHub (Jan 22, 2026): @mikeyobrien maybe it could be useful if you create a free account on opencode with the following free model opencode/minimax-m2.1-free to test on your side, so you could avoid back and forth testing like this issues, noop? #96 #90 #82 #75 #69 (opened and closed in the last 96 hours)
Author
Owner

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

Will do, i'll add opencode verification as a release blocker. Sorry about that!

<!-- gh-comment-id:3786986935 --> @mikeyobrien commented on GitHub (Jan 22, 2026): Will do, i'll add `opencode` verification as a release blocker. Sorry about that!
Author
Owner

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

Image Image
<!-- gh-comment-id:3787055170 --> @mikeyobrien commented on GitHub (Jan 22, 2026): <img width="732" height="716" alt="Image" src="https://github.com/user-attachments/assets/29108aad-1c45-4bd4-8c50-b036daadb357" /> <img width="732" height="591" alt="Image" src="https://github.com/user-attachments/assets/8ee5e86e-ffc8-4005-bf33-abfbaeff86b9" />
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#38
No description provided.