Skip to content

JsonRPC protocol epic issue #5490

Closed as not planned
Closed as not planned

Description

Initialize request

  • initialize request has debuggerProvider capability, which the server doesn't make use of at all. This is also because the server never sends client/launchDebugger and client/attachDebugger requests. Should we remove those requests for now?
  • batchLoggingSupport is documented but not implemented both in Test Explorer and server. I think this should be removed from the documentation, until it's needed and implemented.
  • Client capabilities documents attachmentsSupport, but Test Explorer actually sends attachmentsProvider (always sends it as true). The server doesn't care about either of the two. I think this can be removed altogether.
  • Client capabilities documents callbackProvider, but this is not implemented both in TE and server.
  • On TE side, multipleConnectionProvider is part of client capabilities. On server side, it's part of server capabilities. And is not documented in both.

Initialize response

  • Both server and client has ProcessId as part of initialize response, which is not documented.
  • The documented capabilities are experimental_multiRequestSupport and attachmentsProvider.
    • TODO for me: Validate how experimental_multiRequestSupport is used.
    • Both client and server use attachmentsSupport, not attachmentsProvider
    • supportsDiscovery, vstestProvider, multipleConnectionProvider are part of server capabilities on the server implementation, but not documented (well, vstestProvider is documented in an extension document, but no mentioned in the main one)

TODO: Review the rest. So far I reviewed only the initialize part.

Activity

  1. Evangelink commented on May 13, 2026

    @Evangelink
    Member

    Thank you for the thorough audit, Youssef Fahmy (@Youssef1313). In an ideal world we would go through each of these discrepancies and align the documentation with the implementation (or vice versa). However, given our current team capacity and investment priorities, we've decided not to actively pursue this unless concrete problems surface — for example, if a third-party consumer hits an issue due to one of these mismatches.

    If any of these points does cause a real-world problem down the road, we're happy to revisit and address it on a case-by-case basis. Closing as won't fix for now.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area/mtpMicrosoft.Testing.Platform core library.area/server-mode-jsonrpcMTP server mode - JSON RPC transport.

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions