Declare the tests tree as isolated_paths in the nightly experiment - #2539
Draft
dmorosanu wants to merge 1 commit into
Draft
Declare the tests tree as isolated_paths in the nightly experiment#2539dmorosanu wants to merge 1 commit into
dmorosanu wants to merge 1 commit into
Conversation
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.
Declares
$SKILLS_REPO_PATH/testsas agent-invisible in the nightly experiment, via the newsandbox.docker.isolated_pathsfield. Today the tests tree stays out of the agent's reach only as an implementation detail - the plugin bundle allowlist happens to excludetests/. This one-hunk change turns that into a checked contract: coder-eval enforces the declaration fail-closed at run start, so a future change to the bundle allowlist or to the mount set fails the run instead of quietly widening what the evaluated agent can read.How it works
The coder_eval docker runner resolves each declared path (environment variables and
~are expanded) and refuses to start the container if any agent-visible mount, or any entry in the plugin bundle manifest, falls under one of them. Private grader-side mounts are exempt, so the harness's own access is unaffected. A declared path that does not exist on the host has nothing to expose and passes. The declaration requiresdriver: docker(already set here) andagent_isolationenabled (the default). Full mechanism and algorithm: UiPath/coder_eval#96.Merge ordering
DO NOT MERGE until UiPath/coder_eval#87, #95, and #96 are merged and the coder-eval-runner VM's harness is updated. The docker config model is
extra="forbid", so a harness withoutisolated_pathssupport rejects the whole experiment file at load time and the nightly run fails before it starts. Draft status is intentional.Validation
Run from
tests/in this branch's worktree, against a coder_eval checkout onfeat/isolated-paths-declaration(the branch carrying #96), withSKILLS_REPO_PATHpointed at a skills checkout.Schema resolution -
coder-eval plan tasks/uipath-agents/coded/is_smoke/is_smoke.yaml -e experiments/nightly.yamlresolves the experiment and reportsAll tasks are valid!. Proves the edited YAML parses and resolves end to end.Merge survival - a script calling coder_eval's own
load_experiment+resolve_task_for_variant(the same 4-layer resolver the runner uses) against thedefaultvariant, for two task shapes:tasks/uipath-agents/coded/is_smoke/is_smoke.yaml, which sets its ownsandbox:block (template_sources)tasks/activation/activation.yaml, which sets nosandbox:block at allBoth resolve to
driver=docker,agent_isolation=True,image=skills-image:latest,extra_mounts=['~/.uipath:/.uipath:rw']andisolated_paths=['$SKILLS_REPO_PATH/tests']. Proves the defaults-level declaration survives the deep merge and is not dropped by a task that supplies its ownsandbox:block. No nightly task currently sets adocker:block of its own, so nothing overrides it.Negative control - the same
plancommand against a pre-feature coder_eval checkout (release 0.9.5) fails withdefaults.sandbox.docker.isolated_paths - Extra inputs are not permitted [type=extra_forbidden]. This is the concrete basis for the merge-ordering warning above.