fix(onboard): share providerless lifecycle across supported agents - #11584
Conversation
Signed-off-by: Apurv Kumaria <akumaria@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. |
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Enterprise Run ID: 📒 Files selected for processing (11)
Included review availability: Your plan provides up to 12 included reviews per hour; 11 remain after this review. 📝 WalkthroughWalkthroughProviderless onboarding now supports validated OpenClaw and Hermes agents. It rejects unsupported or mismatched agents, avoids provider credential discovery, and expands lifecycle and managed-creation test coverage. ChangesProviderless onboarding
Priority: ➖ Normal Estimated code review effort: 3 (Moderate) | ~25 minutes Change: Feature Sequence Diagram(s)sequenceDiagram
participant OnboardingRequest
participant InitialFlow
participant CoreFlow
participant SandboxCreation
participant ExternalGateway
OnboardingRequest->>InitialFlow: request providerless APF interceptor
InitialFlow->>CoreFlow: validate OpenClaw or Hermes agent
CoreFlow->>SandboxCreation: reserve and create sandbox
SandboxCreation->>ExternalGateway: prepare and activate external component
ExternalGateway-->>SandboxCreation: activation result
Suggested reviewers: Merge Risk: ⚪ Minimal · up to No actionable merge-blocking issue remains in the reviewed providerless onboarding changes. 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
Full details: Docstring CoverageExplanation Docstring coverage is 14.29% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 14 functions across 10 files. (1 skipped: 1 unsupported.) ✨ Finishing Touches 💡 1📝 Generate docstrings 💡
🧪 Generate unit tests (beta)
Comment |
Code Coverage OverviewLanguages: TypeScript TypeScript / code-coverage/pluginThe overall line coverage in commit c2ec70e in the TypeScript / code-coverage/cliThe overall line coverage in commit c2ec70e in the Show a line coverage summary of the most impacted files.
Updated |
cjagwani
left a comment
There was a problem hiding this comment.
Reviewed the complete providerless OpenClaw/Hermes onboarding boundary: unsupported and mismatched agents fail before external effects, providerless creation avoids messaging credential discovery, and identity, policy, and bounded activation failure behavior remain enforced. All 26 security-sensitive review packets are clear; the current merge commit preserves the reviewed PR files unchanged; focused validation and all required checks pass; CodeRabbit is clear; and both commits are verified. Per the recorded maintainer decision, #11595, the OpenShell preparation capability, and fresh Linux qualification remain enablement/support gates rather than merge prerequisites for this gated off-default plumbing.
Outcome
External-component providerless onboarding accepts OpenClaw and Hermes through the same existing lifecycle. Each agent retains its managed image, configuration generator, and startup integration. Live qualification remains incomplete, so this PR is a draft.
Reason
The shared onboarding path rejected every agent except OpenClaw. Removing that rejection alone would also let Hermes discover stored messaging credentials during providerless creation.
Related issues
Refs #11548.
Changes
Verification
npx vitest run --project cli src/lib/onboard/machine/core-flow-phases.test.ts src/lib/onboard/machine/final-flow-phases.test.ts src/lib/onboard/machine/initial-flow-phases.test.ts src/lib/onboard/sandbox-agent.test.ts src/lib/onboard/external-component src/lib/onboard/managed-workload/onboard-orchestration.test.ts --project integration test/onboarding/onboard-fresh-create-identity.test.ts --coverage=false— 249 passed.npx vitest run --project cli src/lib/onboard/entry-options.test.ts src/lib/onboard/machine/handlers/gateway.test.ts src/lib/onboard/managed-startup-image-runtime-handoff.test.ts --coverage=false— 128 passed.f267027b9d3d3ce570267a43c118f32c9f25fdaf, the combined commands above passed all 377 tests on commit31eb6d754554e44b2a79408707eea98097d3a532.NODE_OPTIONS=--max-old-space-size=8192 npm run typecheck:cli— passed.npm run validate:pr— passed for the rebased commit against canonical basef267027b9d3d3ce570267a43c118f32c9f25fdaf.git diff --check— passed, including formatting, lint, repository checks, and secret scanning. The diff contains no secrets, API keys, or credentials.Local live attempts used base
e6068115cc5e02e0d05abdb46ea4509138847617plus the working changes, with verified OpenShell 0.0.116 release binaries (sourced1155aa70042d3e2ee49dbfa15346b108b7c1d92). Both fresh-host runs stopped withendpoint_restrictedbefore component preparation: component configuration requires the Docker network before gateway startup creates it. Each recorded zero preparation and activation requests. This existing ordering issue remains a separate blocker outside this PR.Ordinary NemoClaw onboarding created the network and started OpenShell, then stopped at provider selection without a supplied credential. An initialized-gateway attempt encountered incomplete host prerequisites and exhausted Docker storage. The disposable test environment was removed.
Neither agent has passing live startup, activation, inference, or allowed/denied request evidence from this change. Deterministic tests do not establish live qualification.
Review notes
Sensitive paths:
src/lib/onboard/**. Pre-publication review consists of implementation self-review of NVIDIA/NemoClaw commit31eb6d754554e44b2a79408707eea98097d3a532, covering all changed files, input rejection, credential discovery, identity agreement, and activation state preservation. The reviewed repository, commit, and paths match this candidate. No independent pre-publication review exists; these paths await independent review. PR #11483 overlaps policy adapters and component activation/finalization and remains open.No runtime pin, component schema, policy rewriting, provider lifecycle, activation retry, or recovery change is included. There is no CI waiver or merge approval.
Signed-off-by: Apurv Kumaria akumaria@nvidia.com
Summary by CodeRabbit
New Features
Documentation