test(dcode): split image contracts by boundary - #6493
Conversation
Extract credential-boundary coverage and shared wrapper fixtures so each focused suite stays below the repository test-file ceiling. Update source comments to follow the moved canonical secret corpus. Co-authored-by: Aaron Erickson <aerickson@nvidia.com> Signed-off-by: Aaron Erickson <aerickson@nvidia.com> Signed-off-by: Carlos Villela <cvillela@nvidia.com>
|
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 (1)
🚧 Files skipped from review as they are similar to previous changes (1)
📝 WalkthroughWalkthroughThis PR extracts shared wrapper test helpers, adds a dedicated credential-boundary test suite, trims the original test file, and updates comments to reference the renamed test file. ChangesTest helper extraction and credential test suite split
Estimated code review effort: 3 (Moderate) | ~25 minutes Suggested labels: Suggested reviewers: 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Warning Tools execution failed with the following error: Failed to run tools: 13 INTERNAL: Received RST_STREAM with code 2 (Internal server error) Comment |
Code Coverage OverviewLanguages: TypeScript TypeScript / code-coverage/pluginThe overall coverage remains at 96%, unchanged from the TypeScript / code-coverage/cliThe overall coverage in the Show a code coverage summary of the most impacted files.
Updated |
E2E Advisor RecommendationRequired E2E: None Full advisor summaryE2E Recommendation AdvisorBase: Required E2E
Optional E2E
New E2E recommendations
|
E2E Target RecommendationRequired E2E targets: None Full E2E target advisor summaryE2E Target AdvisorBase: Required E2E targets
Optional E2E targets
Relevant changed files
|
There was a problem hiding this comment.
🧹 Nitpick comments (1)
test/helpers/langchain-deepagents-code-image.ts (1)
28-88: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick winDuplicated fixture-building logic between
makeWrapperFixtureandmakeNetworkSimulatingFixture.Both functions repeat the same read/patch/write/chmod sequence for the env-file substitution and wrapper file materialization. Consider factoring the shared prelude (reading +
DEEPAGENTS_ENV_FILEsubstitution + write/chmod) into a small private helper to reduce duplication.🤖 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 `@test/helpers/langchain-deepagents-code-image.ts` around lines 28 - 88, The fixture setup in makeWrapperFixture and makeNetworkSimulatingFixture duplicates the same read/patch/write/chmod flow for dcode-wrapper.sh and the DEEPAGENTS_ENV_FILE replacement. Extract that shared materialization logic into a small private helper that takes the target env path and wrapper content transformation, then have both functions call it and keep only their unique substitutions (auth files, ran marker, network log, and deepagents_code exec replacement) in place.
🤖 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 `@test/helpers/langchain-deepagents-code-image.ts`:
- Around line 28-88: The fixture setup in makeWrapperFixture and
makeNetworkSimulatingFixture duplicates the same read/patch/write/chmod flow for
dcode-wrapper.sh and the DEEPAGENTS_ENV_FILE replacement. Extract that shared
materialization logic into a small private helper that takes the target env path
and wrapper content transformation, then have both functions call it and keep
only their unique substitutions (auth files, ran marker, network log, and
deepagents_code exec replacement) in place.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Enterprise
Run ID: 3307e5a8-c365-4df6-8362-607062fc3a4f
📒 Files selected for processing (5)
agents/langchain-deepagents-code/dcode-wrapper.shagents/langchain-deepagents-code/managed-dcode-runtime.pytest/helpers/langchain-deepagents-code-image.tstest/langchain-deepagents-code-image-credentials.test.tstest/langchain-deepagents-code-image.test.ts
PR Review Advisor — No blocking findingsMerge posture: No blocking advisor findings This is an automated, non-binding review; it still expects maintainers and agents to respond to each required or warning item. Treat suggestions as current-PR improvements when they touch changed code; defer only with maintainer rationale or a linked follow-up. A human maintainer must make the final merge decision. |
PR Review Advisor (Nemotron Ultra) — No blocking findingsMerge posture: No blocking advisor findings Action checklist
Test follow-ups to resolve or justifyIf these cover changed behavior, prefer adding them in this PR; otherwise state why existing coverage is enough or link the follow-up.
This is an automated, non-binding review; it still expects maintainers and agents to respond to each required or warning item. Treat suggestions as current-PR improvements when they touch changed code; defer only with maintainer rationale or a linked follow-up. A human maintainer must make the final merge decision. |
Signed-off-by: Carlos Villela <cvillela@nvidia.com>
|
Review follow-up: the CodeRabbit fixture-helper duplication nit is resolved in 64ceea9. PRA-T1 justification: there is no linked issue or acceptance clause for this mechanical test split; behavior parity is covered by the unchanged 75-test focused suite, which passes locally. No separate test follow-up is needed. |
There was a problem hiding this comment.
🧹 Nitpick comments (2)
test/helpers/langchain-deepagents-code-image.ts (2)
70-70: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low valueDuplicate exec short-circuit target string.
"exec /opt/venv/bin/python3 -I -m deepagents_code"is hard-coded identically in bothmakeWrapperFixtureandmakeNetworkSimulatingFixture. Extracting it as a shared constant would prevent the two occurrences from silently drifting apart if the wrapper script changes.Also applies to: 86-87
🤖 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 `@test/helpers/langchain-deepagents-code-image.ts` at line 70, The wrapper script target string is duplicated in makeWrapperFixture and makeNetworkSimulatingFixture, which risks the two fixtures drifting apart. Extract the hard-coded exec command into a shared constant in test/helpers/langchain-deepagents-code-image.ts and have both fixture builders reference that symbol so there is a single source of truth for the short-circuit target.
28-91: 🩺 Stability & Availability | 🔵 Trivial | ⚡ Quick winUnverified
.replace()calls can silently produce broken fixtures.
materializeWrapperFixture,makeWrapperFixture, andmakeNetworkSimulatingFixtureall rely on chained.replace()calls against literal substrings fromdcode-wrapper.sh. UnlikestubManagedMcpValidator(which asserts its target string is absent), none of these substitutions verify a match actually occurred. If the wrapper script's quoting/variable naming ever drifts, these replacements become silent no-ops — fixtures would then point at real/sandbox/...paths instead of temp paths, and the exec short-circuit wouldn't fire. Since this helper is now shared across two large test suites, a silent break here has outsized blast radius and could mask real regressions or cause confusing failures.Consider asserting the source actually changed after each
.replace(), mirroring the existingstubManagedMcpValidatorpattern.♻️ Example approach
+function replaceOrThrow(source: string, target: string, replacement: string): string { + const updated = source.replace(target, replacement); + expect(updated).not.toBe(source); + return updated; +}Then use
replaceOrThrow(source, target, replacement)in place ofsource.replace(target, replacement)at each call site.🤖 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 `@test/helpers/langchain-deepagents-code-image.ts` around lines 28 - 91, The fixture builders in materializeWrapperFixture, makeWrapperFixture, and makeNetworkSimulatingFixture rely on chained string replacements that can fail silently if dcode-wrapper.sh changes. Update these substitutions to verify each target was actually replaced, using a helper like replaceOrThrow or an assertion after each replace, similar to stubManagedMcpValidator. Ensure the DEEPAGENTS_ENV_FILE, DEEPAGENTS_AUTH_FILE, DEEPAGENTS_CODEX_AUTH_FILE, python3 invocation, and deepagents_code exec short-circuit replacements all fail fast when the source text no longer matches.
🤖 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 `@test/helpers/langchain-deepagents-code-image.ts`:
- Line 70: The wrapper script target string is duplicated in makeWrapperFixture
and makeNetworkSimulatingFixture, which risks the two fixtures drifting apart.
Extract the hard-coded exec command into a shared constant in
test/helpers/langchain-deepagents-code-image.ts and have both fixture builders
reference that symbol so there is a single source of truth for the short-circuit
target.
- Around line 28-91: The fixture builders in materializeWrapperFixture,
makeWrapperFixture, and makeNetworkSimulatingFixture rely on chained string
replacements that can fail silently if dcode-wrapper.sh changes. Update these
substitutions to verify each target was actually replaced, using a helper like
replaceOrThrow or an assertion after each replace, similar to
stubManagedMcpValidator. Ensure the DEEPAGENTS_ENV_FILE, DEEPAGENTS_AUTH_FILE,
DEEPAGENTS_CODEX_AUTH_FILE, python3 invocation, and deepagents_code exec
short-circuit replacements all fail fast when the source text no longer matches.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Enterprise
Run ID: 908fbb93-52bf-4b6d-b04a-80cf567725b7
📒 Files selected for processing (1)
test/helpers/langchain-deepagents-code-image.ts
Signed-off-by: Carlos Villela <cvillela@nvidia.com> Co-authored-by: Aaron Erickson <aerickson@nvidia.com> Signed-off-by: Aaron Erickson <aerickson@nvidia.com>
|
Review follow-up: both latest CodeRabbit nits are resolved in 6b140db. The Deep Agents Code exec target is centralized, and every fixture substitution now requires exactly one source match so wrapper drift fails fast. The focused suite remains 75/75. |
|
PRA-T1 runtime-validation justification: the only changes under agents/langchain-deepagents-code are comment-only test-reference updates; executable runtime behavior is unchanged. The split preserves all original assertions, and the focused integration suites pass 75/75. The E2E advisor also reports that no runtime or live-flow validation is required, so no additional test follow-up is needed for this PR. |
<!-- markdownlint-disable MD041 --> ## Summary Adds a shared deterministic regression risk plan for the PR head commit and changed-file set to PR Review Advisor and E2E Advisor. Known high-risk runtime surfaces now restore a reviewed floor of required E2E jobs even when a model omits or downgrades them. Execution is intentionally separated from plan generation: stacked follow-up #6447 consumes this contract in a trusted post-merge shadow gate without exposing repository secrets to unmerged code. PR Review Advisor analysis is split into seven bounded, evidence-focused turns with completion logs and per-turn response artifacts, improving review visibility and traceability while preserving one read-only session and the existing final JSON/comment contract. The seven stages now live in one ordered array. Stage names, evidence, prompt text, runtime numbering, and artifact ordering derive from that single declaration instead of parallel hard-coded topology. ## Changes - Add a stable risk-plan contract with lifecycle, upgrade, agent, inference, messaging, platform, credential, and security invariants. - Keep the canonical cloud-onboard live target in the platform-install floor through an explicit test-file allowlist, while ordinary tests remain excluded. - Feed the plan into PR Review Advisor scope/risk, security/trust, and tests/regressions contexts and both E2E Advisor normalizers.\n- Deduplicate optional recommendations against deterministic required jobs by both selector ID and workflow job. - Clarify commit references in advisor, E2E, and security-review documentation. - Emit `risk-plan.json` from both E2E Advisor lanes with a plan hash, required jobs, capped automatic candidates, and manual-expansion state; PR Review Advisor exposes the same plan through its scoped context artifacts. - Replace four uneven advisor turns with seven bounded stages: scope/risk, correctness/state, security/trust, tests/regressions, CI/operations, reconciliation, and final synthesis. - Derive turn numbering and prompt-artifact ordering from the ordered stage declaration, and remove five duplicate standalone context JSONs while retaining the same evidence in per-stage synthetic-tool artifacts. - Log every turn boundary and persist each settled response immediately, including partial output and failure/timeout status, while treating missing trace artifacts as fatal. - Leave live enforcement to stacked follow-up #6447 so this PR remains a reviewable deterministic planning primitive. - Remove unused PR-advisor check-wait configuration and align contributor-facing documentation with actual workflow behavior. - Add focused normalization, prompt, risk-mapping, workflow-inventory, and review-depth regression tests. ## 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) ## Quality Gates <!-- Check exactly one tests line and one docs line. Check other lines when applicable. Add every requested justification or approval reference. --> - [x] Tests added or updated for changed behavior - [ ] Existing tests cover changed behavior — justification: - [ ] Tests not applicable — justification: - [ ] Docs updated for user-facing behavior changes - [x] Docs not applicable — justification: Internal CI/advisor behavior only; contributor-facing tool and E2E documentation was updated, with no Fern user documentation required. - [x] Sensitive paths changed (security, policy, credentials, preflight, onboarding, inference, runner, sandbox, or messaging) - [x] Sensitive-path review completed or maintainer-approved waiver recorded — reviewer/approval link/justification: Automated and local security review confirmed the deterministic floor is additive, bound to the PR head commit and changed-file set, capped, and does not itself execute secret-bearing live E2E work; enforcement is isolated in #6447. - [ ] Non-success, skipped, or missing CI check accepted by maintainer — check name, approval link, and follow-up issue: ## Verification <!-- Check each applicable item only when supported by the requested evidence. Run targeted tests once per relevant change set and rerun after later edits or hook autofixes that can affect the tested behavior. Do not rerun hook-covered checks. --> - [x] PR description includes the DCO sign-off declaration 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 — 112 focused risk-plan, PR-advisor, E2E-advisor, workflow-boundary, and maintainer-policy tests passed; the E2E-advisor suite was rerun after the final normalization fix (7/7); CLI typechecking, Biome, test-size, and Vitest project-membership checks passed - [ ] Applicable broad gate passed — CI for PR head commit `9700a6ba` has 39 successful checks and 2 expected skips. `static-checks` fails only because merged #6441 left `test/langchain-deepagents-code-image.test.ts` at 1501 lines against the 1500-line mainline ceiling; aggregate `checks` mirrors that failure. The repair is tracked in #6493. - [x] Quality Gates section completed with required justifications or waivers - [x] No secrets, API keys, or credentials committed - [x] `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: Carlos Villela <cvillela@nvidia.com> --------- Signed-off-by: Carlos Villela <cvillela@nvidia.com>
<!-- markdownlint-disable MD041 --> ## Summary Splits the oversized Deep Agents Code image contract test into focused image and credential-boundary suites, with shared wrapper fixtures. This extracts the test-only split from NVIDIA#6431 so it can land independently and restores the 1,500-line budget without changing assertions or adding an exception. ## Changes - Move all 57 credential-boundary tests byte-for-byte into `test/langchain-deepagents-code-image-credentials.test.ts`, leaving 18 image contracts in the original suite. - Extract shared Deep Agents Code file and wrapper fixtures into `test/helpers/langchain-deepagents-code-image.ts`. - Update source comments that identify the canonical secret-corpus regression test. ## 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) ## Quality Gates <!-- Check exactly one tests line and one docs line. Check other lines when applicable. Add every requested justification or approval reference. --> - [ ] Tests added or updated for changed behavior - [x] Existing tests cover changed behavior — justification: this structural split preserves all 75 existing test cases and assertions; both focused suites pass together. - [ ] Tests not applicable — justification: - [ ] Docs updated for user-facing behavior changes - [x] Docs not applicable — justification: no product behavior changed, and documentation review confirmed the existing `SECURITY.md` reference remains accurate. - [x] Sensitive paths changed (security, policy, credentials, preflight, onboarding, inference, runner, sandbox, or messaging) - [x] Sensitive-path review completed or maintainer-approved waiver recorded — reviewer/approval link/justification: credential assertions moved byte-for-byte, source changes are comment-only, and the focused 75-test integration run passed. - [ ] Non-success, skipped, or missing CI check accepted by maintainer — check name, approval link, and follow-up issue: ## Verification <!-- Check each applicable item only when supported by the requested evidence. Run targeted tests once per relevant change set and rerun after later edits or hook autofixes that can affect the tested behavior. Do not rerun hook-covered checks. --> - [x] PR description includes the DCO sign-off declaration 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 — command/result or justification: `npx vitest run --project integration test/langchain-deepagents-code-image.test.ts test/langchain-deepagents-code-image-credentials.test.ts` (2 files, 75 tests passed); `npm run test-size:check`, `npm run test:projects:check`, `npm run test:titles:check`, and `npm run source-shape:check` passed. - [ ] Applicable broad gate passed — `npm test` for broad runtime/test-harness changes; `npm run check` for repo-wide validation/coverage changes — command/result: - [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) - [ ] 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: Carlos Villela <cvillela@nvidia.com> <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Tests** * Added shared integration-test utilities to create temporary wrapper fixtures and execute them in a controlled environment. * Introduced a dedicated credential boundary test suite to verify secret-shape rejection, strict placeholder matching, token-format exceptions, auth/credential store fail-closed behavior, and disallowed mutation/command inputs. * Updated the existing image test suite to reuse the shared helpers and remove redundant scenarios. * **Documentation** * Updated a SECURITY/guard comment to reference the correct regression test corpus for secret-pattern parity. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Signed-off-by: Aaron Erickson <aerickson@nvidia.com> Signed-off-by: Carlos Villela <cvillela@nvidia.com> Co-authored-by: Aaron Erickson <aerickson@nvidia.com> Co-authored-by: cjagwani <cjagwani@nvidia.com>
<!-- markdownlint-disable MD041 --> ## Summary Adds a shared deterministic regression risk plan for the PR head commit and changed-file set to PR Review Advisor and E2E Advisor. Known high-risk runtime surfaces now restore a reviewed floor of required E2E jobs even when a model omits or downgrades them. Execution is intentionally separated from plan generation: stacked follow-up NVIDIA#6447 consumes this contract in a trusted post-merge shadow gate without exposing repository secrets to unmerged code. PR Review Advisor analysis is split into seven bounded, evidence-focused turns with completion logs and per-turn response artifacts, improving review visibility and traceability while preserving one read-only session and the existing final JSON/comment contract. The seven stages now live in one ordered array. Stage names, evidence, prompt text, runtime numbering, and artifact ordering derive from that single declaration instead of parallel hard-coded topology. ## Changes - Add a stable risk-plan contract with lifecycle, upgrade, agent, inference, messaging, platform, credential, and security invariants. - Keep the canonical cloud-onboard live target in the platform-install floor through an explicit test-file allowlist, while ordinary tests remain excluded. - Feed the plan into PR Review Advisor scope/risk, security/trust, and tests/regressions contexts and both E2E Advisor normalizers.\n- Deduplicate optional recommendations against deterministic required jobs by both selector ID and workflow job. - Clarify commit references in advisor, E2E, and security-review documentation. - Emit `risk-plan.json` from both E2E Advisor lanes with a plan hash, required jobs, capped automatic candidates, and manual-expansion state; PR Review Advisor exposes the same plan through its scoped context artifacts. - Replace four uneven advisor turns with seven bounded stages: scope/risk, correctness/state, security/trust, tests/regressions, CI/operations, reconciliation, and final synthesis. - Derive turn numbering and prompt-artifact ordering from the ordered stage declaration, and remove five duplicate standalone context JSONs while retaining the same evidence in per-stage synthetic-tool artifacts. - Log every turn boundary and persist each settled response immediately, including partial output and failure/timeout status, while treating missing trace artifacts as fatal. - Leave live enforcement to stacked follow-up NVIDIA#6447 so this PR remains a reviewable deterministic planning primitive. - Remove unused PR-advisor check-wait configuration and align contributor-facing documentation with actual workflow behavior. - Add focused normalization, prompt, risk-mapping, workflow-inventory, and review-depth regression tests. ## 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) ## Quality Gates <!-- Check exactly one tests line and one docs line. Check other lines when applicable. Add every requested justification or approval reference. --> - [x] Tests added or updated for changed behavior - [ ] Existing tests cover changed behavior — justification: - [ ] Tests not applicable — justification: - [ ] Docs updated for user-facing behavior changes - [x] Docs not applicable — justification: Internal CI/advisor behavior only; contributor-facing tool and E2E documentation was updated, with no Fern user documentation required. - [x] Sensitive paths changed (security, policy, credentials, preflight, onboarding, inference, runner, sandbox, or messaging) - [x] Sensitive-path review completed or maintainer-approved waiver recorded — reviewer/approval link/justification: Automated and local security review confirmed the deterministic floor is additive, bound to the PR head commit and changed-file set, capped, and does not itself execute secret-bearing live E2E work; enforcement is isolated in NVIDIA#6447. - [ ] Non-success, skipped, or missing CI check accepted by maintainer — check name, approval link, and follow-up issue: ## Verification <!-- Check each applicable item only when supported by the requested evidence. Run targeted tests once per relevant change set and rerun after later edits or hook autofixes that can affect the tested behavior. Do not rerun hook-covered checks. --> - [x] PR description includes the DCO sign-off declaration 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 — 112 focused risk-plan, PR-advisor, E2E-advisor, workflow-boundary, and maintainer-policy tests passed; the E2E-advisor suite was rerun after the final normalization fix (7/7); CLI typechecking, Biome, test-size, and Vitest project-membership checks passed - [ ] Applicable broad gate passed — CI for PR head commit `9700a6ba` has 39 successful checks and 2 expected skips. `static-checks` fails only because merged NVIDIA#6441 left `test/langchain-deepagents-code-image.test.ts` at 1501 lines against the 1500-line mainline ceiling; aggregate `checks` mirrors that failure. The repair is tracked in NVIDIA#6493. - [x] Quality Gates section completed with required justifications or waivers - [x] No secrets, API keys, or credentials committed - [x] `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: Carlos Villela <cvillela@nvidia.com> --------- Signed-off-by: Carlos Villela <cvillela@nvidia.com>
Summary
Splits the oversized Deep Agents Code image contract test into focused image and credential-boundary suites, with shared wrapper fixtures. This extracts the test-only split from #6431 so it can land independently and restores the 1,500-line budget without changing assertions or adding an exception.
Changes
test/langchain-deepagents-code-image-credentials.test.ts, leaving 18 image contracts in the original suite.test/helpers/langchain-deepagents-code-image.ts.Type of Change
Quality Gates
SECURITY.mdreference remains accurate.Verification
Verifiedin GitHubpre-commit,commit-msg, andpre-pushhooks passed, ornpm run check:diffpassed when hooks were skipped or unavailablenpx vitest run --project integration test/langchain-deepagents-code-image.test.ts test/langchain-deepagents-code-image-credentials.test.ts(2 files, 75 tests passed);npm run test-size:check,npm run test:projects:check,npm run test:titles:check, andnpm run source-shape:checkpassed.npm 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: Carlos Villela cvillela@nvidia.com
Summary by CodeRabbit