Skip to content

Conversation

@lchoquel
Copy link
Member

@lchoquel lchoquel commented Feb 11, 2026

Summary

  • Rename parallels field to branches on PipeParallelBlueprint and PipeParallelSpec — aligns field name with branch terminology already used in docs. Updates all models, factory, builder loop, CLI, builder prompt, docs, README, PLX test data, and test files. Adds a parallels → branches migration mapping entry so users get a helpful error on the old name.
  • Add unit tests for StuffFactory.combine_stuffs — covers success cases (multi-field, single-field, auto-generated name) and error cases (missing required field, wrong content type). Removes the corresponding TODO comment.

Test plan

  • make agent-check passes (pyright, ruff, mypy — 0 errors)
  • make agent-test passes (full unit test suite)
  • make tb passes (boot sequence validates config with new migration entry)
  • pipelex validate --all passes
  • New TestStuffFactoryCombineStuffs tests pass (5/5)

🤖 Generated with Claude Code


Note

Medium Risk
Medium risk due to a user-facing schema rename in .plx/blueprints and non-trivial changes to execution graph tracing/rendering that could affect downstream tooling and visualizations.

Overview
Renames PipeParallel configuration from parallelsbranches across docs, examples, builder prompts, CLI TOML emission/parsing, specs/blueprints/factories, and test pipelines, with a .plx migration map to rewrite the old key.

Improves graph tracing/visualization for PipeParallel outputs by letting controllers explicitly register branch outputs (so DATA edges originate from the controller), adding a new parallel_combine edge kind to show branch→combined-output merges, and updating Mermaid/ReactFlow renderers to draw these dashed stuff-to-stuff edges. Adds new e2e/unit coverage for parallel graph structure and StuffFactory.combine_stuffs behavior (and removes the related TODO).

Written by Cursor Bugbot for commit e66a6bd. This will update automatically on new commits. Configure here.

lchoquel and others added 3 commits February 11, 2026 15:35
The docs already use "branch" terminology extensively; this aligns the
field name with the conceptual model. A migration mapping entry
(`parallels → branches`) is added so users get a helpful error on the
old name.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Tests cover success cases (multi-field, single-field, auto-generated
name) and error cases (missing required field, wrong content type).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Copy link

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: cf0ce47857

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@lchoquel
Copy link
Member Author

Code review

No issues found. Checked for bugs and CLAUDE.md compliance.

🤖 Generated with Claude Code

lchoquel and others added 5 commits February 11, 2026 18:52
…lization

Introduces a new EdgeKind.PARALLEL_COMBINE to show how individual branch
outputs are merged into the combined result in PipeParallel, analogous to
BATCH_AGGREGATE for PipeBatch. The edges render as purple dashed lines in
ReactFlow and Mermaid views. The graph tracer snapshots original branch
producers before register_controller_output overrides the producer map,
ensuring correct edge source resolution during teardown.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…branch variant

Wrap the combined_output test in a PipeSequence with a follow-up PipeLLM
that consumes the combined result, making the graph more realistic. Add a
new 3-branch PipeParallel test with selective downstream consumption where
2 branches are consumed and 1 is unused. Parametrize the test to cover both
variants.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Batch/parallel edges were referencing controller node IDs, but controllers
are rendered as Mermaid subgraphs (not nodes), creating phantom auto-generated
nodes. Fix by using source_stuff_digest/target_stuff_digest to connect
stuff-to-stuff instead, rendering missing stuff nodes on the fly. Also place
parallel_combine target stuffs inside their controller's subgraph and use
plain dashed arrows (-.->)  when edge labels are empty to avoid Mermaid
syntax errors.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@lchoquel lchoquel changed the title Rename parallels to branches, add combine_stuffs tests mthds-1-Rename parallels to branches Feb 12, 2026
lchoquel and others added 3 commits February 12, 2026 16:08
…INE unit test

The controller_combine_digests set was populated but never read anywhere in the
codebase. The controller_output_stuffs dict already tracks the same digests and
is the structure actually used for rendering. Added a unit test covering the
PARALLEL_COMBINE subgraph rendering path to guard against future regressions.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…e rendering

The "resolve missing stuff nodes on the fly and render dashed edge" logic
was copy-pasted three times for batch_item, batch_aggregate, and
parallel_combine edges (~105 lines of duplication). Extract into a single
_render_dashed_edges classmethod and add unit tests covering all three
edge kinds, label/no-label variants, and structural consistency.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Fix Mermaid graph rendering for PipeBatch and PipeParallel edges
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants