feat(langgraph): route executor return values to successor node streams (downstream propagation) #10799

Open
opened 2026-04-20 14:43:05 +00:00 by hurui200320 · 0 comments
Member

Metadata

Field Value
Type Feature
Priority Normal
MoSCoW Should have
Milestone v3.2.0
Parent #6511
Branch feature/m3-node-stream-downstream-propagation
Commit Message feat(langgraph): route executor return values to successor node streams

Description

_make_on_next_handler in LangGraph currently executes the node executor but discards the return value. The executor returns a StreamMessage containing the node's output, which should be routed to successor node streams based on self.adjacency_list[name] to implement downstream propagation through the reactive graph pipeline.

This was identified during the fix for #6511 (wiring on_next handlers to executors) and explicitly deferred as out of scope for that ticket.

Subtasks

  • In _make_on_next_handler, capture the return value from executor(msg)
  • Look up successor nodes via self.adjacency_list[name]
  • For each successor, send the executor result to the corresponding node stream
  • Handle edge cases: missing successor streams, conditional routing
  • Add BDD scenarios covering downstream propagation

Definition of Done

  • Executor return values are routed to all successor node streams
  • Conditional edges are respected during propagation
  • BDD scenarios cover single-successor, multi-successor, and missing-stream cases
  • All quality gates pass (lint, typecheck, unit_tests, integration_tests, coverage >= 97%)
## Metadata | Field | Value | |-------|-------| | Type | Feature | | Priority | Normal | | MoSCoW | Should have | | Milestone | v3.2.0 | | Parent | #6511 | | Branch | feature/m3-node-stream-downstream-propagation | | Commit Message | feat(langgraph): route executor return values to successor node streams | ## Description `_make_on_next_handler` in `LangGraph` currently executes the node executor but discards the return value. The executor returns a `StreamMessage` containing the node's output, which should be routed to successor node streams based on `self.adjacency_list[name]` to implement downstream propagation through the reactive graph pipeline. This was identified during the fix for #6511 (wiring `on_next` handlers to executors) and explicitly deferred as out of scope for that ticket. ## Subtasks - [ ] In `_make_on_next_handler`, capture the return value from `executor(msg)` - [ ] Look up successor nodes via `self.adjacency_list[name]` - [ ] For each successor, send the executor result to the corresponding node stream - [ ] Handle edge cases: missing successor streams, conditional routing - [ ] Add BDD scenarios covering downstream propagation ## Definition of Done - [ ] Executor return values are routed to all successor node streams - [ ] Conditional edges are respected during propagation - [ ] BDD scenarios cover single-successor, multi-successor, and missing-stream cases - [ ] All quality gates pass (lint, typecheck, unit_tests, integration_tests, coverage >= 97%)
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
cleveragents/cleveragents-core#10799
No description provided.