Repository navigation
feat(nooa): wire sandbox execution into agent sessions - #3849
Conversation
|
Auto-sync is disabled for draft pull requests in this repository. Workflows must be run manually. Contributors can view more details about this message here. |
a3e7106 to
41ad22c
Compare
79406b4 to
c6d5441
Compare
c6d5441 to
fafe2e7
Compare
fafe2e7 to
b108975
Compare
Signed-off-by: Nikhil Deshmudre <nikhil.deshmudre@gmail.com>
Signed-off-by: Nikhil Deshmudre <nikhil.deshmudre@gmail.com>
Signed-off-by: Nikhil Deshmudre <nikhil.deshmudre@gmail.com>
Signed-off-by: Nikhil Deshmudre <nikhil.deshmudre@gmail.com>
Signed-off-by: Nikhil Deshmudre <nikhil.deshmudre@gmail.com>
Signed-off-by: Nikhil Deshmudre <nikhil.deshmudre@gmail.com>
Signed-off-by: Nikhil Deshmudre <nikhil.deshmudre@gmail.com>
Signed-off-by: Nikhil Deshmudre <nikhil.deshmudre@gmail.com>
Signed-off-by: Nikhil Deshmudre <nikhil.deshmudre@gmail.com>
Signed-off-by: Nikhil Deshmudre <nikhil.deshmudre@gmail.com>
Signed-off-by: Nikhil Deshmudre <nikhil.deshmudre@gmail.com>
Signed-off-by: Nikhil Deshmudre <nikhil.deshmudre@gmail.com>
Signed-off-by: Nikhil Deshmudre <nikhil.deshmudre@gmail.com>
Signed-off-by: Nikhil Deshmudre <nikhil.deshmudre@gmail.com>
Signed-off-by: Nikhil Deshmudre <nikhil.deshmudre@gmail.com> # Conflicts: # responses_api_agents/nooa_agent/tests/test_config.py
yaoyu-33
left a comment
There was a problem hiding this comment.
Thanks for the follow-up. All six earlier comments are addressed: the runtime archive is now built in a thread (with a test that the loop stays live), the model URL uses the public helper, the timeout defaults are in nooa_agent.yaml and pinned to the Python defaults, the README covers the prerequisites and the embedded-mode change, the seed wiring and failed-connect cleanup are tested, and the new 409 for a close-interrupted caller looks right. I ran the nooa suite locally on this head (412 passed, 8 skipped: the Linux-only installer tests).
One small comment below on the "180 s headroom" wording. Smaller notes that don't need action here: prepare_nooa_runtime still does some synchronous work on a cold install (gunzipping the freshly built archive, hashing the Python tarball), which is minor next to what you moved off the loop, and the sandbox-runner constructor still defaults timeout=21600 while the config default is 21420.
yaoyu-33
left a comment
There was a problem hiding this comment.
Approving. The inline comment on the "180 s headroom" wording is non-blocking.
Signed-off-by: Nikhil Deshmudre <nikhil.deshmudre@gmail.com>
Signed-off-by: Nikhil Deshmudre <nikhil.deshmudre@gmail.com>
|
🌿 Preview your docs: https://nvidia-preview-pr-3849-a174558e4afa.docs.buildwithfern.com/nemo/gym |
init-nikhil
left a comment
There was a problem hiding this comment.
CODEX SELF REVIEW
Reviewed head 63e6886bd11d269cf273e76b41d863fd5cf508f5 against actual base 8041d191061d5c49d291b793ad8962f2090c41f4 using a fresh official codex exec review process.
No actionable regressions were identified in the diff and surrounding lifecycle code. Test validation was blocked because the available environment resolves editable imports to a different checkout.
This is a source-review result, not an approving review or a substitute for the separate validation and CI gates.
init-nikhil
left a comment
There was a problem hiding this comment.
CODEX SELF REVIEW
Reviewed head 63e6886bd11d269cf273e76b41d863fd5cf508f5 against actual base f36e126547866601bee9c0671c9b59484ef83723 using a fresh official codex exec review process with gpt-6-astra. This invocation selected the model advertised by the refreshed account catalog after the configured model was rejected; saved Codex configuration was unchanged.
No actionable regressions were identified in the sandbox-session integration, bounded cleanup, or background checkpoint changes. This assessment is based on code and test inspection; tests and model smoke rollouts were not executed.
This is a source-review result, not an approving review or a substitute for the separate validation and CI gates.
|
🔄 Merge queue validation started! You can track the progress here: https://github.com/NVIDIA-NeMo/Gym/actions/runs/40612821419 |
Signed-off-by: Nikhil Deshmudre <nikhil.deshmudre@gmail.com>
|
Merge-queue compatibility fix in Current main renamed the supervisor entrypoint from Validation: reproduced the original TimeoutError on exact failed queue commit |
|
🔄 Merge queue validation started! You can track the progress here: https://github.com/NVIDIA-NeMo/Gym/actions/runs/40625821519 |
Tests and validation
Head
63e6886bd11d269cf273e76b41d863fd5cf508f5; actual main basef36e126547866601bee9c0671c9b59484ef83723. The existing stack tracks this work; no separate issue is needed.Retained exact-head Linux evidence passed 250 focused tests and normal-completion, SIGKILL and active-close session/worker/collector cases. The normal run made two real model calls and earned synthetic fixture reward 1. The original verifier assertion failure remains recorded; a separate offline correction inspected the same rollout without repeating inference. This live execution used base
21a63e49; it is historical evidence, not a new live run on current main.The isolated current-main merge preview has tree
e7b986e17c10b14ea43619fff6483aa7b03786d6. Its 1,545 focused tests passed: 1,139 model/converter/streaming cases, 304 capture/fingerprint cases and 102 NOOA boundary cases. A two-turn scripted replay through the current converter and Gym adapter preserved function IDs, arguments, response envelopes, cookies and capture order. These were recorded model responses, not new inference. All 7,749 tracked preview files remained unchanged.The runtime archive was rebuilt because ten shared inputs changed; its fingerprint differs from the historical head-only runtime. Fresh production installation in an isolated Linux arm64 container passed, seven installed-module hashes matched the preview, and the next preparation reused the same runtime generation without reinstalling. This installation used a verified cached copy of the pinned Python archive. Uncached download remains blocked: the inherited shared aiohttp downloader rejected GitHub's oversized CSP header. The original failure is retained; no shared-source repair was made. Both owned containers were removed and their absence verified. This does not establish x86_64, musl, remote egress, TB4 or SLURM behavior.
The 21,420-second worker ceiling is below the 21,600-second episode deadline; it reserves no setup or verification time. The episode also covers setup, close and verification; final cleanup has its own budget. This includes the approved asynchronous checkpoint writer left unpublished when #3850 merged. Projection/copy remains synchronous, and abrupt termination can lose the latest queued snapshot. Historical local Linux transport evidence does not prove cloud provisioning.
pre-commit run --all-filespassed at this unchanged head. The official Codex review against current main completed with no actionable findings, using a disclosed per-invocation GPT-6 Astra selection after the configured model was rejected; saved configuration was unchanged. The review inspected code and tests but ran no tests itself. Independent current-base E2E applicability is BLOCKED on uncached production Python download. It verified the current and historical artifact hashes, source trees, replay, installed modules and native dependency; it did not repeat tests or inference. The historical live cases, current-main tests, scripted replay and cached-runtime installation retain their individual passing results. No introduced NOOA defect was established, but the inherited shared-downloader prerequisite remains unsatisfied. No final verification-success or readiness claim is made.CI snapshot (2026-10-24 05:47 UTC) on this head: failing:
Harness conformance (non-blocking) / kilocode conformance probes;Harness conformance (non-blocking) / Publish check;Harness conformance (non-blocking). Current checks. The all-green readiness gate remains unmet; no final verification-success post or new review request is implied.