ci(station): require hardware evidence for host preparation - #7193
Conversation
Signed-off-by: Senthil Ravichandran <senthilr@nvidia.com>
|
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. |
|
Note Reviews pausedIt looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the Use the following commands to manage reviews:
Use the checkboxes below for quick actions:
📝 WalkthroughWalkthroughAdds a trusted ChangesStation hardware evidence enforcement
Estimated code review effort: 4 (Complex) | ~60 minutes Sequence Diagram(s)sequenceDiagram
participant PullRequest as Pull request
participant Workflow as Station / Hardware Evidence
participant Gate as evaluateStationHardwareGate
participant GitHub as GitHub API
PullRequest->>Workflow: Trigger on pull request or comment event
Workflow->>Gate: Pass token and PR number
Gate->>GitHub: Fetch PR, files, comments, issues, and script blobs
Gate-->>Workflow: Return validation summary and status
Possibly related PRs
Suggested labels: Suggested reviewers: 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
PR Review Advisor — InformationalAdvisor assessment: Informational / high confidence Model lanes
Nemotron output stays in workflow artifacts and does not change the assessment above. E2E guidanceAdvisory only. E2E / PR Gate selects and runs jobs independently. Recommended E2E: None This automated review informs maintainers. Warnings and suggestions do not require a response. A maintainer decides whether to merge. |
Signed-off-by: Senthil Ravichandran <senthilr@nvidia.com>
|
Addressed PRA-1 and PRA-2 in signed commit
Verification: |
Signed-off-by: Senthil Ravichandran <senthilr@nvidia.com>
|
Addressed the current PR Review Advisor warning in signed commit |
There was a problem hiding this comment.
🧹 Nitpick comments (1)
tools/station-hardware-evidence/gate.mts (1)
304-315: 🩺 Stability & Availability | 🔵 Trivial | ⚡ Quick winBound GitHub API requests with a timeout. The job only has a 5-minute timeout, so a stalled
fetchcan still consume the entire run;signal: AbortSignal.timeout(30_000)would fail fast with a clearer error.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@tools/station-hardware-evidence/gate.mts` around lines 304 - 315, Update requestJson to pass AbortSignal.timeout(30_000) as the fetch signal, ensuring stalled GitHub API requests fail within 30 seconds while preserving the existing response validation and JSON handling.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Nitpick comments:
In `@tools/station-hardware-evidence/gate.mts`:
- Around line 304-315: Update requestJson to pass AbortSignal.timeout(30_000) as
the fetch signal, ensuring stalled GitHub API requests fail within 30 seconds
while preserving the existing response validation and JSON handling.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Enterprise
Run ID: ae9cffc3-453d-4142-a27a-0ba2b515a48d
📒 Files selected for processing (6)
.github/PULL_REQUEST_TEMPLATE.md.github/workflows/station-hardware-evidence.yamlAGENTS.mdci/source-shape-test-budget.jsontest/station-hardware-evidence-gate.test.tstools/station-hardware-evidence/gate.mts
Signed-off-by: Carlos Villela <cvillela@nvidia.com>
Signed-off-by: Senthil Ravichandran <senthilr@nvidia.com>
Signed-off-by: Senthil Ravichandran <senthilr@nvidia.com>
Signed-off-by: Senthil Ravichandran <senthilr@nvidia.com>
Signed-off-by: Senthil Ravichandran <senthilr@nvidia.com>
|
Maintainer review is complete on the current revision: the trusted workflow never executes PR code, permissions remain least-privilege, first-posted evidence now revalidates, Node is pinned, 25 focused contract tests pass, the canonical advisor has no findings, and all named CI checks are green. Deferring approval only because GitHub returns an empty |
cjagwani
left a comment
There was a problem hiding this comment.
Reviewed exact head d34026e against current main (5b547cdf). Please address these blockers before approval:
- The evidence hash is computed from the PR-head script blob, while the active main ruleset does not require strict up-to-date status checks. A conflict-free base change can therefore alter the eventual merge-result bytes after this check passes. Validate the synthetic merge result or require an up-to-date/strict Station gate, and add a concurrent non-conflicting base-change regression.
- A green maintainer deferral can become invalid without rerunning this workflow. Closing its required follow-up issue, or losing the required authority, leaves the old success context reusable because the workflow does not receive those state changes. Add merge-time revalidation or an explicit invalidation mechanism, with a follow-up-closure regression.
- The linked product decision is not accepted: #7191 remains
needs: triage, has no Issue Type/project decision, and the repository ruleset does not requireStation / Hardware Evidence. Please establish ownership, lifecycle, trust semantics, strictness, and rollout before presenting this as a merge gate.
The current PASS result is also self-attested metadata rather than authenticated DGX Station provenance. Either add trusted run/artifact provenance or rename and document the result so human qualification review remains explicit. The branch can be mechanically merged with current main (no changed-path overlap), but that refresh will not resolve these findings.
|
The product-scope decision is recorded in #7191: accept the hard evidence requirement, but simplify the mechanism. Please revise this PR around the following contract:
The hard gate should be required maintainer approval through existing review controls. Please remove the custom comment grammar, script-hash protocol, permission and follow-up-issue validation, deferral state machine, comment-triggered workflow, custom status check, and their supporting implementation/tests. Retain only the smallest PR-template and contributor/agent guidance needed to make the requirement visible. |
Signed-off-by: Senthil Ravichandran <senthilr@nvidia.com>
<!-- markdownlint-disable MD041 --> ## Summary Add the canonical `## v0.0.90` entry to `docs/changelog/2026-07-20.mdx` before the release tag is planned. The update also corrects the documented custom-image migration window so the compatibility fallback that first ships in v0.0.90 remains available until v0.0.91. ## Changes - Add the v0.0.90 summary and detailed release bullets for managed-image routing, provider-reset recovery, WhatsApp health reporting, and DGX Station guidance. - Keep the newest release first in the shared dated changelog and use root-absolute links to the canonical OpenClaw routes. - Correct `docs/reference/commands.mdx` to state that the legacy image route selector remains supported through v0.0.90 and is removed in v0.0.91. - Release source summary: - [#7264](#7264) -> `docs/resources/prompt-assets/dgx-station.md`, `docs/changelog/2026-07-20.mdx`: Record the versioned Station installer path, Nemotron 3 Ultra 550B default, and explicit DeepSeek override. - [#7261](#7261) -> `docs/get-started/dgx-station-preparation.mdx`, `docs/manage-sandboxes/recover-rebuild-sandboxes.mdx`, `docs/changelog/2026-07-20.mdx`: Include the OpenIB, legacy recovery, and Additional Setup documentation follow-ups. - [#7232](#7232) -> `docs/changelog/2026-07-20.mdx`: Document provider-reset recovery for wrapped OpenShell attachment diagnostics. - [#7189](#7189) -> `docs/reference/commands.mdx`, `docs/changelog/2026-07-20.mdx`: Document the managed-image route-selector rename and correct its one-release migration window. - [#7015](#7015) -> `docs/changelog/2026-07-20.mdx`: Document corrected OpenClaw WhatsApp health reporting. - No additional user-facing page update is needed for [#7193](#7193), [#7110](#7110), [#6783](#6783), or [#7263](#7263) because they change contributor governance, internal CI or release automation, or editorial style without changing supported user behavior. - [#7242](#7242) and [#7225](#7225) are already ancestors of and documented in v0.0.89, so this entry does not duplicate them despite their stale v0.0.90 labels. ## Type of Change - [ ] Code change (feature, bug fix, or refactor) - [ ] Code change with doc updates - [x] Doc only (prose changes, no code sample modifications) - [ ] Doc only (includes code sample changes) ## Quality Gates - [ ] Tests added or updated for changed behavior - [x] Existing tests cover changed behavior — justification: `test/changelog-docs.test.ts` validates the dated changelog heading, SPDX form, version order, and published links. - [ ] Tests not applicable — justification: - [x] Docs updated for user-facing behavior changes - [ ] Docs not applicable — justification: - [ ] Sensitive paths changed (security, policy, credentials, preflight, onboarding, inference, runner, sandbox, or messaging) - [ ] Sensitive-path review completed or maintainer-approved waiver recorded — reviewer/approval link/justification: - [ ] Non-success, skipped, or missing CI check accepted by maintainer — check name, approval link, and follow-up issue: ## DGX Station Hardware Evidence - [ ] Tested on DGX Station - Tested commit: Not applicable; this PR does not change `scripts/prepare-dgx-station-host.sh` or runtime behavior. - Station profile/scenario: Not applicable. - Result: Not applicable. - Supporting evidence: Not applicable. ## Verification - [x] PR description includes a `Signed-off-by:` line and every commit appears as `Verified` in GitHub - [x] Normal `pre-commit`, `commit-msg`, and `pre-push` hooks passed, or `npm run check:diff` passed when hooks were skipped or unavailable - [x] Targeted behavior tests pass for the current change set, or tests are marked not applicable above — `npx vitest run test/changelog-docs.test.ts` (6 passed). - [ ] Applicable broad gate passed — `npm test` for broad runtime/test-harness changes; `npm run check` for repo-wide validation/coverage changes — command/result: Not run; this is a focused documentation-only change. - [x] Quality Gates section completed with required justifications or waivers - [x] No secrets, API keys, or credentials committed - [ ] `npm run docs` builds without warnings (doc changes only) — passed with 0 errors and two unrelated baseline warnings for unauthenticated redirect checks and the existing light-mode contrast ratio. - [x] Doc pages follow the [style guide](https://github.com/NVIDIA/NemoClaw/blob/main/docs/CONTRIBUTING.md) (doc changes only) - [ ] New doc pages include SPDX header and frontmatter (new pages only) --- Signed-off-by: Julie Yaunches <jyaunches@nvidia.com> <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **Documentation** - Added release notes for v0.0.90 covering inference routing, credential reset behavior, WhatsApp status detection, and DGX Station coding-agent guidance. - Updated custom Dockerfile guidance to document continued support for the legacy provider argument through v0.0.90. - Clarified that legacy declarations must be renamed to `NEMOCLAW_INFERENCE_PROVIDER_ID` before v0.0.91. - Added and refreshed related documentation links. <!-- end of auto-generated comment: release notes by coderabbit.ai --> Signed-off-by: Julie Yaunches <jyaunches@nvidia.com>
Summary
Requires human-reviewed DGX Station test evidence before maintainers approve or merge a PR that changes
scripts/prepare-dgx-station-host.sh. The requirement uses the repository's existing review and administrative-bypass controls; it does not add a custom workflow or claim authenticated hardware provenance.Related Issue
Fixes #7191
Product-scope decision: #7191 (comment)
Changes
Type of Change
Quality Gates
Verification
Signed-off-by:line and every commit appears asVerifiedin GitHubpre-commit,commit-msg, andpre-pushhooks passed, ornpm run check:diffpassed when hooks were skipped or unavailablenpx --no-install markdownlint-cli2 .github/PULL_REQUEST_TEMPLATE.md AGENTS.mdpassednpm testfor broad runtime/test-harness changes;npm run checkfor repo-wide validation/coverage changes — command/result:npm run docsbuilds without warnings (doc changes only)Signed-off-by: Senthil Ravichandran senthilr@nvidia.com