Repository navigation
Conversation
An Environment Server such as single_agent_turn seeds each resources server with a typed ResourcesSeedSessionRequest and releases it with /close_session. workplace_assistant accepted only an Agent's /run seed and returned an untyped response, so it could not be fronted by single_agent_turn_legacy. - seed_session accepts the typed body next to the /run body. Typed sessions are keyed by resources_session_id: a repeated seed keeps the tables the tool calls changed, a seed bound to another episode or a closed session gets 409, and task_data that is not a task gets 422. - close_resources_session releases the tables by resources_session_id (no cookie needed), is idempotent, and fences late seeds with ResourcesSessionFence. - verify keeps a typed session's tables for its close; a /run session is still released at verify. A verify for a session the server no longer holds returns a masked lost-session sample, and a tool call for one gets 404 (was 400). - retire_session_state shares the release helper. Refs GYMINT-231. Signed-off-by: yaoyu-33 <yaoyu.094@gmail.com> Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Contributor
Author
|
/ok to test 932a186 |
Contributor
|
🌿 Preview your docs: https://nvidia-preview-pr-5486-5688115e135b.docs.buildwithfern.com/nemo/gym |
… path List the typed seed first, as the path new configs use, and describe the Agent /run seed as the path kept so the legacy_agent configs run unchanged until they switch. Signed-off-by: yaoyu-33 <yaoyu.094@gmail.com> Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Contributor
Author
|
/ok to test 4810f54 |
yaoyu-33
marked this pull request as ready for review
November 3, 2026 18:33
Signed-off-by: yaoyu-33 <yaoyu.094@gmail.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: yaoyu-33 <yaoyu.094@gmail.com>
…ng it The seed recorded the session's episode and task before get_tools built its tables. get_tools reads CSVs from disk and can fail (EMFILE under load); the seed then answered 500 but kept the binding, so the caller's retry took the repeated-seed path and returned 200 for a session with no tables, whose tool calls all got 404 and whose verify was masked. The tables are now built first. Adds a test where get_tools fails once (fails on the previous code), makes the 422 test check that no binding is left, and moves the conformance import to nemo_gym.server_runtime.testing. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: yaoyu-33 <yaoyu.094@gmail.com>
…ng it Verify releases a /run session's tables, and the HTTP client sends a verify again when its connection drops, even after the server answered. The resend found no tables and came back masked, where main scored it. The score reads only the request, so verify now remembers the /run sessions it released for session_close_retry_window_seconds and scores a resend. A /run verify with no seed, and any verify of a closed typed session, is still masked. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: yaoyu-33 <yaoyu.094@gmail.com>
Contributor
Author
|
/ok to test fac079f |
ananthsub
reviewed
Nov 3, 2026
Signed-off-by: yaoyu-33 <yaoyu.094@gmail.com>
The /run seed guard refused any body sharing a key with ResourcesSeedSessionRequest, so a dataset row with a scalar task_id got 422 on every seed. Treat a body as a malformed typed seed only when it names resources_session_id or carries typed episode_id and task_id objects, the rule #5480 settled on. Also import check_resources_session_contract from nemo_gym.server_runtime, which main's public-API test requires, and state verify's no-await invariant next to its retry bookkeeping. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: yaoyu-33 <yaoyu.094@gmail.com>
Contributor
Author
|
/ok to test 77a7ab4 |
Contributor
Author
|
/ok to test a5e687d |
This was referenced Nov 5, 2026
7 tasks done
Signed-off-by: yaoyu-33 <yaoyu.094@gmail.com>
…antics Signed-off-by: yaoyu-33 <yaoyu.094@gmail.com>
Signed-off-by: yaoyu-33 <yaoyu.094@gmail.com>
yaoyu-33
changed the base branch from
main
to
yuya/shared-resources-lifecycle
November 5, 2026 23:29
Signed-off-by: yaoyu-33 <yaoyu.094@gmail.com>
Signed-off-by: yaoyu-33 <yaoyu.094@gmail.com>
Signed-off-by: yaoyu-33 <yaoyu.094@gmail.com>
…ose wording Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Signed-off-by: yaoyu-33 <yaoyu.094@gmail.com>
Contributor
Author
|
/ok to test a1186a9 |
…ADME The README now describes only the typed Environment Server path. The cookie seed still works unchanged; the PR description records that compatibility. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: yaoyu-33 <yaoyu.094@gmail.com>
Contributor
Author
|
/ok to test 5688115 |
This branch was previously deployed
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.
Serve typed workplace sessions and delegate common seed, verification cleanup, close and retirement to #5709. Preserve table construction/mutations and checkpoint behavior, using public identity restoration APIs instead of base-private dictionaries.
Depends on #5709 (which depends on #5708). The child diff contains only this environment and its related documentation/configuration; shared implementation is reviewed once in the dependency. No separate issue is needed for this focused migration of an existing resources server.
gym eval reverify ++force=trueof workplace rows, which main rescored by replay, is now masked (REVERIFY_MODE = UNSUPPORTED; the guard already refused the non-forced form as UNKNOWN). A tool call without a live session is now 404failure_kind: session_lost(main: 400). This migration does not reconstruct workplace databases offline.Request-scored: retains an empty marker (
retain(None)) because the request already carries the answer and grading data.Validation on
a1186a92e2bcf924fc1447ec2e5cf5cd26d4364d, Python 3.13.14, with this checkout first on PYTHONPATH and NEMO_GYM_EXTRA_ROOTS pointing to it:python -m pytest -o addopts='' -o log_cli=false --import-mode=importlib --tb=short -q resources_servers/workplace_assistant/tests: 78 passed.ruff check,ruff format --checkandgit diff --checkpassed on the changed files. The private guardwords catalog was unavailable, so that scan was skipped. New commits include DCO sign-off.Real-model smoke on preceding migration revision
618012d86bb37efa3e3388fee5426833aa4d2520(shared core4e92d4891) usednvidia/nemotron-3.5-lightning-30b-a3b, Python 3.13.14 and the stock workplace task through real Gym HTTP applications. Typed and cookie paths each completed three model calls, scored 1.0 and released all workplace tables and identity state; lifecycle checks passed. The cookie run recovered from provider 429 responses within the existing bounded retry policy. Loaded source hashes matched that revision. Checkpoint restore/adoption and MCP validation are covered by regressions; these two rollouts do not claim model-driven checkpoint recovery or benchmark parity. Retry and cleanup paths at this head are covered by unit tests only.These targeted checks do not replace the repository CI matrix or approval of the current head.