Repository navigation
Replies: 3 comments
|
Thank you for this work. We read the branch ( 1. Context-overflow recovery: accepted It uses the existing
2. Compaction capability: accepted, with a correct description
3. Steering: change needed before review The description says that the branch uses
4. Concurrent turns: use #3763 The manual toggle is useful. But we found no ACP agent or specification that sends For each PR
|
|
I’ve split the custom-ACP work into separate issues as requested. No new PRs are open yet; each branch will wait for its issue’s
Context-overflow recovery — #4972Branch: https://github.com/botdoggy/openbot/tree/feat/custom-acp-context-overflow It contains only the overflow-recovery path:
The requested fake-agent E2E is now bun run test:acp-context-overflowIt runs the real ACP compaction updates — #4974Branch: https://github.com/botdoggy/openbot/tree/feat/acp-compaction-updates The branch now matches the corrected description: OpenBot asks ACP agents for their compaction updates. It is not a new parser or a claim that only custom agents benefit. It adds The fake-agent verification is: bun run test:acp-compactionIt confirms that the fake sends I also smoke-tested a real agent: Codex ACP Custom ACP steering — #4977Branch: https://github.com/botdoggy/openbot/tree/feat/custom-acp-steering This branch implements the corrected community extension instead of the earlier
The fake agent uses the same wire shape, and this passes: bun run test:acp:steerThe check drives both a steering-enabled fake and a plain fake: the enabled agent receives the steering message mid-turn; the plain agent refuses steering while preserving the queue. I also smoke-tested the steering branch against a real agent: Codex ACP Parallel turns — #3763Branch: https://github.com/botdoggy/openbot/tree/feat/custom-acp-concurrent-turns I did not open another issue for this. As requested, it uses #3763. The branch now keeps only the manual, saved Runs parallel turns choice. There is no The fake-agent verification passes: bun run test:acp:concurrent-turnsIt confirms that a session’s fast turn can complete while another session of the same agent is still running a slow turn, and that the saved setting survives a flagless save while defaulting to off. Each branch has one Reproducing the real-agent smoke testsBoth smoke tests used |
|
For #4972, does the E2E deliver a delayed update from the retired ACP session after the replacement has started? I’d expect it to remain attached to the failed attempt, without settling the replacement or changing its context meter. In our work on Sinaps Studio at SinapsData, distinguishing an agent’s task from its execution attempts matters for monitoring. That case would check recovery bookkeeping beyond whether the retry succeeds. |
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
ACP protocol officially doesn't support agent advertising the ability to do concurrent/parallel turns or be able to steer. But this can be advertised by detecting meta tags (or by allowing the user to toggle it on themselves, instead of assuming a degraded default), similar to how Zed the IDE does.
I've implemented and tested the following two features and a fix on my own fork of the openbot repo that makes custom ACP agents more capable:
https://github.com/botdoggy/openbot/tree/pr/custom-acp-features
concurrentTurnsmeta flag detection + entry addition in custom-agents.jsonsteertoggle in the ACP custom-agent dialog panel + entry addition in custom-agents.jsonThis also closes #3763 — the issue is not yet labeled
approved, so the Contribution policy check willfail until a maintainer labels it (or adds
policy-exempt). The steering, context-overflow, andcompaction parts have no upstream issues; happy to file feature requests or split the PR if preferred.
Type of change
What changed
Four opt-in extensions for custom ACP agents, developed and run on my fork :
_meta.concurrentTurns, seeded by the startup capability checkas one user-owned flag per agent, editable in the custom-agent dialog; a busy agent starts a new
turn instead of queueing.
_meta.steering.supported: true, using the agreed community wire protocol(
_session/steering {sessionId, prompt}, as in Zed's claude-code-acp).Agents that don't advertise it keep queue-and-refuse.
and replaced with a new session for the next turn, instead of stalling every later turn.
compaction no longer looks like a dead turn.
Verification
biome checkon changed paths and repo typechecks (pre-commit hook), plusbun vitest run src/backend/agent/thread-items.test.ts(8 tests pass). CI owns the full suite.ipc-custom-agents.ts,ipc-agent-tasks.ts) andmock-openbot.ts, i18n (steer hint, overflow strings in all locales).bun scripts/acp-concurrent-turns-e2e.tsandbun scripts/acp-steer-e2e.tsboth pass on this branch.Failure modes
(The branch adds
src/backend/agent/thread-items.test.ts)HTTP 400: {"error":"Context limit exceeded"}) covered by a custom testit.eachblock."ignores other custom ACP failures".
cross-provider test.
Risk and security impact
ipc-custom-agents.ts,ipc-agent-tasks.ts) and thepersisted custom-agent record; absent means off, no migration.
_session/steering(only to agents that advertised steering) and compaction-update handling.Screenshots
No layout changes; the custom-agent dialog gains two capability switches (concurrent turns,
steering) with seeded defaults and hint text per agent.
All reactions