fix(onboard): detach terminal agent create stream on ready - #5768
Conversation
Signed-off-by: San Dang <sdang@nvidia.com>
📝 WalkthroughWalkthroughThe DeepAgents code entrypoint now logs a startup message and idles with ChangesTerminal-agent startup and onboarding
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes Possibly related PRs
Suggested labels
Suggested reviewers
Poem
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
Code Coverage OverviewLanguages: TypeScript TypeScript / code-coverage/pluginThe overall coverage in the Show a code coverage summary of the most covered files.
TypeScript / code-coverage/cliThe overall coverage in the Show a code coverage summary of the most covered files.
Updated |
E2E Advisor RecommendationRequired E2E: Dispatch hint: Full advisor summaryE2E Recommendation AdvisorBase: Required E2E
Optional E2E
New E2E recommendations
Dispatch hint
|
Vitest E2E Scenario RecommendationRequired Vitest E2E scenarios: Dispatch required Vitest E2E scenarios:
Full Vitest E2E advisor summaryVitest E2E Scenario AdvisorBase: Required Vitest E2E scenarios
Optional Vitest E2E scenarios
Relevant changed files
|
PR Review Advisor — Changes requestedMerge posture: Do not merge yet Action checklist
Findings index
Review findings by urgency: 0 required fixes, 4 items to resolve/justify, 0 in-scope improvements
|
Signed-off-by: San Dang <sdang@nvidia.com>
## Summary Derive supported messaging agents and channels from channel manifests instead of agent manifests, so `supportedAgents` is the source of truth. This also removes artifact-only DeepAgents messaging wiring and rejects unsupported channel/agent pairs before policy, provider, credential, registry, or rebuild mutation. ## Related Issue Related PRs: #5743, #5673. Stacked on #5768, Fixes #5729 ## Acceptance Note DeepAgents messaging is intentionally fail-closed in this PR. NemoClaw does not claim Discord, Telegram, Slack, or other channel delivery for LangChain Deep Agents Code until a real DeepAgents messaging bridge exists. The fix for #5729 is to reject unsupported DeepAgents channel setup before policy, credential, registry, rebuild, or Dockerfile mutation, instead of injecting a stale messaging plan into a sandbox that cannot consume inbound channel traffic. ## Changes - Remove `messaging_platforms` parsing from agent manifests and derive available channels from channel manifest `supportedAgents`. - Remove DeepAgents messaging build/runtime artifacts until a real messaging bridge exists. - Gate `channels add`, `channels list`, onboard filtering, and rebuild staging from manifest-derived channel support. - Update regression tests for DeepAgents rejection, stale messaging cleanup, rebuild skipping, and manifest helper behavior. - Update platform-support docs to reference channel manifest `supportedAgents`. ## Type of Change - [ ] Code change (feature, bug fix, or refactor) - [x] Code change with doc updates - [ ] Doc only (prose changes, no code sample modifications) - [ ] Doc only (includes code sample changes) ## Verification - [x] PR description includes the DCO sign-off declaration and every commit appears as `Verified` in GitHub - [x] Git hooks passed during commit and push, or `npx prek run --from-ref main --to-ref HEAD` passes - [x] Targeted tests pass for changed behavior - [ ] Full `npm test` passes (broad runtime changes only) - [x] Tests added or updated for new or changed behavior - [x] No secrets, API keys, or credentials committed - [x] Docs updated for user-facing behavior changes - [ ] `npm run docs` builds without warnings (doc changes only) - [ ] 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) --- <!-- DCO sign-off is required in this PR description, and every commit must appear as Verified in GitHub. Run: git config user.name && git config user.email --> Signed-off-by: San Dang <sdang@nvidia.com> <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Bug Fixes** * Messaging channel availability is now derived from each channel manifest’s `supportedAgents`, improving enable/disable, rebuild planning, and channel status matching. * DeepAgents startup and rebuild no longer include unsupported messaging runtime wiring, env handling, or messaging artifacts. * Channel add/cleanup gates now reject unsupported agent/channel pairs earlier with clearer “channel-supported agents” guidance. * **Documentation** * Updated platform support and DeepAgents eligibility guidance to make `supportedAgents` the single source of truth for messaging support. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Signed-off-by: San Dang <sdang@nvidia.com> Signed-off-by: Carlos Villela <cvillela@nvidia.com> Co-authored-by: Carlos Villela <cvillela@nvidia.com>
## Summary Terminal-runtime sandboxes now continue onboarding once OpenShell reports Ready, even when the VM create stream does not emit gateway-style startup output. This fixes DeepAgents Code onboarding hanging on macOS VM-driver hosts after the sandbox is already Ready. ## Bugs LangChain hang at sandbox build MacOS ``` Sandbox reported Ready; waiting for startup command output before detaching. Still waiting for sandbox to become ready... (30s elapsed) Still waiting for sandbox to become ready... (45s elapsed) Still waiting for sandbox to become ready... (60s elapsed) Still waiting for sandbox to become ready... (75s elapsed) Still waiting for sandbox to become ready... (90s elapsed) Still waiting for sandbox to become ready... (105s elapsed) Still waiting for sandbox to become ready... (120s elapsed) Still waiting for sandbox to become ready... (135s elapsed) Still waiting for sandbox to become ready... (150s elapsed) Still waiting for sandbox to become ready... (165s elapsed) Still waiting for sandbox to become ready... (180s elapsed) Still waiting for sandbox to become ready... (195s elapsed) Still waiting for sandbox to become ready... (210s elapsed) ``` ## Related Issue Fixes NVIDIA#5766 ## Changes - Disable the create-stream startup-output guard for terminal agents while preserving the OpenShell Ready check. - Keep the DeepAgents Code entrypoint alive with a portable `tail -f /dev/null` idle path and emit a setup marker. - Extend terminal-agent onboarding and DeepAgents entrypoint tests to cover VM-driver Ready detachment without startup output. ## Type of Change - [x] 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 - [x] PR description includes the DCO sign-off declaration and every commit appears as `Verified` in GitHub - [x] Git hooks passed during commit and push, or `npx prek run --from-ref main --to-ref HEAD` passes - [x] Targeted tests pass for changed behavior - [ ] Full `npm test` passes (broad runtime changes only) - [x] Tests added or updated for new or changed behavior - [x] No secrets, API keys, or credentials committed - [ ] Docs updated for user-facing behavior changes - [ ] `npm run docs` builds without warnings (doc changes only) - [ ] 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) --- <!-- DCO sign-off is required in this PR description, and every commit must appear as Verified in GitHub. Run: git config user.name && git config user.email --> Signed-off-by: San Dang <sdang@nvidia.com> <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Improved startup behavior for idle runtimes: when launched without a command, it now prints a clearer runtime setup message before idling. * **Bug Fixes** * Enhanced sandbox onboarding for terminal-based flows by adjusting how “ready” is detected during sandbox creation. * Updated and expanded test coverage to validate the new startup message, idle behavior, and readiness parsing. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Signed-off-by: San Dang <sdang@nvidia.com> Co-authored-by: Carlos Villela <cvillela@nvidia.com>
## Summary Derive supported messaging agents and channels from channel manifests instead of agent manifests, so `supportedAgents` is the source of truth. This also removes artifact-only DeepAgents messaging wiring and rejects unsupported channel/agent pairs before policy, provider, credential, registry, or rebuild mutation. ## Related Issue Related PRs: NVIDIA#5743, NVIDIA#5673. Stacked on NVIDIA#5768, Fixes NVIDIA#5729 ## Acceptance Note DeepAgents messaging is intentionally fail-closed in this PR. NemoClaw does not claim Discord, Telegram, Slack, or other channel delivery for LangChain Deep Agents Code until a real DeepAgents messaging bridge exists. The fix for NVIDIA#5729 is to reject unsupported DeepAgents channel setup before policy, credential, registry, rebuild, or Dockerfile mutation, instead of injecting a stale messaging plan into a sandbox that cannot consume inbound channel traffic. ## Changes - Remove `messaging_platforms` parsing from agent manifests and derive available channels from channel manifest `supportedAgents`. - Remove DeepAgents messaging build/runtime artifacts until a real messaging bridge exists. - Gate `channels add`, `channels list`, onboard filtering, and rebuild staging from manifest-derived channel support. - Update regression tests for DeepAgents rejection, stale messaging cleanup, rebuild skipping, and manifest helper behavior. - Update platform-support docs to reference channel manifest `supportedAgents`. ## Type of Change - [ ] Code change (feature, bug fix, or refactor) - [x] Code change with doc updates - [ ] Doc only (prose changes, no code sample modifications) - [ ] Doc only (includes code sample changes) ## Verification - [x] PR description includes the DCO sign-off declaration and every commit appears as `Verified` in GitHub - [x] Git hooks passed during commit and push, or `npx prek run --from-ref main --to-ref HEAD` passes - [x] Targeted tests pass for changed behavior - [ ] Full `npm test` passes (broad runtime changes only) - [x] Tests added or updated for new or changed behavior - [x] No secrets, API keys, or credentials committed - [x] Docs updated for user-facing behavior changes - [ ] `npm run docs` builds without warnings (doc changes only) - [ ] 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) --- <!-- DCO sign-off is required in this PR description, and every commit must appear as Verified in GitHub. Run: git config user.name && git config user.email --> Signed-off-by: San Dang <sdang@nvidia.com> <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Bug Fixes** * Messaging channel availability is now derived from each channel manifest’s `supportedAgents`, improving enable/disable, rebuild planning, and channel status matching. * DeepAgents startup and rebuild no longer include unsupported messaging runtime wiring, env handling, or messaging artifacts. * Channel add/cleanup gates now reject unsupported agent/channel pairs earlier with clearer “channel-supported agents” guidance. * **Documentation** * Updated platform support and DeepAgents eligibility guidance to make `supportedAgents` the single source of truth for messaging support. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Signed-off-by: San Dang <sdang@nvidia.com> Signed-off-by: Carlos Villela <cvillela@nvidia.com> Co-authored-by: Carlos Villela <cvillela@nvidia.com>
Summary
Terminal-runtime sandboxes now continue onboarding once OpenShell reports Ready, even when the VM create stream does not emit gateway-style startup output. This fixes DeepAgents Code onboarding hanging on macOS VM-driver hosts after the sandbox is already Ready.
Bugs
LangChain hang at sandbox build MacOS
Related Issue
Fixes #5766
Changes
tail -f /dev/nullidle path and emit a setup marker.Type of Change
Verification
Verifiedin GitHubnpx prek run --from-ref main --to-ref HEADpassesnpm testpasses (broad runtime changes only)npm run docsbuilds without warnings (doc changes only)Signed-off-by: San Dang sdang@nvidia.com
Summary by CodeRabbit