[QUALITY-569] Stage 1: orchestrate tool (client)#9628
Conversation
29f24a6 to
9acff38
Compare
|
I'm starting a first review of this pull request. You can view the conversation on Warp. I completed the review and no human review was requested for this pull request. Comment Powered by Oz |
There was a problem hiding this comment.
Overview
This PR adds the client-side RunAgents orchestration flow, including the confirmation card, executor fan-out through StartAgent, result conversion, and supporting UI/dropdown changes.
Concerns
- The workspace is left pinned to a developer-local
../warp-proto-apispath, which will break builds outside that machine until the dependency is replaced with a shared git/registry pin. - Local third-party harness orchestration can bypass the existing parent
run_idvalidation, so local Claude/OpenCode launches can be dispatched with missing parent linkage. - Local harness preparation/pane-creation failures can create an error conversation without linking it back to the pending StartAgent request, leaving the RunAgents aggregate waiting indefinitely.
Verdict
Found: 0 critical, 3 important, 0 suggestions
Request changes
Comment /oz-review on this pull request to retrigger a review (up to 3 times on the same pull request).
Powered by Oz
| # /Users/matthew/src/orchestration-tool-2/warp-proto-apis (commit f308712 on | ||
| # branch matthew/orchestration-tool-2). Will be swapped to a registry / git | ||
| # rev pin once warp-proto-apis PR #299 lands and a release is cut. | ||
| warp_multi_agent_api = { path = "../warp-proto-apis/apis/multi_agent/v1/gen/rust" } |
There was a problem hiding this comment.
[patch] points Cargo at a developer-local sibling checkout, so CI/release builds without ../warp-proto-apis will fail to resolve warp_multi_agent_api. Keep this commented out or pin the generated proto crate to a git/registry revision before merging.
| continue; | ||
| } | ||
| }; | ||
| if matches!(run_execution_mode, RunAgentsExecutionMode::Remote { .. }) |
There was a problem hiding this comment.
run_id, but this guard only rejects missing run_id for remote mode; claude/opencode local RunAgents requests reach StartAgentExecutor::dispatch with None, bypassing the validation in StartAgentExecutor::execute. Reject non-Oz local harnesses when parent_run_id is missing before dispatching.
| ); | ||
| }); | ||
| } else { | ||
| create_error_child_agent_conversation( |
There was a problem hiding this comment.
record_new_conversation_request_complete or sends an error to the pending StartAgentExecutor request. Since StartedNewConversation is now ignored, the receiver can wait forever and the RunAgents card remains spawning; return the error conversation id and record request_id, or fail the pending request directly.
advait-m
left a comment
There was a problem hiding this comment.
this is awesome! Tried out the branch myself - looking good!
Few comments to address, but approving to unblock. Feel free to ping if I can be helpful for another look/more testing!
| let picker_border_color_warpui: warpui::elements::Fill = | ||
| Fill::Solid(ColorU::new(0x29, 0x29, 0x29, 0xff)).into(); | ||
| let picker_font_color = ColorU::new(0xe3, 0xe2, 0xdf, 0xff); |
| Harness::Oz, | ||
| Harness::Claude, | ||
| Harness::Gemini, | ||
| Harness::Codex, |
There was a problem hiding this comment.
There was a problem hiding this comment.
Separately, we might want to fix the error case (with that "Spawning" message) for edge cases like the user selects CC but doesn't have claude installed on their machine? (haven't tried this yet myself, just thinking of other things that we might hit)
There was a problem hiding this comment.
Did a quick fix to add a timeout at least. Will file an linear to see if we can get a fast fail in there.
| @@ -511,7 +506,3 @@ tink-hybrid = { git = "https://github.com/warpdotdev/tink-rust", branch = "warpd | |||
|
|
|||
| tikv-jemallocator = { git = "https://github.com/warpdotdev/jemallocator.git", rev = "2ee30bfdf7059223b54810e4ea6c666f0a379e0b" } | |||
There was a problem hiding this comment.
I don't think we want to remove this? Should leave this in, just commented
6c7be3a to
4ed836b
Compare
…ew fixes Implements the client-side orchestration tool (RunAgents) including: - Confirmation card with inline editor (model/harness/env/host pickers) - RunAgentsExecutor with per-child dispatch, 30s spawn timeout - RunAgentsCardView as a standalone View with keybindings - StartAgentConversation helpers extracted for reuse - Theme-aware picker colors (surface_overlay_1 bg, surface_2 border, composited text contrast) matching Figma mocks - Gemini removed from harness picker (unsupported for multi-agent) - Cargo.toml warp-proto-apis patch section restored Co-Authored-By: Oz <[email protected]>
4ed836b to
ff84142
Compare




Description
Client-side implementation of the
RunAgentsorchestration tool, paired with server PR https://github.com/warpdotdev/warp-server/pull/10809.What
StartAgentExecutorFinishedActionevents so Ctrl+C (both card-level and terminal-level) shows the cancelled stateChannel::LocalRunAgentsrequest/result types,Harnessoneof shape,StartAgentV2advertised alongsideOrchestrateDemo
https://www.loom.com/share/dacad55f436b42d29191bf54461ab3cf
Testing
Server API dependencies
Agent Mode
Co-Authored-By: Oz [email protected]