Skip to content

feat(policy): add Personal onboarding tier - #8431

Merged
ericksoa merged 5 commits into
mainfrom
feat/personal-policy-tier
Aug 6, 2026
Merged

feat(policy): add Personal onboarding tier#8431
ericksoa merged 5 commits into
mainfrom
feat/personal-policy-tier

Conversation

@ericksoa

@ericksoa ericksoa commented Aug 6, 2026

Copy link
Copy Markdown
Contributor

Summary

Add a selectable Personal policy tier for trusted single-user environments and make the hidden portable experimental profile select it by default. Personal now uses the broadest practical network policy exposed by OpenShell v0.0.85 for Docker and Podman: every sandbox binary can open TCP connections on destination ports 80 and 443 to hosts whose resolved addresses are in the preset's broad public and private ranges, while OpenShell's unspecified, loopback, and link-local blocks remain active.

Changes

  • Add personal-open-internet, a hostless allowed_ips L4 preset covering broad IPv4, global IPv6, and unique-local IPv6 ranges on ports 80 and 443 for /** binaries.
  • Extend NemoClaw's network-policy schema and onboarding disclosure to support OpenShell hostless endpoints and ports arrays without hiding their address scope.
  • Make Personal select the open-internet preset plus every maintained preset supported by the active agent, for 30 maintained preset definitions in the tier.
  • Keep custom presets from using the broad hostless escape hatch; the open-internet rule is confined to the maintained built-in Personal preset.
  • Default the hidden portable experimental profile to Personal policy and direct tool disclosure while preserving an explicit --tool-disclosure override.
  • Document the arbitrary-TCP-on-80/443 threat model, lack of application-layer inspection, private-network reachability, hard exclusions, and default denial on other ports.
  • Reconcile simultaneous main readiness-resolver changes so the refreshed branch typechecks and its remediable-storage fixture uses the active preset requirements.

OpenShell v0.0.85 rejects a bare all-host wildcard, exposes no Docker/Podman flag for disabling network enforcement, and matches ports exactly rather than supporting an all-port wildcard. The supported hostless allowed_ips path is therefore used here instead of claiming that policy enforcement is disabled.

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)

Quality Gates

  • Tests added or updated for changed behavior
  • Existing tests cover changed behavior — justification:
  • Tests not applicable — justification:
  • 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: Maintainer-requested trusted-personal posture; exact OpenShell v0.0.85 runtime proof, negative hard-range proof, custom-preset rejection coverage, and exact-head documentation-writer review completed. Normal PR review remains required.
  • Non-success, skipped, or missing CI check accepted by maintainer — check name, approval link, and follow-up issue:

Documentation Writer Review

  • Documentation writer subagent reviewed the completed changes
  • Result: docs-updated
  • Evidence: docs/reference/commands.mdx, docs/reference/network-policies.mdx, docs/security/best-practices.mdx
  • Agent: Codex Desktop

DGX Station Hardware Evidence

  • Tested on DGX Station
  • Tested commit: Not applicable; scripts/prepare-dgx-station-host.sh is unchanged.
  • Station profile/scenario: Not applicable.
  • Result: Not applicable.
  • Supporting evidence: Not applicable.

Verification

  • PR description includes a Signed-off-by: line and every commit appears as Verified in GitHub — PR feat(policy): add Personal onboarding tier #8431 now contains four SSH-signed commits plus one GitHub-signed conflict-resolution merge, and GitHub reports all five as Verified.
  • Normal pre-commit, commit-msg, and pre-push hooks passed, or npm run validate:pr passed after refreshing origin/main when hooks were skipped or unavailable
  • Targeted behavior tests pass for the current change set, or tests are marked not applicable above — 218 focused policy/schema tests passed after the main refresh; src/lib/onboard/command.test.ts passed 36/36; src/lib/inference/serving/resolver.test.ts passed 34/34; the one policy-adapter subprocess that hit its 15-second suite timeout passed when rerun alone; all 50 configs pass schema validation; the Personal boundary suite passes 5/5 with both ports and normalized hard-range cases.
  • Applicable broad gate passed — npm test for broad runtime/test-harness changes; npm run check for repo-wide validation/coverage changes — command/result: PR CI pending. An earlier npm run test:changed run passed 984/993 tests; affected failures passed in isolation except the unrelated local Homebrew trust prerequisite in rebuild-resume-snapshot.test.ts.
  • Quality Gates section completed with required justifications or waivers
  • No secrets, API keys, or credentials committed
  • npm run docs builds without warnings (doc changes only) — 0 errors and 2 existing unprinted Fern warnings.
  • Doc pages follow the style guide (doc changes only)
  • New doc pages include SPDX header and frontmatter (new pages only)

Runtime proof: the standalone preset and the fully composed Personal tier were exercised through an isolated official OpenShell v0.0.85 gateway using openshell/sandbox-from:1783990254. HTTPS to example.com and api.github.com and HTTP to example.com succeeded; forced access to 169.254.169.254 was denied. All 30 Personal preset names composed successfully under the exact v0.0.85 policy parser and supervisor.


Signed-off-by: Aaron Erickson aerickson@nvidia.com

Summary by CodeRabbit

  • New Features

    • Added a Personal policy tier with broad read-write access to maintained service presets and TCP connectivity on ports 80 and 443.
    • Personal preserves applicable web-search and observability presets.
    • Portable onboarding, installation, resume, and non-interactive policy flows now recognize Personal.
    • Network policies support multiple ports and IP-based endpoints.
  • Documentation

    • Documented Personal safeguards, networking behavior, access scope, and trusted-workload guidance.
  • Bug Fixes

    • Improved endpoint display and validation for hostless endpoints, ports, and allowed IP addresses.
    • Improved readiness handling for single-component versions and storage remediation.
    • Improved agent-specific preset filtering, including Brave.

@ericksoa ericksoa self-assigned this Aug 6, 2026
@coderabbitai

coderabbitai Bot commented Aug 6, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

📝 Walkthrough

Walkthrough

The PR adds a personal policy tier with read-write access to maintained presets supported by the active agent. It adds broad HTTP/HTTPS policy support, updates onboarding and validation paths, changes endpoint rendering and schema rules, and expands tests and documentation.

Changes

Personal policy tier

Layer / File(s) Summary
Tier contract and preset access
nemoclaw-blueprint/policies/tiers.yaml, src/lib/policy/tiers.ts, test/policy-tiers.test.ts
Defines the Personal tier and its maintained read-write presets.
Personal internet preset and endpoint contracts
nemoclaw-blueprint/policies/presets/personal-open-internet.yaml, schemas/network-policy.schema.json, test/personal-open-internet-policy.test.ts, test/validate-config-schemas.test.ts, src/lib/policy/preset-allowed-ips.test.ts
Adds hostless HTTP/HTTPS access on ports 80 and 443. Validates explicit address ranges and mutually exclusive port forms.
Endpoint scope extraction and rendering
src/lib/policy/preset-scope-render.ts, src/lib/policy/preset-scope-render.test.ts
Renders hostless endpoints, multiple ports, allowed IPs, and binaries.
Preset suggestion and agent filtering
src/lib/onboard/policy-selection.ts, src/lib/onboard/policy-selection-prompts.ts, src/lib/onboard/openclaw-otel-policy-presets.ts, test/policy-tiers-onboard.test.ts, test/onboard-policy-suggestions.test.ts
Preserves applicable web-search presets and applies agent-specific Personal selections.
Onboarding defaults and tier validation
src/lib/onboard/command.ts, src/lib/onboard/command.test.ts, src/lib/onboard/sandbox-create-plan.*, src/lib/onboard/station-express-resume.*, scripts/install.sh, docs/reference/commands.mdx
Sets portable Personal defaults and accepts the tier during sandbox creation and installer resume flows.
Readiness capability and version handling
src/lib/inference/serving/resolver.ts, src/lib/inference/serving/resolver.test.ts
Derives storage-remediation readiness from the selected preset, removes legacy comparison helpers, and accepts single-component numeric versions.
Policy and security documentation
docs/reference/network-policies.mdx, docs/security/best-practices.mdx
Documents Personal access, network behavior, observability defaults, destination restrictions, and trusted-workload guidance.

Estimated code review effort: 4 (Complex) | ~45 minutes

Sequence Diagram(s)

sequenceDiagram
  participant Operator
  participant Onboarding
  participant PolicySelection
  participant SandboxPolicy
  participant NetworkPolicy
  Operator->>Onboarding: choose personal tier
  Onboarding->>PolicySelection: resolve tier and presets
  PolicySelection->>SandboxPolicy: retain applicable maintained presets
  SandboxPolicy->>NetworkPolicy: merge personal-open-internet
  NetworkPolicy-->>Onboarding: validate hostless ports and allowed IP ranges
Loading

Possibly related PRs

Suggested labels: area: policy, area: onboarding, feature

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
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.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely describes the main change: adding a Personal onboarding policy tier.
✨ Finishing Touches 💡 1
📝 Generate docstrings 💡
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/personal-policy-tier

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

@github-code-quality

github-code-quality Bot commented Aug 6, 2026

Copy link
Copy Markdown
Contributor

Code Coverage Overview

Languages: TypeScript

TypeScript / code-coverage/plugin

The overall coverage in commit de69e0d in the feat/personal-policy... branch remains at 96%, unchanged from commit e40ca39 in the main branch.

TypeScript / code-coverage/cli

The overall coverage in commit de69e0d in the feat/personal-policy... branch remains at 82%, unchanged from commit e40ca39 in the main branch.

Show a code coverage summary of the most impacted files.
File main e40ca39 feat/personal-policy... de69e0d +/-
src/lib/inferen...er-discovery.ts 88% 87% -1%
src/lib/onboard...press-resume.ts 76% 76% 0%
src/lib/onboard/command.ts 95% 95% 0%
src/lib/policy/tiers.ts 88% 88% 0%
src/lib/onboard...licy-presets.ts 100% 100% 0%
src/lib/onboard...-transaction.ts 94% 94% 0%
src/lib/policy/index.ts 61% 61% 0%
src/lib/credentials/store.ts 55% 56% +1%
src/lib/onboard...cy-selection.ts 95% 96% +1%
src/lib/policy/...scope-render.ts 93% 94% +1%

Updated August 06, 2026 06:29 UTC

@github-actions

github-actions Bot commented Aug 6, 2026

Copy link
Copy Markdown
Contributor

@github-actions

github-actions Bot commented Aug 6, 2026

Copy link
Copy Markdown
Contributor

PR Review Advisor — No blocking findings reported

Advisor assessment: No blocking advisor findings reported
Next action: Review the warnings below.
Findings: 0 blockers · 2 warnings · 0 suggestions

Model lanes

  • GPT-5.6 Terra (primary): Completed · high confidence · 0 blockers · 2 warnings · 0 suggestions
  • Nemotron 3 Ultra (second opinion): Failed after a partial review · low confidence · 0 blockers · 2 warnings · 0 suggestions

Second-opinion terminology and E2E selections are advisory. They do not change the primary assessment or E2E / PR Gate.

3 semantic terminology decisions

Terminology decisions are advisory. They affect the assessment only when a separate finding identifies concrete semantic impact.

  • established — Personal tier at docs/reference/network-policies.mdx:141: Use Personal tier consistently for the named personal policy posture.
  • justified — hostless endpoint at nemoclaw-blueprint/policies/presets/personal-open-internet.yaml:12: Retain hostless endpoint where the text needs to distinguish this allowed_ips-based rule from hostname-scoped endpoint rules.
  • established — L4 passthrough at docs/reference/network-policies.mdx:158: Use L4 passthrough consistently when describing this transport-layer policy behavior.

E2E guidance

Advisory only. E2E / PR Gate selects and runs jobs independently.

Recommended E2E: cloud-inference, cloud-onboard, managed-image-multiarch-startup, security-posture, inference-routing, network-policy, onboard-repair, onboard-resume

1 optional E2E recommendation
  • bootstrap-install-smoke
2 warnings · 0 suggestions

Warnings

Warnings do not block.

PRA-1 Warning — Exercise Personal policy enforcement through OpenShell

  • Location: test/personal-open-internet-policy.test.ts:37
  • Category: security
  • Problem: The new tests parse the preset and evaluate its CIDRs with Node.js BlockList, but do not send connections through the OpenShell gateway that resolves hosts and enforces hostless allowed_ips.
  • Impact: A difference between local CIDR matching and OpenShell DNS resolution or address normalization could allow a forbidden destination or deny the intended route without checked-in regression evidence.
  • Recommendation: Add an OpenShell gateway integration test for the composed Personal policy. Prove allowed public and private destinations work, and prove unspecified, loopback, link-local, and IPv4-mapped blocked destinations fail.
  • Verification: Inspect an integration test that creates the composed Personal policy in OpenShell and attempts representative allowed and denied connections through the gateway.
  • Test coverage: An OpenShell enforcement-boundary test that covers ports 80 and 443, an allowed public address, an allowed private address, and blocked unspecified, loopback, link-local, and IPv4-mapped address forms.
  • Evidence: test/personal-open-internet-policy.test.ts:37-120 uses YAML.parse and node:net BlockList rather than an OpenShell gateway. nemoclaw-blueprint/policies/presets/personal-open-internet.yaml:12-49 introduces a hostless allowed_ips rule for every sandbox binary on ports 80 and 443.

PRA-2 Warning — Cover single-component readiness versions

  • Location: src/lib/inference/serving/resolver.test.ts:594
  • Category: tests
  • Problem: The version comparator now accepts a numeric version with one component, but the changed tests cover only dotted actual and minimum versions.
  • Impact: A later comparator change can regress the newly accepted one-component version form without failing the current test suite.
  • Recommendation: Add table-driven version-at-least cases for a one-component actual version, a one-component minimum version, and malformed one-token values.
  • Verification: Inspect resolver tests for cases such as actual 581 against minimum 580.65.6, actual 580.65.6 against minimum 580, and malformed values rejected by resolveManagedInferenceServing.
  • Test coverage: A resolver test that proves valid one-component versions compare numerically with dotted versions and malformed single-token versions reject selection.
  • Evidence: src/lib/inference/serving/resolver.ts:171-176 accepts one-component numeric dotted versions. src/lib/inference/serving/resolver.test.ts:594-655 covers multi-component matching and malformed 580.65.x only.

Workflow run details

This automated review informs maintainers. Warnings and suggestions do not require a response. A maintainer decides whether to merge.

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

Actionable comments posted: 1

🤖 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.

Inline comments:
In `@src/lib/onboard/command.ts`:
- Around line 263-268: Update the portable profile environment-default logic
around NEMOCLAW_POLICY_TIER so an explicitly provided restrictive tier remains
restricted instead of being replaced by personal; apply personal only when the
tier is not explicitly set, while preserving the profile’s portable validation.
🪄 Autofix

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: 186d7f74-111e-4f49-8fb3-8e48649fd381

📥 Commits

Reviewing files that changed from the base of the PR and between bf429e9 and 94ae60a.

📒 Files selected for processing (16)
  • docs/reference/commands.mdx
  • docs/reference/network-policies.mdx
  • docs/security/best-practices.mdx
  • nemoclaw-blueprint/policies/tiers.yaml
  • scripts/install.sh
  • src/lib/onboard/command.test.ts
  • src/lib/onboard/command.ts
  • src/lib/onboard/policy-selection-prompts.ts
  • src/lib/onboard/policy-selection.ts
  • src/lib/onboard/sandbox-create-plan.test.ts
  • src/lib/onboard/sandbox-create-plan.ts
  • src/lib/onboard/station-express-resume.test.ts
  • src/lib/onboard/station-express-resume.ts
  • src/lib/policy/tiers.ts
  • test/policy-tiers-onboard.test.ts
  • test/policy-tiers.test.ts

Comment thread src/lib/onboard/command.ts
@copy-pr-bot

copy-pr-bot Bot commented Aug 6, 2026

Copy link
Copy Markdown

This pull request requires additional validation before any workflows can run on NVIDIA's runners.

Pull request vetters can view their responsibilities here.

Contributors can view more details about this message here.

@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)
src/lib/onboard/command.test.ts (1)

509-520: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Assert restoration of the new portable variables after manifest errors.

The portable case checks only the four legacy environment variables. runOnboardCommand applies the portable environment before applyAgentsManifestEnv parses --agents. Add NEMOCLAW_POLICY_MODE, NEMOCLAW_POLICY_TIER, and NEMOCLAW_TOOL_DISCLOSURE to testCase.keys; otherwise a regression that leaks one of these values after the YAML parse error can pass this test.

Suggested test update
       keys: [
         "NEMOCLAW_EXPERIMENTAL_PROFILE",
         "NEMOCLAW_PROVIDER",
         "NEMOCLAW_MODEL",
         "NEMOCLAW_OLLAMA_NO_AUTOSTART",
+        "NEMOCLAW_POLICY_MODE",
+        "NEMOCLAW_POLICY_TIER",
+        "NEMOCLAW_TOOL_DISCLOSURE",
       ],

As per path instructions, review tests for behavioral confidence at the public boundary.

🤖 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 `@src/lib/onboard/command.test.ts` around lines 509 - 520, Extend the portable
profile test case’s testCase.keys list to include NEMOCLAW_POLICY_MODE,
NEMOCLAW_POLICY_TIER, and NEMOCLAW_TOOL_DISCLOSURE, so restoration is verified
for all portable environment variables after the manifest YAML parse error. Keep
the existing legacy variable assertions unchanged.

Source: Path instructions

🤖 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 `@src/lib/onboard/command.test.ts`:
- Around line 509-520: Extend the portable profile test case’s testCase.keys
list to include NEMOCLAW_POLICY_MODE, NEMOCLAW_POLICY_TIER, and
NEMOCLAW_TOOL_DISCLOSURE, so restoration is verified for all portable
environment variables after the manifest YAML parse error. Keep the existing
legacy variable assertions unchanged.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: 7b153933-3529-469c-ac21-323c5cfdbf84

📥 Commits

Reviewing files that changed from the base of the PR and between 94ae60a and f4f3d25.

📒 Files selected for processing (3)
  • docs/reference/commands.mdx
  • src/lib/onboard/command.test.ts
  • src/lib/onboard/command.ts
🚧 Files skipped from review as they are similar to previous changes (2)
  • src/lib/onboard/command.ts
  • docs/reference/commands.mdx

@ericksoa
ericksoa force-pushed the feat/personal-policy-tier branch from b522445 to f3bf8f1 Compare August 6, 2026 05:12
@coderabbitai

coderabbitai Bot commented Aug 6, 2026

Copy link
Copy Markdown
Contributor

Note

GitHub couldn't provide a complete incremental comparison for this pull request, so CodeRabbit is performing a full review instead. This review may take a little longer.

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

Actionable comments posted: 1

🤖 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.

Inline comments:
In `@nemoclaw-blueprint/policies/tiers.yaml`:
- Around line 53-57: Add connection-boundary negative-path tests for the
personal-open-internet preset, covering loopback, link-local, unspecified,
IPv4-mapped, and normalized IPv4/IPv6 destinations on ports 80 and 443. Keep
existing CIDR, composition, and unrelated policy coverage unchanged, and assert
these disallowed targets remain blocked.
🪄 Autofix

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: 2e7da59b-51ef-4691-a55e-406cc4d5854d

📥 Commits

Reviewing files that changed from the base of the PR and between ce9d174 and f3bf8f1.

📒 Files selected for processing (25)
  • docs/reference/commands.mdx
  • docs/reference/network-policies.mdx
  • docs/security/best-practices.mdx
  • nemoclaw-blueprint/policies/presets/personal-open-internet.yaml
  • nemoclaw-blueprint/policies/tiers.yaml
  • schemas/network-policy.schema.json
  • scripts/install.sh
  • src/lib/inference/serving/resolver.test.ts
  • src/lib/inference/serving/resolver.ts
  • src/lib/onboard/command.test.ts
  • src/lib/onboard/command.ts
  • src/lib/onboard/policy-selection-prompts.ts
  • src/lib/onboard/policy-selection.ts
  • src/lib/onboard/sandbox-create-plan.test.ts
  • src/lib/onboard/sandbox-create-plan.ts
  • src/lib/onboard/station-express-resume.test.ts
  • src/lib/onboard/station-express-resume.ts
  • src/lib/policy/preset-allowed-ips.test.ts
  • src/lib/policy/preset-scope-render.test.ts
  • src/lib/policy/preset-scope-render.ts
  • src/lib/policy/tiers.ts
  • test/personal-open-internet-policy.test.ts
  • test/policy-tiers-onboard.test.ts
  • test/policy-tiers.test.ts
  • test/validate-config-schemas.test.ts
🚧 Files skipped from review as they are similar to previous changes (23)
  • src/lib/onboard/policy-selection-prompts.ts
  • test/validate-config-schemas.test.ts
  • src/lib/policy/preset-allowed-ips.test.ts
  • src/lib/onboard/command.test.ts
  • src/lib/inference/serving/resolver.ts
  • src/lib/policy/preset-scope-render.test.ts
  • src/lib/inference/serving/resolver.test.ts
  • src/lib/onboard/sandbox-create-plan.test.ts
  • nemoclaw-blueprint/policies/presets/personal-open-internet.yaml
  • src/lib/onboard/policy-selection.ts
  • scripts/install.sh
  • test/policy-tiers-onboard.test.ts
  • src/lib/policy/tiers.ts
  • schemas/network-policy.schema.json
  • docs/reference/commands.mdx
  • test/personal-open-internet-policy.test.ts
  • src/lib/policy/preset-scope-render.ts
  • src/lib/onboard/command.ts
  • test/policy-tiers.test.ts
  • docs/security/best-practices.mdx
  • src/lib/onboard/sandbox-create-plan.ts
  • src/lib/onboard/station-express-resume.ts
  • docs/reference/network-policies.mdx

Comment thread nemoclaw-blueprint/policies/tiers.yaml
@coderabbitai

coderabbitai Bot commented Aug 6, 2026

Copy link
Copy Markdown
Contributor

Note

GitHub couldn't provide a complete incremental comparison for this pull request, so CodeRabbit is performing a full review instead. This review may take a little longer.

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

Actionable comments posted: 1

🤖 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.

Inline comments:
In `@test/personal-open-internet-policy.test.ts`:
- Around line 36-38: In the CIDR validation test, remove the if statement
guarding invalid values and replace it with direct assertions that validate
family and prefix parsing, preserving the clear “invalid policy CIDR” failure
message for malformed CIDRs.
🪄 Autofix

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: 298f5e76-7f29-4632-b11d-41d74327305e

📥 Commits

Reviewing files that changed from the base of the PR and between ce9d174 and 3ea4b02.

📒 Files selected for processing (25)
  • docs/reference/commands.mdx
  • docs/reference/network-policies.mdx
  • docs/security/best-practices.mdx
  • nemoclaw-blueprint/policies/presets/personal-open-internet.yaml
  • nemoclaw-blueprint/policies/tiers.yaml
  • schemas/network-policy.schema.json
  • scripts/install.sh
  • src/lib/inference/serving/resolver.test.ts
  • src/lib/inference/serving/resolver.ts
  • src/lib/onboard/command.test.ts
  • src/lib/onboard/command.ts
  • src/lib/onboard/policy-selection-prompts.ts
  • src/lib/onboard/policy-selection.ts
  • src/lib/onboard/sandbox-create-plan.test.ts
  • src/lib/onboard/sandbox-create-plan.ts
  • src/lib/onboard/station-express-resume.test.ts
  • src/lib/onboard/station-express-resume.ts
  • src/lib/policy/preset-allowed-ips.test.ts
  • src/lib/policy/preset-scope-render.test.ts
  • src/lib/policy/preset-scope-render.ts
  • src/lib/policy/tiers.ts
  • test/personal-open-internet-policy.test.ts
  • test/policy-tiers-onboard.test.ts
  • test/policy-tiers.test.ts
  • test/validate-config-schemas.test.ts
🚧 Files skipped from review as they are similar to previous changes (22)
  • src/lib/policy/preset-allowed-ips.test.ts
  • src/lib/policy/preset-scope-render.test.ts
  • src/lib/onboard/command.ts
  • scripts/install.sh
  • src/lib/inference/serving/resolver.test.ts
  • src/lib/onboard/sandbox-create-plan.ts
  • test/policy-tiers.test.ts
  • src/lib/onboard/station-express-resume.ts
  • src/lib/onboard/sandbox-create-plan.test.ts
  • src/lib/policy/tiers.ts
  • src/lib/onboard/policy-selection-prompts.ts
  • test/validate-config-schemas.test.ts
  • src/lib/policy/preset-scope-render.ts
  • docs/reference/commands.mdx
  • nemoclaw-blueprint/policies/presets/personal-open-internet.yaml
  • test/policy-tiers-onboard.test.ts
  • nemoclaw-blueprint/policies/tiers.yaml
  • src/lib/onboard/policy-selection.ts
  • src/lib/onboard/command.test.ts
  • schemas/network-policy.schema.json
  • docs/security/best-practices.mdx
  • docs/reference/network-policies.mdx

Comment thread test/personal-open-internet-policy.test.ts Outdated

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

Actionable comments posted: 1

🤖 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.

Inline comments:
In `@test/onboard-policy-suggestions.test.ts`:
- Line 528: Remove the { name: "brave" } entry from the expected Hermes filtered
result in the relevant test case, while preserving the remaining policy preset
expectations.
🪄 Autofix

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: ff112d21-edb2-4bbe-a535-9679a18f447d

📥 Commits

Reviewing files that changed from the base of the PR and between a4b05a1 and ec94804.

📒 Files selected for processing (3)
  • src/lib/onboard/openclaw-otel-policy-presets.ts
  • test/onboard-policy-suggestions.test.ts
  • test/policy-tiers-onboard.test.ts
🚧 Files skipped from review as they are similar to previous changes (1)
  • test/policy-tiers-onboard.test.ts

Comment thread test/onboard-policy-suggestions.test.ts
@ericksoa
ericksoa merged commit 2f29784 into main Aug 6, 2026
84 of 86 checks passed
@ericksoa
ericksoa deleted the feat/personal-policy-tier branch August 6, 2026 06:31
@github-actions github-actions Bot added the v0.0.104 Release target label Aug 6, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

v0.0.104 Release target

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant