You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The Composer agent hangs indefinitely when decomposing GitHub issues into tasks. In testing, Composer ran for 20+ minutes without creating any tasks, leaving the job in "running" state with Pulse PID showing "none".
Expected behaviour
Composer should decompose issues within 2-3 minutes and either:
Successfully create tasks and hand off to Pulse
Time out with an error message after 5 minutes (per composer.ts:28)
Problem: The prompt() call blocks the entire event loop while the LLM processes. The 60+ line Composer prompt with 15+ rules may cause the LLM to take 5+ minutes just to process context before responding. The timeout fires but cannot interrupt an active prompt() call mid-execution.
Secondary issue: SessionPrompt.cancel() deletes session state, but the while(true) loop in prompt.ts:309 may not check abort.aborted until the next iteration, creating a race condition.
What happened
The Composer agent hangs indefinitely when decomposing GitHub issues into tasks. In testing, Composer ran for 20+ minutes without creating any tasks, leaving the job in "running" state with Pulse PID showing "none".
Expected behaviour
Composer should decompose issues within 2-3 minutes and either:
composer.ts:28)Root Cause Analysis
Location:
packages/opencode/src/tasks/composer.ts:51-54The timeout mechanism exists but has a critical gap:
Problem: The
prompt()call blocks the entire event loop while the LLM processes. The 60+ line Composer prompt with 15+ rules may cause the LLM to take 5+ minutes just to process context before responding. The timeout fires but cannot interrupt an activeprompt()call mid-execution.Secondary issue:
SessionPrompt.cancel()deletes session state, but thewhile(true)loop inprompt.ts:309may not checkabort.aborteduntil the next iteration, creating a race condition.Steps to reproduce
taskctl start 393Environment
dev(randomm/opencode fork)Acceptance Criteria
lievo/or code comment: "Composer prompt should be < X tokens to avoid timeout"Definition of Done