Skip to content

Conversation

Copy link
Contributor

Copilot AI commented Dec 23, 2025

PR #284 discussion identified the need to formally document how orchestration analyzers discover orchestrations and follow method call chains.

Changes

Added comprehensive documentation to src/Analyzers/CONTRIBUTING.md covering:

  • Orchestration Discovery: How the analyzer identifies three orchestration patterns (Durable Functions with [OrchestrationTrigger], TaskOrchestrator classes, and AddOrchestratorFunc lambdas)

  • Method Probing Algorithm: Recursive traversal with cycle detection, cross-tree analysis, and concurrent execution support

  • Probing Capabilities: Direct calls, static/instance methods, async methods, lambdas, method references, partial classes, recursive methods

  • Probing Limitations: Cannot follow interface/abstract/virtual method calls, external libraries, reflection, or DI-resolved instances

  • Diagnostic Message Format: Explicitly identifies the violating method, the specific violation, and the invoking orchestration

Example limitation documented:

// Will NOT be analyzed
IHelper helper = GetHelper(); // implementation unknown
helper.DoSomething(); // analyzer cannot follow this call

This provides the specification needed for consistent analyzer development and explains expected behavior to users.

Original prompt

This section details on the original issue you should resolve

<issue_title>Roslyn Analyzer: document how orchestrations are analyzed and the method probing is executed.</issue_title>
<issue_description>Please see the discussion in #284</issue_description>

Comments on the Issue (you are @copilot in this section)


💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.

Co-authored-by: YunchuWang <12449837+YunchuWang@users.noreply.github.com>
Copilot AI changed the title [WIP] Document how orchestrations are analyzed in Roslyn Analyzer Document orchestration discovery and method probing behavior in analyzers Dec 23, 2025
Copilot AI requested a review from YunchuWang December 23, 2025 21:05
@YunchuWang YunchuWang marked this pull request as ready for review January 6, 2026 01:53
Copilot AI review requested due to automatic review settings January 6, 2026 01:53
Copy link
Member

@YunchuWang YunchuWang left a comment

Choose a reason for hiding this comment

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

LGTM

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR adds comprehensive documentation to the src/Analyzers/CONTRIBUTING.md file that explains how Roslyn analyzers discover orchestrations and analyze method call chains in the Durable Task framework.

Key Changes:

  • Documents three orchestration discovery patterns (Durable Functions, TaskOrchestrator classes, and Func orchestrations)
  • Explains the recursive method probing algorithm with cycle detection
  • Lists capabilities and limitations of the method call analysis
  • Provides code examples and diagnostic message formats

@YunchuWang YunchuWang merged commit 89edb51 into main Jan 6, 2026
12 checks passed
@YunchuWang YunchuWang deleted the copilot/document-orchestration-analysis branch January 6, 2026 17:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Roslyn Analyzer: document how orchestrations are analyzed and the method probing is executed.

3 participants