Repository navigation
Conversation
Signed-off-by: Rebecca Sliter <571084+rsliter@users.noreply.github.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. |
Contributor
|
Important Draft PR not reviewedDraft PRs are not automatically reviewed by default.
To automatically review draft PRs, update your CodeRabbit configuration: reviews:
auto_review:
drafts: true
Comment |
Contributor
Code coverage overviewLanguages: TypeScript TypeScript / code-coverage/plugin
View coverage of the 10 most impacted files.
TypeScript / code-coverage/cli
View coverage of the 10 most impacted files.
ℹ️ Calculations represent line coverage. Results may change as calculations are updated. Updated |
Contributor
|
PR Review Advisor finished for commit Request review only when Require no Advisor blockers is green. |
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Outcome
When OpenShell's live policy differs from a submitted policy, NemoClaw reports the differing policy field paths while continuing to fail closed. This draft is the first diagnostic revision for Personal preset issue #13349; it does not yet fix the mismatch. The planned OpenShell 0.1.3 upgrade also reproduces the failure.
Reason
The failed Personal E2E artifacts show that policy readback differs after submission, but retain no semantic field-level difference. A bounded, value-free field report is needed to identify the cause on the exact candidate commit.
Related issues
Refs #13349
Changes
Verification
npm run build:policy-boundarypassed.npx vitest run --project cli src/lib/policy/policy-live-state.test.tspassed (20 tests).npx oxlint src/lib/policy/index.ts src/lib/policy/policy-live-state.test.tspassed.NODE_OPTIONS=--max-old-space-size=8192 npm run build:cliandNODE_OPTIONS=--max-old-space-size=8192 npm run typecheck:clipassed.8bb0d39a0301fe791654e55244bf7c4c2e8b4d52:targets=common-egress-agent-openclaw-personal-public-fetch,jobs=(Docker, NVIDIA inference), run 38938104420 failed during policy application. Redacted readback reports seven extra live network policies andpersonal_open_internetmissing live. E2E cleanup passed.openshell policy set --waitreturnednetwork endpoint ambiguity validation failedbetweenpersonal_open_internetand_provider_nemoclaw_13349_provider, namingallowed_ips,protocol, andenforcement. The base policy hash and active version (1) were unchanged. The disposable sandbox, provider, gateway container, and state volume were removed. This confirms the 0.1.3 overlap mechanism; it is a focused native reproduction, not the full NemoClaw E2E.allowed_ipslist on a disposable fixed NVIDIA provider profile and selecting/v1/**letpolicy set --waitload active version 2; effective readback retained both the provider and Personal rules. This candidate changes the provider profile and does not represent the custom-provider E2E./v1/**request selector. The exact Personal preset still failedpolicy set --waitwith endpoint ambiguity namingallowed_ips; the base policy hash and active version 1 were unchanged. This matches the custom provider generator's exact-IP pinning contract, but is not a replay of the full E2E fixture. Both disposable setups used nonfunctional placeholder credentials and were removed. The rejected policy cannot support positive public-fetch or credential probes, so those require a compatible representation first.Review notes
src/lib/policy/index.tsandsrc/lib/policy/policy-live-state.test.tsare sensitive policy paths. No independent pre-publication review exists for NVIDIA/NemoClaw commit8bb0d39a0301fe791654e55244bf7c4c2e8b4d52; independent review is pending.The diagnostic paths identify the six OpenClaw baseline rules plus
native_hosted_inferenceas extra live rules; Personal is absent. NemoClaw intentionally replaces those web rules with the hostless L4 Personal rule. The earlier E2E did not retain OpenShell's raw denial; the focused native 0.1.3 reproduction below confirms the provider-layer overlap mechanism.The OpenShell 0.1.3 migration PR #12603 also reproduces this boundary on exact candidate commit
53a694dfa08872faf78fa71d55047ea7adfa0844: Personal public-fetch E2E job reaches native provider onboarding, then fails to confirm Personal policy submission; its cleanup passes. The artifact confirmsopenshell 0.1.3. This is independent evidence that the version upgrade alone does not resolve #13349.OpenShell 0.1.3 policy submission validates the base policy together with attached provider rules. Its ambiguity validator treats a hostless Personal endpoint and an exact provider endpoint on port 443 as overlapping, and requires their
allowed_ipsmetadata to agree. Personal has broad public/private CIDRs while the provider has a narrower or empty list. The focused native 0.1.3 repro confirms this validator rejects Personal with a native NVIDIA provider layer before saving the base policy. It does not establish the raw denial from the full custom-provider E2E, which still needs an exact-head passing result after a repair. The documented Personal contract requires uninspected L4 access to public and private ranges on ports 80 and 443, while native provider endpoint controls and credential handling must remain intact.No further code revision has been made. The draft remains WIP pending a decision on how to support this combination with OpenShell 0.1.3 without changing those contracts.
Signed-off-by: Rebecca Sliter 571084+rsliter@users.noreply.github.com