feat(agent): add native invocation lifetime context - #3696
Closed
fernandol-nvidia wants to merge 6 commits into
Closed
fernandol-nvidia wants to merge 6 commits into
fernandol-nvidia wants to merge 6 commits into
Conversation
…ation Signed-off-by: Fernando Luo <fernandol@nvidia.com>
Signed-off-by: Fernando Luo <fernandol@nvidia.com>
Signed-off-by: Fernando Luo <fernandol@nvidia.com>
Signed-off-by: Fernando Luo <fernandol@nvidia.com>
Signed-off-by: Fernando Luo <fernandol@nvidia.com>
Signed-off-by: Fernando Luo <fernandol@nvidia.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.
Gym's Codex and Claude Code agents need a per-invocation attachment that sees final launch inputs, stays open until the native child is reaped, and can fail preparation before launch. This adds a default no-op
NativeInvocationContextseam around each native execution. It also retains the subprocess handle if cancellation lands during spawn, then kills and reaps that child before unwinding the context.This PR is stacked on #3689, which provides the shared process-tree cleanup and is included in this branch until that prerequisite merges. No public agent configuration changes are required. The seam does not alter benchmark scoring or task correctness.
Validation: 112 focused Gym tests passed from source and again against the rebuilt, installed wheel;
pre-commit run --all-filespassed. Eval also exercised the seam with a real local Shipyard MCP binary and controlled native process. A model-backed smoke rollout remains N/A here because this contract is the invocation lifetime boundary and no model-backed provider was available locally. No issue is linked because this is the prerequisite for the in-progress Shipyard Eval invocation integration.