Skip to content

fix: address issue #5211#5213

Closed
jason-ma-nv wants to merge 1 commit into
mainfrom
auto/fix-5211-brev-onboard-hermes-agent-deploys-with
Closed

fix: address issue #5211#5213
jason-ma-nv wants to merge 1 commit into
mainfrom
auto/fix-5211-brev-onboard-hermes-agent-deploys-with

Conversation

@jason-ma-nv

@jason-ma-nv jason-ma-nv commented Jun 11, 2026

Copy link
Copy Markdown
Contributor

Summary

Issue #5211: the 'NemoClaw for Hermes Agent' API Catalog Try Now flow deploys the OpenClaw runtime instead of Hermes. Root cause: the Hermes catalog card reuses the same Brev launchable (env-3Azt0aYgVNFEuz7opyx3gscmowS) that the repo documents as the OpenClaw web-UI launchable. NemoClaw selects the agent from the NEMOCLAW_AGENT env var (src/lib/agent/defs.ts resolveAgentName; scripts/install.sh:809), which defaults to 'openclaw' when unset, so a launchable that does not export NEMOCLAW_AGENT=hermes silently provisions OpenClaw and the Launch page reports RUNTIME=OpenClaw. The launchable definition itself lives on the Brev/build.nvidia.com platform (outside this repo); the repo's lever is its canonical Brev web-UI documentation, which previously described only the OpenClaw flow and gave no Hermes path. Fix: updated docs/deployment/brev-web-ui.mdx with a Warning callout and a new 'Deploy Hermes Instead of OpenClaw' section documenting that the launchable must export NEMOCLAW_AGENT=hermes to provision Hermes (RUNTIME=Hermes), and that without it the agent silently falls back to OpenClaw.

Related Issue

Fixes #5211

Changes

  • Automated Claude Code fix selected by auto_fix/auto_fix_recent_issues.py.
  • See the commits on this branch for the exact file-level changes.

Type of Change

  • Code change (feature, bug fix, or refactor)
  • Code change with doc updates
  • Doc only (prose changes, no code sample modifications)
  • Doc only (includes code sample changes)

Verification

  • npx prek run --all-files passes
  • npm test passes
  • Tests added or updated for new or changed behavior
  • No secrets, API keys, or credentials committed
  • Docs updated for user-facing behavior changes
  • make docs builds without warnings (doc changes only)
  • Doc pages follow the style guide (doc changes only)
  • New doc pages include SPDX header and frontmatter (new pages only)

Verification details reported by Claude Code:

  • Traced agent resolution: resolveAgentName() in src/lib/agent/defs.ts and scripts/install.sh:809 default to openclaw only when NEMOCLAW_AGENT is unset; NEMOCLAW_AGENT takes precedence over saved session, confirming the code already honors NEMOCLAW_AGENT=hermes.
  • Confirmed the OpenClaw web-UI doc (docs/deployment/brev-web-ui.mdx:53) hardcodes launchableID env-3Azt0aYgVNFEuz7opyx3gscmowS, the same launchable referenced by the Hermes API Catalog card in the issue.
  • Verified the relative doc link target ../get-started/quickstart-hermes resolves to docs/get-started/quickstart-hermes.mdx.
  • Ran npm run docs:check-agent-variants (exit 0); git status shows only docs/deployment/brev-web-ui.mdx changed.
  • grep -rn 'NEMOCLAW_AGENT' scripts/install.sh
  • grep -rn 'launchableID' (docs/mdx/skills)
  • npm run docs:check-agent-variants
  • git status --porcelain

Signed-off-by: Jason Ma jama@nvidia.com

Summary by CodeRabbit

  • Documentation
    • Added guidance clarifying that OpenClaw is the default agent runtime and documented how to deploy Hermes instead using environment configuration.

The "NemoClaw for Hermes Agent" API Catalog Try Now flow reuses the
OpenClaw Brev launchable, which leaves NEMOCLAW_AGENT unset. NemoClaw
then defaults the agent to openclaw (resolveAgentName / install.sh), so
the Launch page reports RUNTIME=OpenClaw even though Hermes was selected
(#5211).

Add a warning and a "Deploy Hermes Instead of OpenClaw" section to the
Brev web UI guide explaining that the launchable must export
NEMOCLAW_AGENT=hermes to provision the Hermes runtime, and that omitting
it silently falls back to OpenClaw.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@jason-ma-nv jason-ma-nv self-assigned this Jun 11, 2026
@coderabbitai

coderabbitai Bot commented Jun 11, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

📝 Walkthrough

Walkthrough

Documentation enhancement for the Brev web UI deployment process. Added a warning block clarifying OpenClaw as the default runtime and explaining the NEMOCLAW_AGENT environment variable. Introduced a new section with instructions and curl example for deploying Hermes instead, including a note about silent fallback behavior.

Changes

Runtime Selection Documentation

Layer / File(s) Summary
Default runtime warning and Hermes deployment guide
docs/deployment/brev-web-ui.mdx
Warning block clarifies that OpenClaw is the default runtime selected by NEMOCLAW_AGENT, and a new "Deploy Hermes Instead of OpenClaw" section provides installation instructions with curl example, documenting the requirement to set NEMOCLAW_AGENT=hermes before onboarding and the risk of silent fallback if the variable is not set.

🎯 2 (Simple) | ⏱️ ~8 minutes

v0.0.63

A launchable learns its fate,
OpenClaw by default—quite great,
But whisper NEMOCLAW_AGENT=hermes,
And Hermes will answer the call,
No silent falls, with words above all. 🐰✨

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Title check ⚠️ Warning The title 'fix: address issue #5211' is vague and generic, failing to describe the actual change. It only references an issue number without clarifying the substantive documentation update about NEMOCLAW_AGENT configuration for Hermes deployment. Use a more descriptive title that captures the main change, such as 'docs: document NEMOCLAW_AGENT configuration for Hermes deployment' or 'docs: clarify Brev launchable NEMOCLAW_AGENT requirement for Hermes'.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch auto/fix-5211-brev-onboard-hermes-agent-deploys-with

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actions

Copy link
Copy Markdown
Contributor

@github-actions

Copy link
Copy Markdown
Contributor

E2E Advisor Recommendation

Required E2E: None
Optional E2E: None

Workflow run

Full advisor summary

E2E Recommendation Advisor

Base: origin/main
Head: HEAD
Confidence: high

Required E2E

  • None. Docs-only change to a Brev deployment guide. It does not modify runtime code, CI workflows, deployment scripts, policies, or user-flow implementation, so existing E2E jobs are not needed for this PR.

Optional E2E

  • None.

New E2E recommendations

  • None.

@github-actions

Copy link
Copy Markdown
Contributor

Vitest E2E Scenario Recommendation

Required Vitest E2E scenarios: None
Optional Vitest E2E scenarios: None

Workflow run

Full Vitest E2E advisor summary

Vitest E2E Scenario Advisor

Base: origin/main
Head: HEAD
Confidence: high

Required Vitest E2E scenarios

  • None. Docs-only change outside the Vitest scenario workflow and test/e2e-scenario surfaces; it cannot affect Vitest E2E scenario behavior.

Optional Vitest E2E scenarios

  • None.

Relevant changed files

  • None.

@github-actions

Copy link
Copy Markdown
Contributor

PR Review Advisor

Findings: 1 needs attention, 1 worth checking, 0 nice ideas
Top item: Docs-only change does not satisfy the Hermes Try Now runtime bug

Review findings

🛠️ Needs attention

  • Docs-only change does not satisfy the reported Hermes Try Now runtime behavior (docs/deployment/brev-web-ui.mdx:35): Issue [Brev][Onboard] Hermes Agent deploys with OpenClaw runtime instead of Hermes from API Catalog Try Now flow #5211 expects the NemoClaw for Hermes Agent API Catalog Try Now flow to deploy a Hermes runtime and show `RUNTIME = Hermes` or `NemoHermes`. This PR adds documentation saying the launchable must export `NEMOCLAW_AGENT=hermes`, but it does not change or provide deterministic evidence that the API Catalog card or Brev launchable actually sets that environment variable. A user following the reported Try Now path can still hit the same shared launchable with `NEMOCLAW_AGENT` unset and get OpenClaw.
    • Recommendation: Either update the actual API Catalog/Brev launchable source of truth so the Hermes path starts with `NEMOCLAW_AGENT=hermes`, or narrow this PR so it does not claim to fix [Brev][Onboard] Hermes Agent deploys with OpenClaw runtime instead of Hermes from API Catalog Try Now flow #5211 and add verifiable evidence for the external launchable change. If the repo cannot own the launchable, document a concrete user-actionable Hermes launch path rather than only stating what the launchable must do.
    • Evidence: The diff adds a Warning and `Deploy Hermes Instead of OpenClaw` section, including `the launchable's startup environment must export NEMOCLAW_AGENT=hermes`, while the existing Brev link remains `launchableID=env-3Azt0aYgVNFEuz7opyx3gscmowS`. Nearby code confirms unset `NEMOCLAW_AGENT` defaults to OpenClaw (`scripts/install.sh` and `src/lib/agent/defs.ts`), so documentation alone does not alter the Try Now runtime.

🔎 Worth checking

  • Source-of-truth review needed: Brev/API Catalog Hermes launchable selection documented in docs/deployment/brev-web-ui.mdx: The advisor marked localized patch analysis as needs_followup.
    • Recommendation: Identify the invalid state, source boundary, source-fix constraint, regression test, and removal condition before merging the localized behavior.
    • Evidence: The new docs say the launchable must export `NEMOCLAW_AGENT=hermes`; installer code defaults to OpenClaw when the variable is unset.

🌱 Nice ideas

  • None.
Consider writing more tests for
  • **Runtime validation** — Verify the Hermes API Catalog Try Now launchable starts installer/onboarding with `NEMOCLAW_AGENT=hermes` and reports `RUNTIME = Hermes`.. The changed file is documentation-only, so unit tests are not needed for runtime behavior. However, the linked bug is about an external API Catalog/Brev launch flow; closing it requires validation of that runtime/configuration boundary, not just prose.
  • **Runtime validation** — Verify the existing OpenClaw Brev web-UI launchable still leaves `NEMOCLAW_AGENT` unset or set to `openclaw` and reports `RUNTIME = OpenClaw`.. The changed file is documentation-only, so unit tests are not needed for runtime behavior. However, the linked bug is about an external API Catalog/Brev launch flow; closing it requires validation of that runtime/configuration boundary, not just prose.
  • **Runtime validation** — Run the existing docs validation for `docs/deployment/brev-web-ui.mdx` and confirm the `../get-started/quickstart-hermes` link resolves.. The changed file is documentation-only, so unit tests are not needed for runtime behavior. However, the linked bug is about an external API Catalog/Brev launch flow; closing it requires validation of that runtime/configuration boundary, not just prose.
  • **Acceptance clause:** When using the **Try Now** button from the *NemoClaw for Hermes Agent* API Catalog card to deploy a Brev launchable, the resulting agent page reports `RUNTIME = OpenClaw` instead of Hermes / NemoHermes. — add test evidence or identify existing coverage. The new docs acknowledge that the shared Brev launchable deploys OpenClaw by default and explain `NEMOCLAW_AGENT=hermes`; they do not change the API Catalog Try Now flow.
  • **Acceptance clause:** The Hermes agent selected from the API Catalog appears to be wired to the OpenClaw runtime in the Brev launchable. — add test evidence or identify existing coverage. The new section documents that a launchable must export `NEMOCLAW_AGENT=hermes`, but no launchable/catalog wiring is changed in this diff.
  • **Acceptance clause:** 1. Open <https://build.nvidia.com/nvidia/nemoclaw-for-hermes-agent/nemoclawcard> — add test evidence or identify existing coverage. No repo-owned or external source-of-truth evidence in the diff shows this catalog card now targets a Hermes-configured launchable.
  • **Acceptance clause:** 2. Click **Try Now** (top-right) — add test evidence or identify existing coverage. The PR does not modify or verify the Try Now action.
  • **Acceptance clause:** 3. On the Brev launchable page, click **Deploy Launchable** — add test evidence or identify existing coverage. The documented launchable link remains the same shared launchable; the diff does not prove its environment includes `NEMOCLAW_AGENT=hermes` for Hermes.

Workflow run details

This is an automated advisory review. A human maintainer must make the final merge decision.

@coderabbitai coderabbitai Bot 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.

🧹 Nitpick comments (1)
docs/deployment/brev-web-ui.mdx (1)

40-40: ⚡ Quick win

Use active voice.

"The deployed agent is selected from" is passive. Rewrite to active voice.

Suggested revision:

-The deployed agent is selected from the `NEMOCLAW_AGENT` environment variable that the launchable passes to the installer:
+The launchable selects the deployed agent from the `NEMOCLAW_AGENT` environment variable that it passes to the installer:
🤖 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 `@docs/deployment/brev-web-ui.mdx` at line 40, Rewrite the passive sentence to
active voice by making the subject the launchable: e.g., say that the launchable
selects the deployed agent from the NEMOCLAW_AGENT environment variable and
passes it to the installer; reference the environment variable name
NEMOCLAW_AGENT and the actors "launchable" and "installer" (replace the existing
passive sentence with this active construction).

Source: Coding guidelines

🤖 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 `@docs/deployment/brev-web-ui.mdx`:
- Line 40: Rewrite the passive sentence to active voice by making the subject
the launchable: e.g., say that the launchable selects the deployed agent from
the NEMOCLAW_AGENT environment variable and passes it to the installer;
reference the environment variable name NEMOCLAW_AGENT and the actors
"launchable" and "installer" (replace the existing passive sentence with this
active construction).

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: b02dc667-915c-44c0-972e-9cb00c523189

📥 Commits

Reviewing files that changed from the base of the PR and between 3d5dab6 and 53e2e6e.

📒 Files selected for processing (1)
  • docs/deployment/brev-web-ui.mdx

@jason-ma-nv

Copy link
Copy Markdown
Contributor Author

Closing this PR. After analysis, the root cause of #5211 is platform-side: the NemoClaw for Hermes Agent API Catalog Try Now flow reuses the OpenClaw Brev launchable (env-3Azt0aYgVNFEuz7opyx3gscmowS), which boots the installer without exporting NEMOCLAW_AGENT. With it unset, resolveAgentName() and install.sh correctly default to openclaw — the repo code already honors NEMOCLAW_AGENT=hermes.

A docs-only change cannot make the Try-Now button deploy Hermes, so this does not actually fix #5211. The real fix is a launchable update on the Brev/build.nvidia.com side (see issue comment). A separate PR will add a defensive in-repo guard that surfaces the silent OpenClaw fallback at deploy time.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Brev][Onboard] Hermes Agent deploys with OpenClaw runtime instead of Hermes from API Catalog Try Now flow

1 participant