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
{{ message }}
Repository navigation
[Bug]: worker-start --agent omp fails at agent_readiness: OMP 18.4 idle title "π > dir" is not recognised as idle #24068
orca orchestration worker-start --agent omp intermittently or consistently fails with failedStage: agent_readiness (liveness missing_status), although OMP is up and idle at its prompt. Orca never pastes the task.
Versions
Orca 1.4.216 (Windows 11)
OMP (@oh-my-pi/pi-coding-agent) 18.4.4
Cause (as far as we can tell)
Orca's tui-idle title check accepts an OMP pane as idle only when the title starts with π - (constant next to ✳ / ◇ in the title classifier).
OMP 18.4 writes a run-state separator into its title (buildTerminalTitleWithState): idle is π > <label>, working is π ⠋ <label>, attention π ! <label>.
Orca's managed orca-titlebar-spinner.ts paints π - ... only on agent_start / agent_end / agent_settled, not on session_start. A freshly launched OMP therefore shows π > <dir> until its first turn, and readiness waits out the full timeout.
Evidence
Two consecutive managed starts in the same worktree (--timeout-ms 180000, then --retry-of) failed at agent_readiness; the screen showed OMP idle, tokens in 0.
terminal-history checkpoint.jsonlastTitle: failing pane π > qa-tri-14-omp-qa-routing; a pane that passed π - QA docs on OMP routing - tri-14-omp-qa-routing.
With both panes idle, orca terminal wait --for tui-idle --timeout-ms 20000 returned satisfied: true in 0 s on the π - pane and timeout on the π > pane.
Workaround confirmed: a user OMP extension that calls ctx.ui.setTitle('π - ' + <cwd basename>) on session_start (only when ORCA_PANE_KEY is set) made the next worker-start reach input_accepted in 5 s.
Expected
A fresh idle OMP pane is recognised as ready. Either:
accept OMP's state-separator idle title (π > ) in the title classifier, or
have the managed titlebar extension paint the idle title on session_start, or
accept the managed status extension's hook post as readiness evidence for OMP.
Related: #22655 (same class of bug for Claude when the title is the only readiness signal), #13890, #16470.
Additional measurements on macOS (Orca 1.4.218, OMP 18.4.12), in case they help #24111 / #24113 / #24196.
1. Startup readiness has no hook signal, only the title. In the managed extension that Orca 1.4.218 ships (orca-agent-status.ts), the status session_start handler is empty (onStatus('session_start', () => {})). The second session_start handler only applies ORCA_OMP_PREFILL. So a freshly started OMP posts nothing until its first agent_start, and terminal wait --for tui-idle depends on the title alone. With OMP 18.4's π > <dir> / OMP > <dir> idle title it never settles:
orca terminal create --worktree active --command "omp" --json # idle at its prompt within seconds
orca terminal wait --terminal <h> --for tui-idle --timeout-ms 60000 --json
# -> timeout after 61 s, same with `omp --profile <p>`
2. After a prompt, hook status mostly arrives, but not in every worktree. Loop: create an OMP terminal in a worktree, send Reply with exactly: ok, wait 20 s, then look for an agents[] entry whose paneKey starts with the terminal's tabId in orca worktree ps --json.
worktree
result
main checkout (two repos), plain omp and omp --profile <p>
entry present (omp, done)
fresh linked worktrees: --no-parent, --parent-worktree, and --issue N --parent-worktree
entry present
linked worktree with an orchestration-dispatched OMP worker already running
entry present
another linked worktree with a dispatched OMP worker that had finished its work
no entry, 2/2 runs
In the failing worktree the probe's OMP status line showed (sub), and it did process the prompt. Separately, the dispatched OMP workers' own panes (started via terminal create --command "omp --profile <p> …", so --extension …/orca-agent-status.ts is injected, as ps confirms) never appear in agents[] while working, although the worktree's status reads working. If OMP treats those sessions as child sessions, the "exclude child extensions from root status reporting" part of #24196 may be the relevant change. That is an inference; we did not instrument the extension.
Activity
fix(runtime): treat Pi/OMP state-marker idle title as idle for termin…
ElvezPelvez commentedon Oct 2, 2026
Additional measurements on macOS (Orca 1.4.218, OMP 18.4.12), in case they help #24111 / #24113 / #24196.
1. Startup readiness has no hook signal, only the title. In the managed extension that Orca 1.4.218 ships (
orca-agent-status.ts), the statussession_starthandler is empty (onStatus('session_start', () => {})). The secondsession_starthandler only appliesORCA_OMP_PREFILL. So a freshly started OMP posts nothing until its firstagent_start, andterminal wait --for tui-idledepends on the title alone. With OMP 18.4'sπ > <dir>/OMP > <dir>idle title it never settles:2. After a prompt, hook status mostly arrives, but not in every worktree. Loop: create an OMP terminal in a worktree, send
Reply with exactly: ok, wait 20 s, then look for anagents[]entry whosepaneKeystarts with the terminal'stabIdinorca worktree ps --json.ompandomp --profile <p>omp,done)--no-parent,--parent-worktree, and--issue N --parent-worktreeIn the failing worktree the probe's OMP status line showed
(sub), and it did process the prompt. Separately, the dispatched OMP workers' own panes (started viaterminal create --command "omp --profile <p> …", so--extension …/orca-agent-status.tsis injected, aspsconfirms) never appear inagents[]while working, although the worktree'sstatusreadsworking. If OMP treats those sessions as child sessions, the "exclude child extensions from root status reporting" part of #24196 may be the relevant change. That is an inference; we did not instrument the extension.chore(homebrew): omp の 18.3.4 pin を外す(gpt-6.1-sol を使うため)