Skip to content
Merged
Show file tree
Hide file tree
Changes from 172 commits
Commits
Show all changes
258 commits
Select commit Hold shift + click to select a range
1d8c3bf
fix(openshell): scrub stale gateway auth disable env
ericksoa Jun 22, 2026
5dc5178
Merge remote-tracking branch 'origin/main' into dep/openshell-v0.0.67
ericksoa Jun 23, 2026
c05366d
Update OpenShell gateway upgrade scenario pins
ericksoa Jun 23, 2026
21a85d9
test(e2e): accept sandbox gateway host in 4462 scenario
ericksoa Jun 23, 2026
98925bd
test(openshell): cover gateway JWT contract
ericksoa Jun 23, 2026
e443f8b
test(openshell): satisfy gateway JWT guardrail
ericksoa Jun 23, 2026
6204963
test(openshell): make gateway watchdog swap deterministic
ericksoa Jun 23, 2026
ceb0a9a
ci(e2e): use valid scenario inference credential
ericksoa Jun 23, 2026
c6d2c7d
ci(e2e): restore dedicated inference secret source
ericksoa Jun 23, 2026
59145b7
test(openshell): split gateway config contract coverage
ericksoa Jun 23, 2026
d54d657
fix(openshell): tighten compat gateway bind default
ericksoa Jun 23, 2026
c4b8b13
test(openshell): keep auth fixture linear
ericksoa Jun 23, 2026
39e6552
fix(openshell): keep compat gateway loopback-only
ericksoa Jun 23, 2026
341ae14
fix(openshell): guard wildcard gateway binds
ericksoa Jun 23, 2026
ed0da2f
fix(openshell): narrow wildcard guard to package service
ericksoa Jun 23, 2026
faada18
test(openshell): add gateway source contract
ericksoa Jun 23, 2026
790525d
test(openshell): keep source contract linear
ericksoa Jun 23, 2026
4b9c114
ci(e2e): fall back to NVIDIA_API_KEY for vitest scenarios
ericksoa Jun 23, 2026
9673eca
ci(e2e): prefer NVIDIA_API_KEY for vitest scenarios
ericksoa Jun 23, 2026
ef56901
test(openshell): remove e2e scenario churn
ericksoa Jun 23, 2026
d8cf193
test(openshell): align version-pin e2e expectations
ericksoa Jun 23, 2026
49a69bc
fix(openshell): harden docker gateway auth boundary
ericksoa Jun 23, 2026
4e287d9
style(openshell): apply static check formatting
ericksoa Jun 23, 2026
aae3823
test(openshell): align gateway upgrade fixture version
ericksoa Jun 23, 2026
fcf5176
Merge remote-tracking branch 'origin/main' into openshell-pr-5596
ericksoa Jun 23, 2026
9133090
fix(openshell): preserve host CLI gateway auth compatibility
ericksoa Jun 23, 2026
f1edb11
Merge remote-tracking branch 'origin/main' into openshell-pr-5596
ericksoa Jun 23, 2026
e4c137f
Merge remote-tracking branch 'origin/main' into openshell-pr-5596
ericksoa Jun 24, 2026
3e48cfc
Merge remote-tracking branch 'origin/main' into openshell-pr-5596
ericksoa Jun 25, 2026
0eb2574
fix(onboard): keep gateway TLS setup in helpers
ericksoa Jun 25, 2026
d6957e9
test(openshell): keep auth contract test linear
ericksoa Jun 25, 2026
91cb4a5
test(gateway): expect docker driver tls endpoint
ericksoa Jun 25, 2026
153a550
fix(openshell): stabilize nightly gateway recovery checks
ericksoa Jun 25, 2026
40135e9
test(cli): split markerless recovery coverage
ericksoa Jun 25, 2026
23054b4
Merge branch 'main' into dep/openshell-v0.0.67
ericksoa Jun 25, 2026
3c971a7
test(e2e): accept sandbox gateway URL in 4462 guard
ericksoa Jun 25, 2026
412b3d5
test(e2e): approve initial 4462 pairing via gateway
ericksoa Jun 25, 2026
e9948f0
test(e2e): pass gateway token for initial 4462 approval
ericksoa Jun 25, 2026
9e3ddef
test(e2e): seed low-scope 4462 bootstrap pairing
ericksoa Jun 25, 2026
9521e64
test(e2e): accept sandbox URL in 4462 legacy check
ericksoa Jun 25, 2026
0176918
test(e2e): stabilize OpenShell 0.0.67 matrix
ericksoa Jun 25, 2026
b9dcd54
test(e2e): tolerate wrapped TUI reply tokens
ericksoa Jun 25, 2026
b3e651d
test(e2e): keep sessions admin RPCs local
ericksoa Jun 25, 2026
f8effe9
test(e2e): use OpenClaw SDK for sessions admin RPCs
ericksoa Jun 25, 2026
5ac13fd
test(e2e): source gateway env for sessions RPCs
ericksoa Jun 25, 2026
5a61f17
test(e2e): avoid multiline sessions RPC args
ericksoa Jun 25, 2026
5c042a3
test(e2e): stabilize OpenShell nightly expectations
ericksoa Jun 25, 2026
c3a65ec
test(e2e): tolerate OpenClaw pairing request churn
ericksoa Jun 25, 2026
3f16a91
test(e2e): recover consumed legacy scope requests
ericksoa Jun 25, 2026
a7df6bd
test(e2e): relax live Kimi trajectory shape
ericksoa Jun 25, 2026
2d5b4f8
Merge branch 'main' of https://github.com/NVIDIA/NemoClaw into dep/op…
ericksoa Jun 25, 2026
5d6d615
Merge remote-tracking branch 'origin/main' into dep/openshell-v0.0.67
ericksoa Jun 25, 2026
f1bbde0
fix(openshell): reject wildcard direct gateway binds
ericksoa Jun 25, 2026
c5de72f
test(openshell): cover gateway auth source boundaries
ericksoa Jun 25, 2026
4cfe88b
Merge remote-tracking branch 'origin/main' into dep/openshell-v0.0.67
ericksoa Jun 25, 2026
4aa9daa
Merge remote-tracking branch 'origin/main' into dep/openshell-v0.0.67
ericksoa Jun 26, 2026
b91a48f
fix(onboard): format invalid messaging config values
ericksoa Jun 26, 2026
e861c25
fix(onboard): avoid invalid config value overload ambiguity
ericksoa Jun 26, 2026
148caed
Merge remote-tracking branch 'origin/main' into dep/openshell-v0.0.67
ericksoa Jun 26, 2026
e99d9c5
fix(onboard): pass manifests to channel availability
ericksoa Jun 26, 2026
24ddda0
fix(onboard): preserve complete gateway TLS bundle
ericksoa Jun 26, 2026
3070a32
Merge remote-tracking branch 'origin/main' into dep/openshell-v0.0.67
ericksoa Jun 26, 2026
35204de
Merge remote-tracking branch 'origin/main' into dep/openshell-v0.0.67
ericksoa Jun 26, 2026
7709917
fix(onboard): validate reused gateway TLS bundle
ericksoa Jun 26, 2026
8e21802
style(onboard): sort TLS helper imports
ericksoa Jun 26, 2026
8e91f72
test(onboard): avoid literal TLS private key fixture
ericksoa Jun 26, 2026
3e01372
fix(onboard): reject stale gateway TLS bundles
ericksoa Jun 26, 2026
ccb7e5d
test(e2e): narrow auth probe TLS mounts
ericksoa Jun 26, 2026
7ae9153
test(e2e): keep auth probe mount test linear
ericksoa Jun 26, 2026
5ccd976
fix(onboard): validate gateway TLS auth reuse
ericksoa Jun 26, 2026
8e1ceff
Merge remote-tracking branch 'origin/main' into dep/openshell-v0.0.67
ericksoa Jun 26, 2026
64de908
Merge remote-tracking branch 'origin/main' into dep/openshell-v0.0.67
ericksoa Jun 26, 2026
e3dbd65
Merge remote-tracking branch 'origin/main' into dep/openshell-v0.0.67
ericksoa Jun 26, 2026
d387c8c
Merge remote-tracking branch 'origin/main' into dep/openshell-v0.0.67
ericksoa Jun 26, 2026
73748a5
fix(install): pin OpenShell release digests
ericksoa Jun 26, 2026
fa40688
test(openshell): register auth contract scenario
ericksoa Jun 26, 2026
aaf2a86
test(e2e): keep workflow support under budget
ericksoa Jun 26, 2026
7ccb069
test(openshell): keep jwt binding test linear
ericksoa Jun 26, 2026
04e730e
fix(openshell): harden gateway auth checks
ericksoa Jun 27, 2026
0972198
test(openshell): avoid private key fixture marker
ericksoa Jun 27, 2026
913cc7b
fix(openshell): reduce gateway recovery and compat risk
ericksoa Jun 27, 2026
6499ac8
fix(openshell): tighten compat gateway review gaps
ericksoa Jun 27, 2026
d7da0c9
Merge remote-tracking branch 'origin/main' into dep/openshell-v0.0.67
ericksoa Jun 27, 2026
043c199
test(openshell): keep jwt guardrail test linear
ericksoa Jun 27, 2026
38869b5
Merge remote-tracking branch 'origin/main' into dep/openshell-v0.0.67
ericksoa Jun 27, 2026
2bf0f8d
test(openshell): cover advisor boundary followups
ericksoa Jun 27, 2026
3f6c047
test(openshell): avoid env executable overrides in auth contract
ericksoa Jun 27, 2026
1c3f261
test(openshell): address advisor security followups
ericksoa Jun 27, 2026
a3beb47
Merge remote-tracking branch 'origin/main' into dep/openshell-v0.0.67
ericksoa Jun 27, 2026
daaccd1
fix(openshell): reject tcp docker host in compat gateway
ericksoa Jun 27, 2026
c22f37d
test(openshell): split compat gateway launch coverage
ericksoa Jun 27, 2026
4c01501
test(openshell): keep compat coverage linear
ericksoa Jun 27, 2026
a0fc68f
refactor(openshell): extract compat gateway launch
ericksoa Jun 27, 2026
5c918ae
fix(openshell): require dev install no-verify opt-in
ericksoa Jun 27, 2026
389b4fc
Merge remote-tracking branch 'origin/main' into dep/openshell-v0.0.67
ericksoa Jun 27, 2026
03587ba
Merge remote-tracking branch 'origin/main' into dep/openshell-v0.0.67
ericksoa Jun 27, 2026
37b2fc8
fix(openshell): require compat container opt-in
ericksoa Jun 27, 2026
51d0341
fix(docs): keep security MDX comments preview-safe
ericksoa Jun 27, 2026
89e52f8
fix(security): fail closed on recovery boundary gaps
ericksoa Jun 27, 2026
8fef7bc
test(security): expect fail-closed Hermes recovery
ericksoa Jun 27, 2026
7f87b15
fix(ci): gate OpenShell auth contract dispatch
ericksoa Jun 27, 2026
11c6459
test(ci): split auth contract workflow boundary
ericksoa Jun 27, 2026
2001575
Merge remote-tracking branch 'origin/main' into dep/openshell-v0.0.67
ericksoa Jun 27, 2026
62cc891
chore(openshell): advance stable pin to 0.0.71
ericksoa Jun 27, 2026
0748bdb
Merge remote-tracking branch 'origin/main' into dep/openshell-v0.0.67
ericksoa Jun 27, 2026
744bffd
fix(openshell): recover stale gateway JWT locks
ericksoa Jun 27, 2026
e137b82
Merge remote-tracking branch 'origin/main' into dep/openshell-v0.0.67
ericksoa Jun 27, 2026
1327197
fix(openshell): surface compatibility trust warning
ericksoa Jun 27, 2026
2b551e5
Merge remote-tracking branch 'origin/main' into dep/openshell-v0.0.67
ericksoa Jun 27, 2026
1ae2d47
test(openshell): harden 0.0.71 live contracts
ericksoa Jun 27, 2026
62c573a
Merge remote-tracking branch 'origin/main' into dep/openshell-v0.0.67
ericksoa Jun 27, 2026
8183505
Merge remote-tracking branch 'origin/main' into dep/openshell-v0.0.67
ericksoa Jun 27, 2026
67bed91
test(e2e): accept pre-spawn gateway failures
ericksoa Jun 27, 2026
37aa3a5
Merge remote-tracking branch 'origin/main' into dep/openshell-v0.0.67
ericksoa Jun 27, 2026
93d9aea
test(e2e): bootstrap OpenClaw scope upgrade
ericksoa Jun 27, 2026
598918c
test(openshell): close 0.0.71 advisor gaps
ericksoa Jun 27, 2026
bcaf23d
test(openshell): satisfy conditional guardrail
ericksoa Jun 27, 2026
5aa1b6a
fix(openshell): enforce 0.0.71 auth boundaries
ericksoa Jun 27, 2026
f470348
test(recovery): model post-health boundary probe
ericksoa Jun 27, 2026
2bf3a39
fix(openshell): close 0.0.71 review gaps
ericksoa Jun 27, 2026
394ef0f
test(openshell): keep recovery cases linear
ericksoa Jun 27, 2026
ac687ff
fix(openshell): resolve final review findings
ericksoa Jun 27, 2026
39cc1fb
test(openshell): align recovery reason assertions
ericksoa Jun 27, 2026
145ebf4
test(openshell): preserve Vitest fixture signature
ericksoa Jun 27, 2026
4313da1
fix(ci): report explicit OpenShell auth proof
ericksoa Jun 27, 2026
7ee82ec
Merge remote-tracking branch 'origin/main' into dep/openshell-v0.0.67
ericksoa Jun 28, 2026
fa2bf63
fix(install): fail closed without checksum tools
ericksoa Jun 28, 2026
cbd67d1
fix(hermes): align local base image guard
ericksoa Jun 28, 2026
cbb7f76
test(install): keep checksum fixture linear
ericksoa Jun 28, 2026
6325f34
test(e2e): repair scope upgrade bootstrap
ericksoa Jun 28, 2026
5f30537
Merge remote-tracking branch 'origin/main' into dep/openshell-v0.0.67
ericksoa Jun 28, 2026
e273848
test(e2e): converge scope approval state
ericksoa Jun 28, 2026
719e962
test(e2e): accept scoped initial CLI pairing
ericksoa Jun 28, 2026
b721615
test(e2e): seed scoped CLI pairing
ericksoa Jun 28, 2026
76be505
test(e2e): chunk scope approval probe
ericksoa Jun 28, 2026
5af4dee
test(e2e): keep probe guard declarative
ericksoa Jun 28, 2026
8fe6373
test(e2e): verify redacted token rotation
ericksoa Jun 28, 2026
19ee2f2
Merge origin/main into dep/openshell-v0.0.67
ericksoa Jun 29, 2026
918f32f
fix(hermes): add build-time validator assertion and glibc compat test
prekshivyas Jun 29, 2026
d575a5b
Merge origin/main into dep/openshell-v0.0.67
ericksoa Jun 29, 2026
5137b42
fix(rebuild): restore all channel presets on start+rebuild after stop…
prekshivyas Jun 29, 2026
e8c6187
Merge branch 'dep/openshell-v0.0.67' of https://github.com/NVIDIA/Nem…
prekshivyas Jun 29, 2026
d753808
Merge branch 'main' into dep/openshell-v0.0.67
prekshivyas Jun 29, 2026
823e3ca
test(rebuild): remove if statement from channel preset recovery test …
prekshivyas Jun 29, 2026
027f4e9
chore(openshell): upgrade supported version to 0.0.72
ericksoa Jun 30, 2026
83e1ec0
test(openshell): isolate 0.0.72 policy coverage
ericksoa Jun 30, 2026
68354ad
docs(openshell): publish 0.0.72 compatibility review
ericksoa Jun 30, 2026
88cd0c1
fix(openshell): align compatibility review references
ericksoa Jun 30, 2026
4eeedee
merge(main): port OpenShell coverage to unified E2E
ericksoa Jun 30, 2026
be74fad
test(e2e): align unified workflow contracts
ericksoa Jun 30, 2026
b2eac87
test(e2e): keep policy regressions linear
ericksoa Jun 30, 2026
93a1a3c
Merge remote-tracking branch 'origin/dep/openshell-v0.0.67' into dep/…
ericksoa Jun 30, 2026
bbe4b4e
merge(main): retarget OpenShell 0.0.72
ericksoa Jun 30, 2026
1c80fa4
fix(openshell): pin 0.0.72 release assets
ericksoa Jun 30, 2026
cc52dfc
test(blueprint): keep policy edge test linear
ericksoa Jun 30, 2026
96268d8
fix(openshell): verify release pins in CI
ericksoa Jun 30, 2026
463e6a8
fix(openshell): harden release and smoke checks
ericksoa Jun 30, 2026
78e85e6
fix(ci): keep PR hash checks credential-free
ericksoa Jun 30, 2026
97f24e1
test(openshell): tighten review contracts
ericksoa Jun 30, 2026
3e1a75f
fix(ci): verify OpenShell pins without API token
ericksoa Jun 30, 2026
de07342
fix(policy): strip provider entries from mutations
ericksoa Jun 30, 2026
8c377d3
refactor(policy): extract provider entry filtering
ericksoa Jun 30, 2026
ef96ab3
fix(policy): enforce reserved entry boundary
ericksoa Jun 30, 2026
c692d09
fix(policy): close reserved entry boundary
ericksoa Jun 30, 2026
e2fbfe2
fix(policy): stage shared boundary in sandbox builds
ericksoa Jun 30, 2026
6570142
fix(policy): support source-only plugin tests
ericksoa Jun 30, 2026
e424563
fix(policy): harden OpenShell boundary contracts
ericksoa Jun 30, 2026
bc2e9ab
test(openshell): close final compatibility gaps
ericksoa Jun 30, 2026
3969d35
test(policy): preserve arbitrary top-level fields
ericksoa Jun 30, 2026
9e515f2
fix(ci): cover OpenShell version sources
ericksoa Jun 30, 2026
bc23dda
merge(main): refresh OpenShell 0.0.72 base
ericksoa Jun 30, 2026
f5ede51
fix(policy): preserve effective diagnostic reads
ericksoa Jun 30, 2026
a7e645b
test(policy): split diagnostic read regression
ericksoa Jun 30, 2026
d478247
refactor(policy): isolate diagnostic query commands
ericksoa Jun 30, 2026
935cf56
test(openshell): cover published release resolution
ericksoa Jun 30, 2026
82c25cc
fix(policy): fail closed on mutation read errors
ericksoa Jun 30, 2026
801eb5b
test(e2e): accept opaque hosted inference credentials
ericksoa Jun 30, 2026
7da5c2f
fix(security): close OpenShell verification gaps
ericksoa Jun 30, 2026
3343563
test(workflow): execute installer change detector
ericksoa Jun 30, 2026
0d5006d
chore(openshell): merge current main into 0.0.72
ericksoa Jun 30, 2026
a9e9150
ci(security): add trusted installer hash action
ericksoa Jun 30, 2026
abaccac
fix(security): fail closed on missing installer pins
ericksoa Jun 30, 2026
69107f0
ci(security): run PR hash checks from trusted code
ericksoa Jun 30, 2026
6571063
fix(security): verify only owned installer pins
ericksoa Jun 30, 2026
a54aac7
ci(security): pin strict installer hash bootstrap
ericksoa Jun 30, 2026
638048d
fix(policy): fail closed on malformed preset YAML
ericksoa Jul 1, 2026
d1ab96b
test(policy): isolate fail-closed transition coverage
ericksoa Jul 1, 2026
8500461
refactor(policy): unify OpenShell policy boundary
ericksoa Jul 1, 2026
a6aeb08
ci(installer): expire immutable hash bootstrap
ericksoa Jul 1, 2026
b0ac984
fix(ci): compile policy boundary from TypeScript
ericksoa Jul 1, 2026
6b70658
fix(policy): reject empty base-policy reads
ericksoa Jul 1, 2026
c6885d7
docs(policy): clarify boundary dependency gate
ericksoa Jul 1, 2026
1705536
fix(policy): anchor document separator parsing
ericksoa Jul 1, 2026
621b334
fix(ci): harden trusted policy audits
ericksoa Jul 1, 2026
ea9dc63
fix(ci): parse installer pins without executing shell
ericksoa Jul 1, 2026
51441d2
chore(openshell): merge current main
ericksoa Jul 1, 2026
e2731c8
fix(ci): reconcile main E2E security contracts
ericksoa Jul 1, 2026
781a052
fix(ci): close compatibility review findings
ericksoa Jul 1, 2026
059a15d
fix(policy): reject unknown top-level policy shapes
ericksoa Jul 1, 2026
cad2e8f
fix(policy): close fail-closed review gaps
ericksoa Jul 1, 2026
8674dc5
test(policy): align legacy shape expectations
ericksoa Jul 1, 2026
12f7376
chore(openshell): merge current main
ericksoa Jul 1, 2026
eedb095
fix(ci): harden policy boundary checks
ericksoa Jul 1, 2026
a5bc9d2
fix(ci): satisfy Docker boundary lint
ericksoa Jul 1, 2026
f88a5e6
test(e2e): accept reasoning-only inference proof
ericksoa Jul 1, 2026
c378ad6
test(installer): prove missing assets fail closed
ericksoa Jul 1, 2026
6d487bd
Merge origin/main into dep/openshell-v0.0.72
ericksoa Jul 1, 2026
8f7b40e
Merge origin/main into dep/openshell-v0.0.72
ericksoa Jul 1, 2026
cce350a
Merge origin/main into dep/openshell-v0.0.72
ericksoa Jul 1, 2026
0cd7604
merge: sync main into OpenShell v0.0.72
ericksoa Jul 1, 2026
4d57978
fix(policy): reject unmarked diagnostic mappings
ericksoa Jul 1, 2026
8c548f4
fix(ci): include parser in installer hash bootstrap
ericksoa Jul 1, 2026
7f3ea39
docs(ci): clarify installer verifier trust boundary
ericksoa Jul 1, 2026
bef8663
Merge branch 'main' into dep/openshell-v0.0.72
ericksoa Jul 1, 2026
5d94e1f
merge: sync current main into OpenShell 0.0.72
ericksoa Jul 1, 2026
490a1b9
merge: sync current main into OpenShell 0.0.72
ericksoa Jul 1, 2026
cafcd2a
merge: sync current main into OpenShell 0.0.72
ericksoa Jul 1, 2026
7ee13d2
merge: sync current main into OpenShell dependency
ericksoa Jul 1, 2026
6b918a6
test(e2e): parse Hermes semver before release date
ericksoa Jul 1, 2026
18f67ef
merge: sync current main into OpenShell dependency
ericksoa Jul 1, 2026
0ed3f40
fix(sandbox): wait for stopped forwards to release
ericksoa Jul 1, 2026
7c701a9
merge: sync current main into OpenShell dependency
ericksoa Jul 1, 2026
dde2c62
merge: sync current main into OpenShell dependency
ericksoa Jul 1, 2026
7ed7f40
merge: sync current main into OpenShell dependency
ericksoa Jul 1, 2026
4d4420a
test(sandbox): model stopped forward release
ericksoa Jul 1, 2026
982de7c
docs(sandbox): define forward wait removal condition
ericksoa Jul 1, 2026
8996b9d
test(sandbox): keep forward fixture linear
ericksoa Jul 1, 2026
3571f93
merge: sync current main into OpenShell dependency
ericksoa Jul 1, 2026
6ac008d
test(docs): follow current sandbox hardening route
ericksoa Jul 1, 2026
8264c19
test(e2e): chunk crash-loop proxy restore
ericksoa Jul 1, 2026
97b8a5e
merge: sync current main into OpenShell dependency
ericksoa Jul 1, 2026
dec15c7
merge: sync current main into OpenShell dependency
ericksoa Jul 2, 2026
b434b41
merge: sync current main into OpenShell dependency
ericksoa Jul 2, 2026
b4a0203
merge: sync current main into OpenShell dependency
ericksoa Jul 2, 2026
d429495
merge: sync current main into OpenShell dependency
ericksoa Jul 2, 2026
466443e
docs(release): retarget OpenShell update to v0.0.74
ericksoa Jul 2, 2026
ff74343
test(blueprint): preserve SSRF exports in policy mock
ericksoa Jul 2, 2026
cb5e9ae
fix(ci): harden trusted installer hash inputs
ericksoa Jul 2, 2026
203f2bc
ci(security): repin hardened installer hash bootstrap
ericksoa Jul 2, 2026
0d1bdd1
test(ci): keep installer fixtures branch-free
ericksoa Jul 2, 2026
cb9b463
merge: sync current main into OpenShell dependency
ericksoa Jul 2, 2026
6e2839d
fix(policy): normalize source and compiled boundary imports
ericksoa Jul 2, 2026
62d52b9
merge: sync current main into OpenShell dependency
ericksoa Jul 2, 2026
ab2b0c4
merge: sync current main into OpenShell dependency
ericksoa Jul 2, 2026
92512c2
merge: sync current main into OpenShell dependency
ericksoa Jul 3, 2026
ec69761
merge: sync current main into OpenShell dependency
ericksoa Jul 3, 2026
2d06fa0
merge: sync current main into OpenShell dependency
ericksoa Jul 3, 2026
cfee6e7
merge: sync current main into OpenShell dependency
ericksoa Jul 3, 2026
7a272f6
merge: sync current main into OpenShell dependency
ericksoa Jul 3, 2026
9ab85e7
merge: sync current main into OpenShell dependency
ericksoa Jul 3, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/e2e.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -409,7 +409,7 @@ jobs:
E2E_ARTIFACT_DIR: ${{ github.workspace }}/e2e-artifacts/live/openshell-gateway-auth-contract
NEMOCLAW_RUN_LIVE_E2E: "1"
NEMOCLAW_NON_INTERACTIVE: "1"
NEMOCLAW_OPENSHELL_PIN_VERSION: "0.0.71"
NEMOCLAW_OPENSHELL_PIN_VERSION: "0.0.72"
DOCKER_GRPC_PROBE_IMAGE: "node:22-trixie-slim@sha256:2d9f5c76c8f4dd36e8f253bee5d828a83a6c09f36188f0b0414325232e0b175d"
steps:
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
Expand Down
4 changes: 3 additions & 1 deletion .github/workflows/installer-hash-check.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
# SPDX-License-Identifier: Apache-2.0
#
# Verifies pinned installer SHA-256 hashes still match upstream scripts.
# Checked: Ollama installer.
# Checked: Ollama installer and OpenShell v0.0.72 release assets.
# Runs on every PR and push to main, plus a weekly scheduled check.

name: Security / Installer Hash Check
Expand All @@ -28,6 +28,8 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
with:
persist-credentials: false

- name: Verify installer hashes are current
run: bash scripts/check-installer-hash.sh
8 changes: 8 additions & 0 deletions docs/about/release-notes.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,14 @@ NVIDIA NemoClaw is available in early preview starting March 16, 2026.
Use this page to track the highlights of the latest release.
For more detailed release notes, refer to the [NemoClaw GitHub announcements](https://github.com/NVIDIA/NemoClaw/discussions/categories/announcements?discussions_q=is%3Aopen+category%3AAnnouncements).

## v0.0.72

NemoClaw v0.0.72 advances to OpenShell `0.0.72` and adopts its safe policy round-trip boundary:

- Stable installs pin OpenShell `0.0.72` release artifacts and supervisor image, adding MCP Streamable HTTP and JSON-RPC request-policy enforcement.
- Policy mutations now read the round-trippable base policy instead of the effective policy, preventing provider-composed `_provider_*` entries from being sent back through `policy set` while preserving existing MCP rules.
For more information, refer to [OpenShell 0.0.72 Compatibility Review](../security/openshell-0.0.72-compatibility-review) and [Customize the Network Policy](../network-policy/customize-network-policy).

## v0.0.70

NemoClaw v0.0.70 hardens OpenShell gateway auth and Hermes recovery behavior:
Expand Down
6 changes: 6 additions & 0 deletions docs/index.yml
Original file line number Diff line number Diff line change
Expand Up @@ -137,6 +137,9 @@ navigation:
- page: "Credential Storage"
path: _build/agent-variants/security/credential-storage.openclaw.generated.mdx
slug: credential-storage
- page: "OpenShell 0.0.72 Compatibility Review"
path: _build/agent-variants/security/openshell-0.0.72-compatibility-review.openclaw.generated.mdx
slug: openshell-0.0.72-compatibility-review
- page: "OpenShell 0.0.71 Review"
path: _build/agent-variants/security/openshell-0.0.71-gateway-auth-review.openclaw.generated.mdx
slug: openshell-0.0.71-gateway-auth-review
Expand Down Expand Up @@ -286,6 +289,9 @@ navigation:
- page: "Credential Storage"
path: _build/agent-variants/security/credential-storage.hermes.generated.mdx
slug: credential-storage
- page: "OpenShell 0.0.72 Compatibility Review"
path: _build/agent-variants/security/openshell-0.0.72-compatibility-review.hermes.generated.mdx
slug: openshell-0.0.72-compatibility-review
- page: "OpenShell 0.0.71 Review"
path: _build/agent-variants/security/openshell-0.0.71-gateway-auth-review.hermes.generated.mdx
slug: openshell-0.0.71-gateway-auth-review
Expand Down
9 changes: 5 additions & 4 deletions docs/network-policy/customize-network-policy.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -142,28 +142,29 @@ This path preserves existing policy entries and is the only NemoClaw-supported f
$$nemoclaw my-assistant policy-add
```

NemoClaw reads the live policy with `openshell policy get --full`, structurally merges your preset's `network_policies` into it, and writes the merged result back.
NemoClaw reads the round-trippable base policy with `openshell policy get --base`, structurally merges your preset's `network_policies` into it, and writes the merged result back.
Provider-composed `_provider_*` entries are excluded because OpenShell reserves that namespace and rejects it in `policy set`.
Existing presets and the baseline remain in place.
The preset file under `presets/` also persists across sandbox recreations.

### Option 2: Snapshot, Edit, and Set with OpenShell

Use this path only when you cannot add a file under the NemoClaw source tree.
Start from the current live policy so the presets layered on at onboarding stay in the file you apply.
Requires OpenShell 0.0.44+ for `policy get --full` and `policy set --wait` syntax.
Requires OpenShell 0.0.72+ for the round-trippable `policy get --base` and `policy set --wait` syntax.
Strip the OpenShell metadata header before editing the file, then validate the raw policy shape before replacing your editable copy.
The command order below matches the commands NemoClaw emits internally.

```bash
# shellcheck shell=bash
# Source-of-truth review:
# invalidState: OpenShell 0.0.44 policy get --full emits metadata before the --- YAML header.
# invalidState: OpenShell 0.0.72 policy get --base emits metadata before the --- YAML header.
# sourceBoundary: OpenShell CLI output is owned by the separate OpenShell project.
# whyNotSourceFix: NemoClaw pins OpenShell but cannot change that upstream formatter here.
# regressionTest: test/policy-roundtrip-docs.test.ts validates this shared docs pattern.
# removalCondition: remove this pipeline after pinned OpenShell emits clean raw YAML.
tmp_policy=$(mktemp)
openshell policy get --full my-assistant \
openshell policy get --base my-assistant \
| awk 'found { print } /^---$/ { found = 1 } END { if (!found) exit 1 }' \
> "$tmp_policy" \
&& grep -q '^version:' "$tmp_policy" \
Expand Down
6 changes: 3 additions & 3 deletions docs/network-policy/integration-policy-examples.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -365,18 +365,18 @@ $$nemoclaw my-assistant policy-list
```

Use OpenShell when you need an editable copy of the live policy.
Requires OpenShell 0.0.44+ for `policy get --full` and `policy set --wait` syntax.
Requires OpenShell 0.0.72+ for the round-trippable `policy get --base` and `policy set --wait` syntax.

```bash
# shellcheck shell=bash
# Source-of-truth review:
# invalidState: OpenShell 0.0.44 policy get --full emits metadata before the --- YAML header.
# invalidState: OpenShell 0.0.72 policy get --base emits metadata before the --- YAML header.
# sourceBoundary: OpenShell CLI output is owned by the separate OpenShell project.
# whyNotSourceFix: NemoClaw pins OpenShell but cannot change that upstream formatter here.
# regressionTest: test/policy-roundtrip-docs.test.ts validates this shared docs pattern.
# removalCondition: remove this pipeline after pinned OpenShell emits clean raw YAML.
tmp_policy=$(mktemp)
openshell policy get --full my-assistant \
openshell policy get --base my-assistant \
| awk 'found { print } /^---$/ { found = 1 } END { if (!found) exit 1 }' \
> "$tmp_policy" \
&& grep -q '^version:' "$tmp_policy" \
Expand Down
9 changes: 5 additions & 4 deletions docs/reference/cli-selection-guide.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -118,18 +118,18 @@ Use `openshell` when the docs explicitly call for a live OpenShell gateway opera

- Inspect or replace raw OpenShell policy:

Requires OpenShell 0.0.44+ for `policy get --full` and `policy set --wait` syntax.
Requires OpenShell 0.0.72+ for the round-trippable `policy get --base` and `policy set --wait` syntax.

```bash
# shellcheck shell=bash
# Source-of-truth review:
# invalidState: OpenShell 0.0.44 policy get --full emits metadata before the --- YAML header.
# invalidState: OpenShell 0.0.72 policy get --base emits metadata before the --- YAML header.
# sourceBoundary: OpenShell CLI output is owned by the separate OpenShell project.
# whyNotSourceFix: NemoClaw pins OpenShell but cannot change that upstream formatter here.
# regressionTest: test/policy-roundtrip-docs.test.ts validates this shared docs pattern.
# removalCondition: remove this pipeline after pinned OpenShell emits clean raw YAML.
tmp_policy=$(mktemp)
openshell policy get --full <sandbox-name> \
openshell policy get --base <sandbox-name> \
| awk 'found { print } /^---$/ { found = 1 } END { if (!found) exit 1 }' \
> "$tmp_policy" \
&& grep -q '^version:' "$tmp_policy" \
Expand Down Expand Up @@ -228,7 +228,8 @@ Use `$$nemoclaw <name> policy-add` or `policy-remove` for NemoClaw presets and c
NemoClaw merges the new policy with the live policy and reapplies presets during rebuilds.

Use `openshell policy update` for precise live endpoint or REST rule changes.
Use `openshell policy get --full <name>` and `openshell policy set --policy <file> --wait <name>` only when you need to edit and replace the raw policy file.
Use `openshell policy get --base <name>` and `openshell policy set --policy <file> --wait <name>` only when you need to edit and replace the round-trippable base policy.
Use `--full` only to inspect the effective policy, including provider-composed rules.

### Move Workspace Files

Expand Down
6 changes: 3 additions & 3 deletions docs/reference/commands-nemohermes.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -1746,7 +1746,7 @@ All ports must be non-privileged integers between 1024 and 65535.
| Variable | Default | Service |
|----------|---------|---------|
| `NEMOCLAW_GATEWAY_PORT` | 8080 | OpenShell gateway port |
| `NEMOCLAW_GATEWAY_BIND_ADDRESS` | 127.0.0.1 | OpenShell gateway bind address. Docker-driver gateways on OpenShell 0.0.71 keep this on loopback while gateway JWT auth is active. |
| `NEMOCLAW_GATEWAY_BIND_ADDRESS` | 127.0.0.1 | The OpenShell gateway uses this bind address; Docker-driver gateways on OpenShell 0.0.72 keep it on loopback while gateway JWT auth is active. |
| `NEMOCLAW_DASHBOARD_PORT` | 18789 (auto-derived from `CHAT_UI_URL` port if set) | Dashboard or API forward |
| `NEMOCLAW_VLLM_PORT` | 8000 | vLLM / NIM inference |
| `NEMOCLAW_OLLAMA_PORT` | 11434 | Ollama inference |
Expand All @@ -1760,7 +1760,7 @@ When you run multiple NemoClaw gateways with different `NEMOCLAW_GATEWAY_PORT` v
On non-WSL hosts, `NEMOCLAW_OLLAMA_PORT` and `NEMOCLAW_OLLAMA_PROXY_PORT` must be different.
If you run Ollama on port 11435, set `NEMOCLAW_OLLAMA_PROXY_PORT` to another free port before onboarding.

`NEMOCLAW_GATEWAY_BIND_ADDRESS` accepts only `127.0.0.1` and `0.0.0.0`, but Docker-driver gateways on OpenShell 0.0.71 reject `0.0.0.0` while gateway JWT auth is active.
`NEMOCLAW_GATEWAY_BIND_ADDRESS` accepts only `127.0.0.1` and `0.0.0.0`, but Docker-driver gateways on OpenShell 0.0.72 reject `0.0.0.0` while gateway JWT auth is active.
Keep the OpenShell gateway on loopback and use `NEMOCLAW_DASHBOARD_BIND` when you need remote browser/API access.

`NEMOCLAW_DASHBOARD_BIND` controls the dashboard or API port forward bind address.
Expand Down Expand Up @@ -1890,7 +1890,7 @@ Set them before running `nemohermes onboard`.
| `NEMOCLAW_SANDBOX_GPU` | `auto`, `1`, or `0` | Controls sandbox GPU passthrough during onboarding. `auto` enables GPU passthrough when an NVIDIA GPU is detected, `1` requires GPU passthrough, and `0` forces CPU-only sandbox creation. |
| `NEMOCLAW_SANDBOX_GPU_DEVICE` | OpenShell GPU device selector | Selects the GPU device passed with `openshell sandbox create --gpu-device`. Requires explicit sandbox GPU enablement with `NEMOCLAW_SANDBOX_GPU=1` (or `--sandbox-gpu` for CLI-driven onboarding); otherwise onboarding rejects the selector instead of treating it as an implicit opt-in. |
| `NEMOCLAW_DOCKER_GPU_PATCH` | `0` to disable, anything else to keep the default | Controls the Linux Docker-driver GPU sandbox compatibility patch. Set to `0` only as an escape hatch when the patch fails and you need onboarding to continue without patching the GPU sandbox container. |
| `NEMOCLAW_OPENSHELL_GATEWAY_CONTAINER_PATCH` | `1` to enable; disabled by default | Explicitly opts into the Linux gateway compatibility container for an older host ABI or a diagnostic run. This mode uses host networking and mounts the Docker socket read-only, but the socket still exposes the privileged Docker API. Use it only on a trusted local host; prefer OpenShell 0.0.71's directly supported glibc 2.28+ path. See the [OpenShell 0.0.71 gateway auth review](../security/openshell-0.0.71-gateway-auth-review#source-of-truth-boundaries). |
| `NEMOCLAW_OPENSHELL_GATEWAY_CONTAINER_PATCH` | `1` to enable; disabled by default | This setting explicitly opts into the Linux gateway compatibility container for an older host ABI or a diagnostic run; use it only on a trusted local host because it uses host networking and mounts the Docker socket read-only even though the socket still exposes the privileged Docker API; prefer OpenShell 0.0.72's directly supported glibc 2.28+ path; see the [OpenShell 0.0.72 compatibility review](../security/openshell-0.0.72-compatibility-review#source-of-truth-boundaries) for details. |
| `NEMOCLAW_OPENSHELL_GATEWAY_BIN` | path | Advanced override for the `openshell-gateway` binary used by the Linux Docker-driver standalone fallback. Defaults to the binary next to `openshell`, then common install paths. |
| `NEMOCLAW_OPENSHELL_SANDBOX_BIN` | path | Advanced override for the `openshell-sandbox` binary used by the Linux Docker-driver standalone fallback. Defaults to the binary next to `openshell`, then common install paths. |
| `NEMOCLAW_OPENSHELL_GATEWAY_STATE_DIR` | path | Advanced override for the Linux Docker-driver gateway SQLite state directory and standalone-fallback PID file. Defaults to `~/.local/state/nemoclaw/openshell-docker-gateway`. |
Expand Down
6 changes: 3 additions & 3 deletions docs/reference/commands.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -2104,7 +2104,7 @@ All ports must be non-privileged integers between 1024 and 65535.
| Variable | Default | Service |
|----------|---------|---------|
| `NEMOCLAW_GATEWAY_PORT` | 8080 | OpenShell gateway port |
| `NEMOCLAW_GATEWAY_BIND_ADDRESS` | 127.0.0.1 | OpenShell gateway bind address. Docker-driver gateways on OpenShell 0.0.71 keep this on loopback while gateway JWT auth is active. |
| `NEMOCLAW_GATEWAY_BIND_ADDRESS` | 127.0.0.1 | The OpenShell gateway uses this bind address; Docker-driver gateways on OpenShell 0.0.72 keep it on loopback while gateway JWT auth is active. |
| `NEMOCLAW_DASHBOARD_PORT` | 18789 (auto-derived from `CHAT_UI_URL` port if set) | Dashboard or API forward |
| `NEMOCLAW_VLLM_PORT` | 8000 | vLLM / NIM inference |
| `NEMOCLAW_OLLAMA_PORT` | 11434 | Ollama inference |
Expand All @@ -2118,7 +2118,7 @@ When you run multiple NemoClaw gateways with different `NEMOCLAW_GATEWAY_PORT` v
On non-WSL hosts, `NEMOCLAW_OLLAMA_PORT` and `NEMOCLAW_OLLAMA_PROXY_PORT` must be different.
If you run Ollama on port 11435, set `NEMOCLAW_OLLAMA_PROXY_PORT` to another free port before onboarding.

`NEMOCLAW_GATEWAY_BIND_ADDRESS` accepts only `127.0.0.1` and `0.0.0.0`, but Docker-driver gateways on OpenShell 0.0.71 reject `0.0.0.0` while gateway JWT auth is active.
`NEMOCLAW_GATEWAY_BIND_ADDRESS` accepts only `127.0.0.1` and `0.0.0.0`, but Docker-driver gateways on OpenShell 0.0.72 reject `0.0.0.0` while gateway JWT auth is active.
Keep the OpenShell gateway on loopback and use `NEMOCLAW_DASHBOARD_BIND` when you need remote browser/API access.

`NEMOCLAW_DASHBOARD_BIND` controls the dashboard or API port forward bind address.
Expand Down Expand Up @@ -2343,7 +2343,7 @@ Set them before running `$$nemoclaw onboard`.
| `NEMOCLAW_SANDBOX_GPU` | `auto`, `1`, or `0` | Controls sandbox GPU passthrough during onboarding. `auto` enables GPU passthrough when an NVIDIA GPU is detected, `1` requires GPU passthrough, and `0` forces CPU-only sandbox creation. |
| `NEMOCLAW_SANDBOX_GPU_DEVICE` | OpenShell GPU device selector | Selects the GPU device passed with `openshell sandbox create --gpu-device`. Requires explicit sandbox GPU enablement with `NEMOCLAW_SANDBOX_GPU=1` (or `--sandbox-gpu` for CLI-driven onboarding); otherwise onboarding rejects the selector instead of treating it as an implicit opt-in. |
| `NEMOCLAW_DOCKER_GPU_PATCH` | `0` to disable, anything else to keep the default | Controls the Linux Docker-driver GPU sandbox compatibility patch. Set to `0` only as an escape hatch when the patch fails and you need onboarding to continue without patching the GPU sandbox container. |
| `NEMOCLAW_OPENSHELL_GATEWAY_CONTAINER_PATCH` | `1` to enable; disabled by default | Explicitly opts into the Linux gateway compatibility container for an older host ABI or a diagnostic run. This mode uses host networking and mounts the Docker socket read-only, but the socket still exposes the privileged Docker API. Use it only on a trusted local host; prefer OpenShell 0.0.71's directly supported glibc 2.28+ path. See the [OpenShell 0.0.71 gateway auth review](../security/openshell-0.0.71-gateway-auth-review#source-of-truth-boundaries). |
| `NEMOCLAW_OPENSHELL_GATEWAY_CONTAINER_PATCH` | `1` to enable; disabled by default | This setting explicitly opts into the Linux gateway compatibility container for an older host ABI or a diagnostic run; use it only on a trusted local host because it uses host networking and mounts the Docker socket read-only even though the socket still exposes the privileged Docker API; prefer OpenShell 0.0.72's directly supported glibc 2.28+ path; see the [OpenShell 0.0.72 compatibility review](../security/openshell-0.0.72-compatibility-review#source-of-truth-boundaries) for details. |
| `NEMOCLAW_OPENSHELL_GATEWAY_BIN` | path | Advanced override for the `openshell-gateway` binary used by the Linux Docker-driver standalone fallback. Defaults to the binary next to `openshell`, then common install paths. |
| `NEMOCLAW_OPENSHELL_SANDBOX_BIN` | path | Advanced override for the `openshell-sandbox` binary used by the Linux Docker-driver standalone fallback. Defaults to the binary next to `openshell`, then common install paths. |
| `NEMOCLAW_OPENSHELL_GATEWAY_STATE_DIR` | path | Advanced override for the Linux Docker-driver gateway SQLite state directory and standalone-fallback PID file. Defaults to `~/.local/state/nemoclaw/openshell-docker-gateway`. |
Expand Down
6 changes: 3 additions & 3 deletions docs/reference/network-policies.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -136,18 +136,18 @@ openshell policy update <sandbox-name> --add-endpoint api.example.com:443:read-o
```

To replace the live policy with a complete raw policy file, start from the live policy and use `openshell policy set`.
Requires OpenShell 0.0.44+ for `policy get --full` and `policy set --wait` syntax.
Requires OpenShell 0.0.72+ for the round-trippable `policy get --base` and `policy set --wait` syntax.

```bash
# shellcheck shell=bash
# Source-of-truth review:
# invalidState: OpenShell 0.0.44 policy get --full emits metadata before the --- YAML header.
# invalidState: OpenShell 0.0.72 policy get --base emits metadata before the --- YAML header.
# sourceBoundary: OpenShell CLI output is owned by the separate OpenShell project.
# whyNotSourceFix: NemoClaw pins OpenShell but cannot change that upstream formatter here.
# regressionTest: test/policy-roundtrip-docs.test.ts validates this shared docs pattern.
# removalCondition: remove this pipeline after pinned OpenShell emits clean raw YAML.
tmp_policy=$(mktemp)
openshell policy get --full <sandbox-name> \
openshell policy get --base <sandbox-name> \
| awk 'found { print } /^---$/ { found = 1 } END { if (!found) exit 1 }' \
> "$tmp_policy" \
&& grep -q '^version:' "$tmp_policy" \
Expand Down
Loading
Loading