Repository navigation
Expose the agent provider contract for engine extensions - #22
Draft
oznetmaster wants to merge 1 commit into
Draft
oznetmaster wants to merge 1 commit into
oznetmaster wants to merge 1 commit into
Conversation
Co-authored-by: OpenAI Codex <noreply@openai.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Expose
ITestAgentProviderinNUnit.Engine.Apiso an agent-provider extension can compile against public contracts without referencing the engine implementation assembly. This is the API half of the provider/server direction discussed in remote execution discussion #1909.This is deliberately a draft for architecture review, not a request for immediate merge or publication. The companion engine draft #1917 activates provider discovery and routing; this API addition alone does not enable remote execution.
Change
NUnit.Engine.Servicesnamespace alongsideITestAgentInfo.net462andnetstandard2.0) and package dependencies unchanged. Add no engine implementation, transport or server dependency.The companion engine removes its former internal definition, giving extensions and the engine one contract identity. Private prototype binaries compiled against the earlier engine-defined interface must be rebuilt; we are not claiming compatibility for that unpublished prototype ABI.
Validation
Against API
mainat84ecdf43bb850d45a7ea2e345c8d6eac9b630096, on Windows with .NET SDK 10.0.402:net462) and 69 passed / 0 failed onnet8.0.nunit.engine. Six boundary checks passed: API contract identity, no engine implementation reference from the extension, ordinary local packages declined, shared agency/extension identity, and no duplicate contract in the engine.The test package has a distinct local-only version (
4.0.0-beta.101.providerdraft.1); no public package or existing NuGet cache entry was replaced, and no package is being published by this PR. The companion engine describes combined execution testing separately.Questions for review
Is this the desired public contract assembly/namespace and interface shape? Should the capability-information inheritance and release semantics be adjusted before publishing them? What coordinated API/engine version and integration sequence would you prefer?
No version bump is proposed here until that sequence is agreed. The engine companion remains dependent on this contract becoming available; the existing public beta.101 package cannot build that dependent change.
Prepared by Neil Colvin (@oznetmaster) with OpenAI Codex.