Repository navigation
Default repository evals to native Docker with Vally 0.21 - #17
ronniegeraghty wants to merge 3 commits into
Conversation
Document the explicit native Docker backend without changing execution defaults. Keep registry-specific tarball endpoints out of npm's generated lockfile. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Preserve valid behavioral failures and document unsupported plugin Run and canonical bootstrap limits. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
There was a problem hiding this comment.
🟡 Changes recommended
The lockfile weakens dependency integrity by dropping SHA-512 pins, while unresolved Node-version and regression-test issues affect supported installs, plugin customizations, and launcher safeguards.
3 open issues
What changed in this PR
Moves repository eval tooling to Vally 0.21.0 and defaults execution to native Docker, while keeping paid runs manual-only. Plugin source and versions remain unchanged.
Changes:
- Configures Docker execution with offline deterministic grading.
- Adds Docker preflight checks and three model-free backend-selection and fail-closed regressions.
- Documents authentication, backend precedence, isolation limits, cleanup, and the pinned Evals plugin’s unsupported Run entrypoint.
| File | Description |
|---|---|
README.md |
Introduces Docker requirements, defaults, and native CLI guidance. |
package.json |
Pins Vally CLI to 0.21.0. |
package-lock.json |
Updates Vally and transitive dependencies; removes registry-specific tarball URLs. |
docs/checks-and-evals.md |
Details Docker setup, authentication, overrides, execution boundaries, and lockfile maintenance. |
.vally.yaml |
Selects Docker by default and disables grading network access. |
.github/workflows/evals.yml |
Adds Docker/Compose preflight checks and removes host executor settings. |
.github/scripts/docker-defaults.test.mjs |
Adds model-free checks for Docker inheritance and failure without Docker. |
Review effort: Max (auto)
Gate retained reviewer coverage, reject all launcher backend overrides, align the Node minimum with Vally, and restore 109 original SHA-512 hashes for unchanged versions without reintroducing registry URLs. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
|
Addressed the integrity warning in review PRR_kwDOVRlbx88AAAABXe7pXA in 438fea4, including the overview-only finding. Comparing the PR base, the saved pre-URL-removal lockfile, and the reviewed head showed 109 unchanged-version packages had already changed from SHA-512 to SHA-1 during the dependency upgrade. The native omit-lockfile-registry-resolved step itself changed no other package fields. The configured registry currently omits dist.integrity for @types/debug@4.1.13 and supplies dist.shasum, which exactly matches the reviewed SHA-1 value. I restored all 109 SHA-512 values from the base for those exact unchanged versions. All 218 dependency entries now have SHA-512 integrity; no package version or other dependency-entry metadata changed, and zero registry-specific resolved URLs were reintroduced. The earlier preservation statement was too narrow: URL stripping preserved the initial upgrade, but that upgrade had already weakened these hashes. Documentation now calls out this mirror fallback. The three inline findings were also fixed, replied to, and resolved. Model-free lint, five focused tests, catalog consistency, diff checks, and the checksum audit pass. New-head GitHub CI and the next completed Copilot review are still pending; no paid evals or Docker operations were run. |
| export GH_TOKEN="$(gh auth token)" | ||
| npm run eval -- --eval-spec evals/pr-description/skills/pr-description/eval.yaml --max-retries 0 | ||
| unset GH_TOKEN |

What changed
Upgrade the pinned Vally CLI to
0.21.0and default repository evals to its native Docker backend in.vally.yaml, with offline deterministic grading (grade-network: none). Native CLI/npm runs and the manual Actions launcher share the configuration. Paid evals remain manual-only; no custom runner or repository Dockerfile is added.Document Linux Docker/Compose and authentication requirements, native backend precedence, separate task/grade roles, and failure/cleanup limits. The pinned Evals plugin Run reader rejects this project default before execution: it is currently unsupported here, not a local fallback. Raise the repository Node minimum to
22.15.0, matching Vally (24+ recommended).Keep the lockfile registry-neutral using npm's documented
omit-lockfile-registry-resolvedoption. Copilot review identified that the earlier dependency upgrade had already downgraded 109 unchanged-version packages from SHA-512 to SHA-1 before URL removal. Restore their exact base SHA-512 values: all 218 dependency entries now have SHA-512 pins, with no version or other dependency-entry metadata changes and no registry-specific URLs. The configured mirror's metadata omitsdist.integrityfor a checked affected package and supplies the matching SHA-1dist.shasum; URL stripping itself changed no other fields. Document this fallback explicitly.Version and changelog
No plugin source or plugin version changes. Remove only the failed, unpublished
pr-description0.1.1 candidate; preserve published 0.1.0 source and changelog history. Behavioral failures remain for future PRs. The host Copilot1.0.98pin and marketplace remote pins are unchanged.Checks
npm run lint: six skills and seven eval definitions passed.git diff --check, and a full 218-entry integrity/metadata audit passed. The full retained model-free script suite also passed on the preceding head.438fea4; its overview-only integrity warning was also fixed and answered. Cycle two is requested, not yet reported as complete.Previously approved native full-suite execution
Run
native-docker-21-full-default-20261112T020833014Zcompleted once: 7 evals / 19 cases; 12 PASS, 7 behavioral FAIL; zero execution errors, zero grading errors, zero retries, zero exclusions. Every selected case completed and was graded. A behavioral FAIL is valid evidence, not an infrastructure error; the manual workflow's existing--require-passstill requires behavioral passes.These results belong to the recorded pre-removal snapshot, including the failed unpublished routing-frontmatter candidate, not a paid rerun of the final PR head. Eval bodies, prompts, graders and thresholds were unchanged. Raw failed candidate evidence remains retained outside the contribution; this is not a passing skill evaluation.
d4c7babd2bb63367c66cd6b5e6df8307ccc46a0463e093fb9499257513704c32.474875a6c7b150c630fa0dff20b6963eff0cd22f9a7b02042d301e7df5c47b2c.outputs/2026-11-12T02-31-32-422Z/eval-results.md, with rawresults.jsonlin that run folder.0.21.0, actual container Copilot1.0.109, modelclaude-haiku-5.5. The host CLI pin is distinct. Sixteen skill cases exposed 15 skill names (12 catalog and three built-ins); three independent reviewer cases exposed the three built-ins and actual custom agent.sha256:654c029a370cb5cb0bce6cea326fc47cdeda3eaa67e89f20ff3f02566f98723d, built from the official 0.21 recipe with a credential-free npm feed build-argument workaround. Explicit--backend dockerand repeated offline-grade policy were required. This proves native Docker full-suite execution, not bare-default live image bootstrap.Risk
No merges or auto-merge changes are requested.