Add dependency graph export - #3648
Conversation
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: a8fd05b8d4
ℹ️ 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".
Code reviewReviewed the diff, docs, and new tests. Overall this is a clean, well-integrated addition — the CLI parsing follows the existing Two independent bug/logic passes over the diff turned up no confirmed high-signal bugs. One candidate finding was investigated and ruled out as a false positive, noted below for transparency, plus one design suggestion worth considering. Investigated and ruled out
Suggestion: avoid the escape/un-escape-separator trick for graph labelsIn This works for today's inputs, but it's fragile because the escaping and the "protect this one substring" step are coupled by string-matching rather than by construction. If a module's A more robust approach: escape each label part independently, then join with the raw separator afterward, so there's no need to special-case unescape the joiner at all: private static string BuildLabel(DependencyGraphNode node, string separator, Func<string, string> escape)
{
var parts = new List<string> { node.Name };
// ...
return string.Join(separator, parts.Select(escape));
}This removes the "escape everything, then carefully un-break the one string I need intact" ordering dependency entirely — each part is escaped in isolation before the structural separator is introduced, so the separator can never collide with escaped user content regardless of what a category or skip-reason string contains. No other issues found. Nice addition — the programmatic ( |
Code reviewRe-reviewed at the current head ( Both findings from the previous review have been correctly addressed:
I re-read the rest of the current diff (CLI
No further issues found. Nice work addressing the feedback. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: b88bdef26a
ℹ️ 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".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 2d310dcf70
ℹ️ 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".
Code reviewRe-reviewed at the current head ( What changed
Design note worth considering: the registrar now does real work a second time on the GitHub summary path
In the normal run path, this is now called twice within the same pipeline execution:
No other issues found in the delta. Nice, well-tested fix for the history-skip case. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 1f1b091db0
ℹ️ 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".
Code reviewRe-reviewed at the current head ( What changed
Investigated, not flaggedI looked hard at three candidate issues in this delta and ruled each out after digging into the surrounding engine code (not just the diff):
Still open from the previous review (non-blocking)The memoization note from the last round about No high-signal issues found in this delta. Nice, well-tested fixes. |
|
Addressed both fresh P2 findings in 3a8b2bc and synced current main in �3f5a5f020. Post-sync validation:
Fresh threads remain open for the next review cycle. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: a3f5a5f020
ℹ️ 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".
Code reviewRe-reviewed at the current head ( What changed
Separately, Both correctly close the two Codex threads that were still open at the last review. Good, targeted fixes with matching regression tests. Issue found: docs are now out of sync with the
|
|
Addressed both fresh P2 findings in c4991a197 and synced current main in d9d5757. Post-sync validation:
Fresh threads remain open for the next review cycle. |
Code reviewRe-reviewed at the current head ( Docs fix confirmedThe What changed
Issue found: evaluating
|
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: d9d5757653
ℹ️ 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".
|
Addressed the fresh P1/P2 findings in b874e7b. Validation:
Fresh threads remain open for the next review cycle. |
Code reviewRe-reviewed at the current head ( Latest commit (
|
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: b874e7b96b
ℹ️ 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".
|
Addressed the two fresh graph-planning P2 findings in 55bfb8f. Validation:
The four prior threads were resolved after this later review cycle confirmed their fixes. Today's fresh threads remain open for the next cycle. |
Code reviewRe-reviewed at the current head ( Prior findings: confirmed fixed
Residual (narrowed, not eliminated): sync
|
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 55bfb8f2ca
ℹ️ 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".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 69585a3458
ℹ️ 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".
Code reviewRe-reviewed at the current head ( What changed, and why it matters
This fixes a real correctness bug, not just a cache-hygiene nit. The new test The Validation
Prior open itemsThe architectural note from the previous review (extracting a shared No new high-signal bugs in this delta. Good, well-tested fix for a genuine latent-cache-poisoning bug. |
|
Addressed both graph findings in 1988853: planning history resolution is mutation-free, and registered dynamic dependencies are exported. Validation: DependencyGraphExporterTests 15/15; related registrar/provider tests 2/2; core Release build clean; changed-file format clean. |
Code reviewRe-reviewed at the current head ( What changed, verified correct"Keep graph planning from completing runtime module results" (P1). "Include registered dynamic dependencies in exported edges" (P2). Both fixes are targeted, match the reported failure modes, and have matching regression tests. I independently re-read
No new issues found in this delta. This PR has been through an unusually thorough review cycle (many rounds of |
|
Warning Review limit reached
Next review available in: 3 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (62)
Comment |
|
Triggered a fresh workflow at a4c52b2 with an empty CI commit. Prior run 31334755476 was externally cancelled; analyzer and Windows only failed because the cancelled fast-fail lane never passed. No code changed. |
Code reviewRe-reviewed at the current head ( No new bugs found
Follow-up on the architectural concern from the 2026-08-05 reviewThat review flagged So this fragility is confined to an opt-in diagnostic feature, not a correctness risk for real pipeline runs — I'm downgrading it from "architectural concern worth blocking on" to a non-blocking follow-up. The suggestion still stands as worth tracking separately: given the repo already has Minor, non-blocking
VerdictReady to merge as-is. Test coverage is extensive (126 tests in |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: a4c52b257e
ℹ️ 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".
Code reviewRe-reviewed at the current head ( What changed, verified correctThis commit extends the pipeline's existing "planning-safe" pattern (already used by
Both new exception types are caught exactly where needed: New tests ( No new issues foundNo bugs or CLAUDE.md violations in this delta. Observation (non-blocking)This PR has now been through 80+ review rounds over the past ~8 days, several ending in a "ready to merge" verdict before another fix commit followed. If an automated fix/review loop is driving this, it may be worth having a human confirm this is still converging as intended rather than continuing indefinitely. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: b0bc22e97d
ℹ️ 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".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 3ae5d2caac
ℹ️ 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".
|
Codex Review: Didn't find any major issues. 🚀 Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
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". |
Code reviewReviewed at the current head ( Given this PR has already been through 80+ review rounds focused heavily on correctness of the new planning-safe machinery (escaping, side-effect isolation, exception routing), I focused this pass on architecture/design rather than re-litigating already-settled correctness ground. Two things stood out that hadn't come up in the prior threads I could see: 1. Three independent copies of "build a planning-scoped
|
|
CI audit: exact-head Codex and Claude reviews are clean with zero unresolved threads. Ubuntu, Windows, and macOS all fail on the same unrelated default-branch compile defect: |
|
Rebased the existing four commits cleanly onto current main and refreshed the branch at bef25d0. This is a no-content-change rebase; core Release build succeeded with 0 warnings and 0 errors. Prior exact-head reviews were clean and the old CI failures were the now-fixed default-branch validator defect. @claude review @codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: bef25d0398
ℹ️ 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".
|
CI diagnosis: Ubuntu failed only in SpectreResultsPrinterTests shared-console races (LocalOutput_DoesNotAddModuleResultsGroup and GitHubOutput_GroupsOnlyModuleResultsTable); no dependency-graph export test failed. Reran failed jobs for run 31374508874. |
|
Updated exact head bfec8fb for the two current review findings. Focused PipelineCommandLineTests: 77/77. Please re-review current head. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: bfec8fb379
ℹ️ 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".
The previous workflow was externally cancelled. Analyzer and Windows gates failed only because the fast-fail lane had no passing result. Refs #3648
|
Rebased onto current main and pushed exact head 06c072e. Rebase was conflict-free with no content edits; CI is rerunning. |
|
Ubuntu failed while the macOS matrix job remains active; annotations show the shared RunCoreUnitTestsModule failure chain. Final failed logs and the permitted single-job rerun are unavailable until completion. No code change. |
|
Ubuntu's sole failure is unrelated RunReportTests.RunHistoryOperationsTimeoutWhenStoreIgnoresCancellation timing out. This PR changes dependency-graph export, not run-history timeout behavior; Windows, macOS, analyzers, AOT, and static checks pass. Triggering the exact head's single allowed failed-job rerun for run 31386374714; no code change. |
|
Current head 06c072e has all required checks green, including the permitted Ubuntu failed-job rerun; zero unresolved review threads. The visible Codex review is stale at bfec8fb and Claude's architectural review predates the current implementation history.\n\n@codex review exact head 06c072e\n\n@claude review exact head 06c072e, reassess the current implementation against the earlier planning-architecture concern, and submit approval if clean. |
|
Codex Review: Didn't find any major issues. 🎉 Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
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". |
|
Addressed both current exact-head findings in
Validation: @codex review exact head 1e7107f @claude review exact head 1e7107f and submit approval if clean. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 1e7107f66a
ℹ️ 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".
| } | ||
| } | ||
|
|
||
| var isResolved = !hasDeferredConditions; |
There was a problem hiding this comment.
Defer groups that may contain deferred alternatives
When a deferred RunIfAny attribute implements IGroupedConditionAttribute and shares its group type with a planning-safe alternative that evaluates false, attributes contains only the safe alternative, so continuing past this line evaluates the incomplete group and returns a definitive skip. Runtime evaluation includes the deferred alternative, which may evaluate true and make the module runnable, causing graph export to report the wrong skip state; deferred condition metadata must distinguish group membership, or affected groups must remain unresolved.
Useful? React with 👍 / 👎.
Closes #3539
Adds canonical dependency-graph export in Mermaid, DOT, and JSON;
--graphCLI support; builder/pipeline APIs; annotated nodes; GitHub step-summary flowchart; documentation and regression coverage.Validation:
ModularPipelines.slnRelease build: 0 warnings/errorsModularPipelines.GitHub.slnRelease build: 0 warnings/errors