mirror of
https://github.com/mikeyobrien/ralph-orchestrator.git
synced 2026-04-25 07:05:57 +03:00
[PR #22] [MERGED] feat: codex-acp support, agent priority, and ralph.yml auto-load #94
Labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
starred/ralph-orchestrator#94
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
📋 Pull Request Information
Original PR: https://github.com/mikeyobrien/ralph-orchestrator/pull/22
Author: @jnyross
Created: 1/4/2026
Status: ✅ Merged
Merged: 1/5/2026
Merged by: @mikeyobrien
Base:
main← Head:codex-acp-defaults📝 Commits (1)
42ce601codex-acp: agent priority, auto-load ralph.yml, bigger ACP stream limit📊 Changes
9 files changed (+523 additions, -59 deletions)
View changed files
➕
ralph.codex-acp.yml(+33 -0)📝
ralph.yml(+22 -1)📝
src/ralph_orchestrator/__main__.py(+90 -5)📝
src/ralph_orchestrator/adapters/acp_client.py(+24 -0)📝
src/ralph_orchestrator/main.py(+4 -1)📝
src/ralph_orchestrator/orchestrator.py(+165 -48)📝
tests/test_acp_cli.py(+4 -4)➕
tests/test_agent_priority.py(+100 -0)➕
tests/test_codex_cli.py(+81 -0)📄 Description
Why
I’m using Ralph locally on Apple Silicon and wanted Codex CLI to be a first-class agent option via the Agent Client Protocol (ACP). In practice that also surfaced two recurring usability issues:
ralph run ...without-c ralph.ymlsilently ignores project settings (timeouts/iterations), leading to unexpected 5-minute ACP timeouts and fallbacks.codex-acp(and some ACP agents) can emit large single-line JSON-RPC frames; asyncio’s default per-line read limit (~64KiB) can crash the ACP read loop.This PR makes Codex-over-ACP easier to use, configurable, and more robust.
What changed
ralph run --codex(equivalent to--agent acp --acp-agent codex-acp)--codex-permission-mode {auto_approve,deny_all,allowlist,interactive}--codex-model <model>(passed tocodex-acpas-c model=...)--codex-reasoning-effort {low,medium,high,xhigh}(passed as-c model_reasoning_effort=...)agent_priorityconfig field soagent: autocan prefer Codex/ACP first (and control fallback ordering)../ralph.ymlwhen present (so project defaults apply even if-c ralph.ymlis omitted).LimitOverrunError: Separator is found, but chunk is longer than limit.RALPH_ACP_STREAM_LIMIT.ralph.codex-acp.yml.Files / highlights
src/ralph_orchestrator/__main__.py--codex*flags and the shortcut mapping.ralph.ymlwhen present.src/ralph_orchestrator/orchestrator.pyagent_priorityordering and auto selection.src/ralph_orchestrator/adapters/acp_client.pyralph.codex-acp.ymlHow to use
ralph run --codex --codex-model gpt-5.2 --codex-reasoning-effort xhighagent: autoagent_priority: [acp, claude, gemini]Tests
tests/test_codex_cli.py,tests/test_agent_priority.pytests/test_acp_cli.py🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.