Skip to content

Enforce version sync and parallelize ready eval DAG stages#39

Merged
haasonsaas merged 9 commits intomainfrom
cursor/dag-execution-parallelization-429d
Mar 14, 2026
Merged

Enforce version sync and parallelize ready eval DAG stages#39
haasonsaas merged 9 commits intomainfrom
cursor/dag-execution-parallelization-429d

Conversation

@EvalOpsBot
Copy link
Contributor

@EvalOpsBot EvalOpsBot commented Mar 14, 2026

Summary

  • add a reusable version-sync checker, bump the crate version to 0.5.26, and enforce the check in CI and release workflows
  • add a parallel-capable DAG executor in core::dag, preserve legacy ready-node ordering for disabled stages, and move eval fixture execution onto owned stage inputs so ready parallelizable stages can overlap safely
  • update DAG specs/tests to carry execution hints consistently across eval and review pipeline modules, add regression coverage for scheduler ordering, and fix lint/workflow issues by reformatting the DAG test and upgrading deprecated GitHub action versions

Testing

  • cargo test
  • cargo fmt -- --check && cargo clippy --all-targets -- -D warnings
  • python3 .github/scripts/check_version_sync.py && python3 .github/scripts/check_version_sync.py --tag v0.5.26

Slack Thread

Slack Thread

Open in Web Open in Cursor 

cursoragent and others added 3 commits March 14, 2026 00:47
Co-authored-by: EvalOpsBot <EvalOpsBot@users.noreply.github.com>
Co-authored-by: EvalOpsBot <EvalOpsBot@users.noreply.github.com>
Co-authored-by: EvalOpsBot <EvalOpsBot@users.noreply.github.com>
@haasonsaas haasonsaas marked this pull request as ready for review March 14, 2026 00:53
@haasonsaas
Copy link
Collaborator

@cursor resolve conflicts

@cursor
Copy link

cursor bot commented Mar 14, 2026

Resolved.

• Merged origin/main into cursor/dag-execution-parallelization-429d
• No manual file conflicts were present after the merge
• Re-ran focused validation:
cargo test core::dag
cargo test commands::eval
python3 .github/scripts/check_version_sync.py && python3 .github/scripts/check_version_sync.py --tag v0.5.26
• Pushed the updated branch to GitHub

The PR should now be conflict-free.

Open in Web Open in Cursor 

…parallelization-429d

Co-authored-by: EvalOpsBot <EvalOpsBot@users.noreply.github.com>
@haasonsaas
Copy link
Collaborator

@cursor resolve any failing tests and use TDD to identify and resolve any additional bugs

@cursor
Copy link

cursor bot commented Mar 14, 2026

Resolved the test request and used TDD to fix an additional scheduler bug.

What I did:
• Ran the full Rust suite on the current branch:
cargo test
• Result: all existing tests were already passing locally, so there wasn’t a pre-existing red test to fix.
• Then I did a test-first review of the new parallel DAG executor and found a real regression:
• disabled ready nodes could be recorded ahead of earlier enabled siblings, changing execution trace order versus the legacy executor
• Added a regression test first, confirmed it failed, then fixed the scheduler to preserve ready-node spec order while still launching parallelizable prefixes concurrently.

TDD sequence:

  1. Added execute_dag_with_parallelism_preserves_ready_spec_order_for_disabled_nodes
  2. Verified it failed with:
    • actual: ["root", "leaf", "branch"]
    • expected: ["root", "branch", "leaf"]
  3. Updated execute_dag_with_parallelism to stop letting disabled/non-parallelizable ready nodes get skipped over by the scheduler
  4. Re-ran targeted DAG tests, then the full suite

Validation:
cargo test1291 passed; 0 failed
python3 .github/scripts/check_version_sync.py && python3 .github/scripts/check_version_sync.py --tag v0.5.26

Git:
• Committed and pushed the fix on the PR branch:
Preserve DAG order for disabled nodes

So at this point:
• there are no failing local Rust tests
• an additional bug in the new DAG scheduler was identified via TDD and fixed
• the PR branch has been updated and pushed

Open in Web Open in Cursor 

Co-authored-by: EvalOpsBot <EvalOpsBot@users.noreply.github.com>
@haasonsaas
Copy link
Collaborator

@cursor resolve the lint issue

@cursor
Copy link

cursor bot commented Mar 14, 2026

Resolved the lint issue.

What was failing:
• The lint job was failing on cargo fmt -- --check in src/core/dag.rs
• The workflows also still had deprecated Node 20-based action majors (actions/checkout@v4, actions/setup-node@v4), which were showing warnings in CI

What I changed:
• Ran cargo fmt to fix the formatting drift in src/core/dag.rs
• Upgraded GitHub Actions workflow pins:
actions/checkout@v4 -> actions/checkout@v5
actions/setup-node@v4 -> actions/setup-node@v5
• Updated all affected workflow files under .github/workflows/

Validation:
cargo fmt -- --check && cargo clippy --all-targets -- -D warnings
cargo test
• verified there are no remaining actions/checkout@v4 / actions/setup-node@v4 references in .github/workflows

Git:
• Committed and pushed the fix:
Fix lint formatting and workflow actions

So the actual lint failure is fixed, and the workflow deprecation warnings were cleaned up at the same time.

Open in Web Open in Cursor 

Co-authored-by: EvalOpsBot <EvalOpsBot@users.noreply.github.com>
Copy link

@cursor cursor bot left a comment

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Autofix Details

Bugbot Autofix prepared a fix for the issue found in the latest run.

  • ✅ Fixed: Postprocess describe function not refactored to use stage_hints
    • Updated describe_review_postprocess_graph to source every node hint from stage_hints(spec.id), eliminating the stale inline duplicates.

@haasonsaas
Copy link
Collaborator

@cursor resolve the merge conflicts

@cursor
Copy link

cursor bot commented Mar 14, 2026

Bugbot Autofix prepared a fix for the issue found in the latest run.

  • ✅ Fixed: Postprocess describe function not refactored to use stage_hints
    • Updated describe_review_postprocess_graph to source every node hint from stage_hints(spec.id), eliminating the stale inline duplicates.

Create PR

Open in Web Open in Cursor 

Copy link

@cursor cursor bot left a comment

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

Bugbot Autofix prepared a fix for the issue found in the latest run.

  • ✅ Fixed: Parallelizable hints on sequential chain have no effect
    • Reproduction validation now runs as a parallelizable branch and the scheduler skips blocked ready nodes so later parallelizable stages can still batch.

@haasonsaas haasonsaas merged commit def7adb into main Mar 14, 2026
11 of 12 checks passed
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.

3 participants