Skip to content

fix(tools): open solution asynchronously to avoid RPC timeout - #110

Merged
CalvinAllen merged 1 commit into
CodingWithCalvin:mainfrom
zdomokos:fix/tools/solution-open-async-load
Sep 21, 2026
Merged

CalvinAllen merged 1 commit into
CodingWithCalvin:mainfrom
zdomokos:fix/tools/solution-open-async-load

Conversation

@zdomokos

@zdomokos zdomokos commented Sep 20, 2026 •

Copy link
Copy Markdown
Contributor

dte.Solution.Open() is synchronous and blocks the UI thread until the whole solution finishes loading. Awaiting it inline blocked the RPC call until load completion, which exceeded MCP client timeouts on non-trivial solutions and surfaced as a generic 'An error occurred invoking solution_open' instead of a real result.

Mirrors the async pattern already used for build_solution: validate and normalize the path, then fire the actual load off without awaiting it so the tool call returns immediately. Callers can poll solution_info to see when the new solution has finished loading.

Description

Type of Change

  • feat - New feature
  • fix - Bug fix
  • docs - Documentation only
  • refactor - Code change that neither fixes a bug nor adds a feature
  • test - Adding or updating tests
  • chore - Maintenance tasks
  • ci - CI/CD changes

Related Issues

Checklist

  • My code follows the project's code style
  • I have tested my changes locally
  • I have updated documentation if needed
  • My commits follow the conventional commit format
  • This PR has a descriptive title using conventional commit format

Screenshots (if applicable)

Additional Notes

dte.Solution.Open() is synchronous and blocks the UI thread until the
whole solution finishes loading. Awaiting it inline blocked the RPC
call until load completion, which exceeded MCP client timeouts on
non-trivial solutions and surfaced as a generic 'An error occurred
invoking solution_open' instead of a real result.

Mirrors the async pattern already used for build_solution: validate
and normalize the path, then fire the actual load off without
awaiting it so the tool call returns immediately. Callers can poll
solution_info to see when the new solution has finished loading.
@CalvinAllen
CalvinAllen merged commit 7e15ee7 into CodingWithCalvin:main Sep 21, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants