Skip to content

ci: add harness conformance probes and a P0 check - #4192

Merged
lafrancef merged 5 commits into
mainfrom
flafrance/harness-conformance-ci-20261007
Oct 8, 2026
Merged

lafrancef merged 5 commits into
mainfrom
flafrance/harness-conformance-ci-20261007

Conversation

@lafrancef

@lafrancef lafrancef commented Oct 7, 2026 •

Copy link
Copy Markdown
Contributor

Follow-up to #3766: run its existing P0 harness conformance suite in Gym CI and publish Harness conformance P0 directly in the PR checks list.

Approved PR mirrors and merge-queue revisions probe affected registered harnesses; shared code and dependency changes select all four. Probe jobs install pinned runtimes and retain summaries, logs, and evidence. A separate reporting job publishes a failed P0 check for conformance violations or unavailable measurements, and success when all selected harnesses pass. The check includes failed scenario counts, the first failing assertion or execution issue per harness, copy-pastable local rerun commands, and direct links to the evidence artifacts. After publication, the reporting job also fails if P0 fails or a probe job fails or is cancelled, making the outcome visible in the workflow job list. Only that reporting job receives permission to write checks.

The P0 check is optional until maintainers add its fixed name to the repository's required checks; the existing Nemo_CICD_Test gate remains independent. Scheduled and manual CI runs exercise all harnesses. Documentation-table refresh is deferred.

The probes were exercised on GitHub-hosted Linux in this CI run. Replaying that evidence through the new reporter produces 1 passed, 2 failed, 1 unavailable: Pi passes, Codex and OpenCode fail conformance, and Hermes's terminal-model-error scenario yields no rollout. The updated CI run published the P0 check with that same breakdown. The required CI aggregate passed; Hermes's probe job correctly reports the execution error separately.

@lafrancef
lafrancef requested a review from a team as a code owner October 7, 2026 20:10
@lafrancef lafrancef added ci CI, automation, test queue, or workflow infrastructure work area:ci CI workflows, test routing, and repository automation needs-review PR is ready for code review and waiting on a reviewer labels Oct 7, 2026
@copy-pr-bot

copy-pr-bot Bot commented Oct 7, 2026

Copy link
Copy Markdown

This pull request requires additional validation before any workflows can run on NVIDIA's runners.

Pull request vetters can view their responsibilities here.

Contributors can view more details about this message here.

@lafrancef

Copy link
Copy Markdown
Contributor Author

/ok to test c1b6046

@nemo-automation-bot
nemo-automation-bot Bot requested review from a team and anwithk October 7, 2026 20:19
@github-actions

github-actions Bot commented Oct 7, 2026 •

Copy link
Copy Markdown
Contributor

@lafrancef lafrancef changed the title ci: add advisory harness conformance checks ci: add harness conformance probes and a P0 check Oct 7, 2026
@lafrancef

Copy link
Copy Markdown
Contributor Author

/ok to test d768d1f

@lafrancef

Copy link
Copy Markdown
Contributor Author

/ok to test 34716a0

Run affected registered harnesses in a non-blocking CPU matrix and publish warnings, summaries, and probe artifacts.

Signed-off-by: Frederic Lafrance <flafrance@nvidia.com>
Signed-off-by: Frederic Lafrance <flafrance@nvidia.com>
Signed-off-by: Frederic Lafrance <flafrance@nvidia.com>
@yaoyu-33 yaoyu-33 added the complexity:medium Single-domain change with interacting parts or a moderate review surface label Oct 7, 2026
env:
HARNESS: ${{ matrix.harness }}
run: |
if .venv/bin/python scripts/run_harness_conformance.py \

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Non-blocking follow-up: is there a plan to cover the native EnvironmentServer/session path as well? The current probes use legacy_agent, so native setup, cancellation, and cleanup are not covered. Could a small smoke test exercise that path with a local provider, if feasible?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In principle yes, although this sounds like it would belong in a harness integration test instead.

@lafrancef

Copy link
Copy Markdown
Contributor Author

/ok to test bed9622

Signed-off-by: Frederic Lafrance <flafrance@nvidia.com>
@lafrancef

Copy link
Copy Markdown
Contributor Author

/ok to test 90170d6

@kajalj22

kajalj22 commented Oct 8, 2026

Copy link
Copy Markdown
Contributor

/review role=automation

@svcnvidia-nemo-ci svcnvidia-nemo-ci left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

SHIP — no material reliability issues found.

Reviewed all 12 changed files and traced CI selection, runtime setup, probe exit codes, current-attempt evidence handling, and check publication. The custom P0 check remains independent of the existing CI gate as intended.

Static review only; tests and live probes were not executed.

Review generated by codex

@lafrancef
lafrancef added this pull request to the merge queue Oct 8, 2026
@github-actions

github-actions Bot commented Oct 8, 2026

Copy link
Copy Markdown
Contributor

🔄 Merge queue validation started! You can track the progress here: https://github.com/NVIDIA-NeMo/Gym/actions/runs/37806862272

Merged via the queue into main with commit 2875f93 Oct 8, 2026
48 of 51 checks passed
@lafrancef
lafrancef deleted the flafrance/harness-conformance-ci-20261007 branch October 8, 2026 16:29
yaoyu-33 added a commit to yaoyu-33/Gym that referenced this pull request Oct 9, 2026
…DIA-NeMo#4251)

## What does this PR do?

Align conformance with NVIDIA-NeMo#4045: retained HTTP errors belong to an
invocation and may have zero or one step reference. Successful policy
responses still require a step; compaction calls remain separate. This
corrects the P0 check introduced in NVIDIA-NeMo#4192 without inventing turns for
failed HTTP exchanges.

Also pass the configured assistant-message header to the scripted Model
Server's capture middleware, matching normal Model Server startup. Tests
cover header retention on HTTP success/failure and reject duplicate
links or missing ownership.

The OpenCode plugin-loading commit was removed and replaced by the
separate shared-runtime PR NVIDIA-NeMo#4288. This PR only changes conformance
checks, probe wiring, their tests and documentation. It is rebased on
main `77509af61`.

## Validation

After removing the plugin-loading commit:

```bash
PYTHONPATH=$PWD python -m pytest \
  tests/unit_tests/harness_capabilities \
  scripts/harness_conformance/tests \
  tests/unit_tests/test_harness_conformance_checks.py -q
```

**342 passed, 2 skipped.** Full core and all-server suites were not run
locally. The all-files pre-commit check passed on the rebased branch
before removing the isolated plugin-loading commit.

The fresh four-harness probe run on the rebased branch, before that
split, gave OpenCode 5/7, Hermes 7/7, Pi 6/7, Codex 0/7. These are not
results for this final split: OpenCode additionally needs the separate
plugin setup. Hermes benefits from NVIDIA-NeMo#4048 now on main. Pi's two
provider-error classification unit failures remain separate (NVIDIA-NeMo#4285); its
HTTP-400 health expectation also remains unresolved. Codex retains
independent evidence gaps.

No fresh generative-model benchmark is needed for this diagnostic/probe
correction. No API migration or reward/scoring change. No new source
files; existing licenses retained. All commits have DCO sign-off.

---------

Signed-off-by: yaoyu-33 <yaoyu.094@gmail.com>
tanishku pushed a commit to tanishku/Gym that referenced this pull request Oct 14, 2026
…A-NeMo#4500)

Refresh the main harness conformance tables from the existing four-hour
CI schedule. A separate job with read-only credentials renders one table
artifact with the same renderer used by local regeneration; Fern
downloads and inserts it without importing Gym or rerunning probes.
Follow-up to NVIDIA-NeMo#4192; no separate issue is needed.

The obsolete C-table, path qualifications, gap/aggregate guidance, and
stale generated snapshot are intentionally removed. The page now
presents measured checks with a short scope note and freshness footer.
Rendering stays under `scripts/harness_conformance/`; the CI job
produces only the rendered table.

The five-minute P0 reporting job stays dependency-free with exclusive
`checks: write`. Both reporting and docs jobs use the shared per-attempt
downloader. Missing or invalid harness measurements display as
Unavailable without discarding other results.

Periodic publication uses the triggering run and attempt and accepts
measured P0 failures. Ordinary docs pushes, tags, and manual
publications warn and display unavailable measurements if an artifact
cannot be obtained. The publishing helper comes from main so older
release refs can still publish; release snapshots remain unchanged.
Running publications are not cancelled. GitHub may supersede a pending
publication with a newer event.

Render a fresh local preview with `python -m
scripts.harness_conformance.table` (diagnostic reports stay in its
output directory), or insert a prepared CI table using `python -m
scripts.harness_conformance.publish --run-id <main-ci-run-id> --strict`
with authenticated `gh`.

Validation: replayed the [existing CI
evidence](https://github.com/NVIDIA-NeMo/Gym/actions/runs/38223655321)
through rendering and insertion, checked the generated Fern page and
internal links, and passed formatting and workflow validation. Fern's
authenticated redirect check remains unavailable locally. Model rollout
evidence: N/A; this changes reporting and docs publishing.

---------

Signed-off-by: Frederic Lafrance <flafrance@nvidia.com>

This branch was previously deployed

1 inactive deployment
public — 90170d6b Deployed Oct 8, 2026 by copy-pr-bot[bot] via release / finalize / notify #4720
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:ci CI workflows, test routing, and repository automation ci CI, automation, test queue, or workflow infrastructure work complexity:medium Single-domain change with interacting parts or a moderate review surface needs-review PR is ready for code review and waiting on a reviewer

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants