-
Notifications
You must be signed in to change notification settings - Fork 102
feat(team): close the orchestrator E2E loop — P1b-iii (6/6) - #1122
Draft
najmuzzaman-mohammad wants to merge 1 commit into
Draft
feat(team): close the orchestrator E2E loop — P1b-iii (6/6) #1122najmuzzaman-mohammad wants to merge 1 commit into
najmuzzaman-mohammad wants to merge 1 commit into
Conversation
...oss-language proof (P1b-iii) Makes the LangGraph orchestrator path runnable end-to-end and proves it both ways. Per-task opt-in: the orchestrator flag is plumbed through both task-create paths (TaskPlanInput composer wire + plannedTaskInput), validated to ''|'langgraph' at the boundary. Production wiring needs nothing new — NewLauncher already wires the dispatch client when WUPHF_ORCHESTRATOR_URL is set (nil otherwise, so default installs are unchanged). CI-safe Go integration test: a real task is born orchestrator-owned through the real creation path, routed through the REAL provider.DispatchClient over REAL HTTP to a stand-in for service.py, and the returned projection is written back so the web-facing task wire shape (pipeline_stage/review_state/status) reflects the new state. Only the orchestrator's business logic is faked; every layer between is production code. Live cross-language smoke (orchestrator/scripts/smoke.sh): boots the real Python sidecar and POSTs the exact wire shapes the Go client sends. Verified: a running task re-hydrates and returns a 6-field projection the Go struct decodes, and an unmappable record fails loud to lifecycle_state=unknown. SMOKE OK. Known stub gap (documented, not masked): on the P1 FakeHarness an interrupted step still projects 'running', so a wired langgraph task re-dispatches each tick. P2's real ClaudeAgentHarness returns a real gate state and resolves this. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Contributor
Important
Review skipped
Draft detected.
Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: ASSERTIVE
Plan: Pro
Run ID: 55ad02b5-c92b-418a-858b-8435c731a933
You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.
Use the checkbox below for a quick retry:
- 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
- Create PR with unit tests
- Commit unit tests in branch
deepagents/06-orchestrator-e2e
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.
Comment @coderabbitai help to get the list of available commands and usage tips.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Close the E2E loop — P1b-iii (6/6 in stack)
Makes the LangGraph orchestrator path runnable end-to-end and proves it both ways.
Per-task opt-in
The
orchestratorflag is plumbed through both task-create paths(
TaskPlanInputcomposer wire +plannedTaskInput), validated to""|"langgraph"at the boundary. Production wiring needs nothing new —
NewLauncheralready wiresthe dispatch client when
WUPHF_ORCHESTRATOR_URLis set (nil otherwise → defaultinstalls unchanged).
CI-safe Go integration test (
internal/team/orchestrator_e2e_test.go)A real task is born orchestrator-owned through the real creation path, routed
through the real
provider.DispatchClientover real HTTP to a stand-in forservice.py, and the returned projection is written back so the web-facing taskwire shape (
pipeline_stage/review_state/status) reflects the new state. Onlythe orchestrator's business logic is faked; every layer between is production code.
Live cross-language smoke (
orchestrator/scripts/smoke.sh)Boots the real Python sidecar and POSTs the exact wire shapes the Go client
sends. Verified locally (
SMOKE OK):lifecycle_state: "unknown".Known stub gap (documented, not masked)
On the P1
FakeHarnessan interrupted step still projectsrunning, so a wiredlanggraph task re-dispatches each tick. P2's real
ClaudeAgentHarnessreturns areal gate state and resolves this. Until then, run the E2E with a single task and
expect the stubbed turn.
Verify
Base:
deepagents/05-broker-orchestrator-routing(PR #1121).🤖 Generated with Claude Code