Add Junie as a built-in agent (junie --acp true)#470
Conversation
|
Codex review: needs real behavior proof before merge. Reviewed July 24, 2026, 7:17 AM ET / 11:17 UTC. ClawSweeper reviewWhat this changesThe PR registers JetBrains Junie as the Merge readiness⛔ Blocked until real behavior proof from a real setup is added - 6 items remain Keep this PR open for maintainer product-direction review and real Junie runtime proof: it adds a permanent built-in keyword that changes how an existing raw Priority: P2 Review scores
Verification
How this fits togetherThe built-in agent registry converts a short CLI agent name into the command flowchart LR
User[Agent or operator command] --> Name[Built-in agent name]
Name --> Registry[Built-in registry]
Registry --> Launch[ACP launch command]
Launch --> Client[ACP client session]
Client --> Runtime[Prompt and session runtime]
Runtime --> Output[Structured CLI output]
Decision needed
Why: The implementation adds a durable user-facing naming convention and changes an existing invocation path; repository policy treats such conventions as compatibility-sensitive product surface, so code review cannot determine the intended contract alone. Before merge
Findings
Agent review detailsSecurityNone. Review metrics
Merge-risk optionsMaintainer options:
Technical reviewBest possible solution: Choose whether Do we have a high-confidence way to reproduce the issue? Not applicable as a bug report. For the PR's runtime claim, no high-confidence real reproduction is provided: the included integration test uses a fake Junie executable rather than an installed and authenticated Junie CLI. Is this the best way to solve the issue? Unclear. Adding a native ACP command is mechanically narrow, but reserving a durable CLI name and changing its former raw-command behavior needs maintainer approval plus real Junie validation before this is the best supported path. Full review comments:
Overall correctness: patch is incorrect AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning high; reviewed against 26b740e81038. LabelsLabel changes:
Label justifications:
EvidenceWhat I checked:
Likely related people:
Rank-up movesOptional improvements that raise the rating; they are not merge blockers.
Rating scale
Overall follows the weaker of proof and patch quality. Workflow
|
feat: add JetBrains Junie as a built-in agent
What Problem This Solves
Users who work with JetBrains Junie could not target it directly through acpx — there was no junie built-in agent, so acpx junie ... did not resolve to a known harness. This change adds Junie to the built-in agent registry so it is available as a first-class native agent alongside the other supported harnesses in the acpx CLI.
Why This Change Was Made
Junie already ships a compliant ACP stdio mode junie --acp true and its ACP adapter correctly advertises persistent-session capabilities loadSession + sessionCapabilities.resume, so it works over the standard native ACP path with no adapter package and no agent-specific glue in src/acp/client.ts. The change is intentionally minimal: register the launch command and update the documentation surfaces required by repo policy. Non-goal: no changes to docs/CLI.md main-landing docs stay impartial and only name pi, openclaw, codex, claude, and no adapter version specifiers in docs.
User Impact
Users can now run Junie directly through acpx, for example:
acpx junie exec 'echo hello'
acpx junie sessions new --name docs
acpx junie -s docs 'rewrite CLI docs'
Named sessions reopen across processes persistent mode because acpx detects Junie's capabilities automatically. Junie must be installed and authenticated locally — acpx never installs it. The one intentional limitation is that exec/prompt without a named session is one-shot by design.
Evidence
• test/agent-registry.test.ts: resolution junie, JUNIE, whitespace, "native, not via adapter", and presence in listBuiltInAgents.
• test/integration.test.ts: writeFakeJunieAgent helper + e2e test that acpx junie exec 'echo hello' resolves to junie --acp true and returns exit code 0 with hello output.
• pnpm run check format, typecheck, lint, build, viewer build, coverage tests passes; pnpm run check:docs passes.