Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
256 commits
Select commit Hold shift + click to select a range
5b04798
fix(e2e): bind reused publication to main
ericksoa Aug 17, 2026
f0326fc
fix(onboard): persist managed OpenClaw agent identity (#9370)
ericksoa Aug 17, 2026
d0fee06
fix(onboard): accept schema-owned messaging plan fields (#9374)
ericksoa Aug 18, 2026
3cf9a57
fix(openclaw): isolate startup guard output (#9371)
ericksoa Aug 18, 2026
1f4bf49
fix(policy): grant managed startup CA bundle read access (#9391)
ericksoa Aug 18, 2026
789a268
fix(e2e): require active Telegram configuration (#9375)
deepujain Aug 18, 2026
f08ae80
test(e2e): accept managed onboarding outcomes (#9394)
ericksoa Aug 18, 2026
2599e9b
fix(e2e): match credential values in sandbox scan (#9395)
ericksoa Aug 18, 2026
f59fc5a
test(e2e): restore reviewed legacy gateway fixture (#9398)
ericksoa Aug 18, 2026
123628c
fix(onboard): retain qualification catalog on rebuild (#9396)
ericksoa Aug 18, 2026
55f3397
fix(e2e): observe termios through inherited PTY (#9389)
jyaunches Aug 18, 2026
d216dfb
fix(onboard): accept managed runtime aliases (#9408)
deepujain Aug 18, 2026
2044f42
fix(onboard): persist managed Hermes state (#9373)
ericksoa Aug 18, 2026
0daba6c
fix(onboard): share qualification revision parsing
ericksoa Aug 18, 2026
8d00488
fix(cli): preserve platform base resolution metadata (#9400)
ericksoa Aug 18, 2026
5a3a358
fix(e2e): bind Deep Agents Code onboarding to the published platform …
jyaunches Aug 18, 2026
ac74291
fix(cli): preserve exact base resolution metadata (#9407)
ericksoa Aug 18, 2026
72c620e
fix(e2e): wait for OpenClaw startup before PTY input (#9422)
ericksoa Aug 18, 2026
d52803f
fix(cli): preserve Deep Agents Code rebuild base-image resolution met…
jyaunches Aug 18, 2026
7f7126e
fix(e2e): remove unenforced PTY signing (#9421)
jyaunches Aug 18, 2026
1bfeddc
test(e2e): accept completed OpenClaw TUI turns (#9444)
ericksoa Aug 18, 2026
6a1f4cd
fix(recovery): wait after legacy container handoff (#9423)
jyaunches Aug 18, 2026
f4f8a00
fix(cli): retain published LangChain Deep Agents Code base-image refe…
jyaunches Aug 18, 2026
774e236
fix(cli): settle Portable OpenClaw pairing (#9376)
senthilr-nv Aug 18, 2026
901e029
Merge origin/main into feat/b3-e-buildless-onboarding-9140
ericksoa Aug 18, 2026
fd30d43
fix(ci): align direct-run source-shape budget
ericksoa Aug 18, 2026
52bc0d4
Merge remote-tracking branch 'origin/main' into feat/b3-e-buildless-o…
ericksoa Aug 18, 2026
4a53e6f
Merge origin/main into feat/b3-e-buildless-onboarding-9140
ericksoa Aug 18, 2026
7db1b38
Merge origin/main into feat/b3-e-buildless-onboarding-9140
ericksoa Aug 18, 2026
7d91b15
test: keep managed publication coverage within budget
ericksoa Aug 18, 2026
bf44e73
fix(e2e): preserve managed catalog authority in child env
ericksoa Aug 18, 2026
a6feb56
fix(mcp): restore managed startup CA for probes
ericksoa Aug 18, 2026
822fbbe
Merge remote-tracking branch 'origin/main' into feat/b3-e-buildless-o…
ericksoa Aug 18, 2026
37442af
Merge remote-tracking branch 'origin/main' into feat/b3-e-buildless-o…
ericksoa Aug 19, 2026
def59e5
fix(onboard): preserve live managed CA trust
ericksoa Aug 19, 2026
f144ecf
Merge remote-tracking branch 'origin/main' into feat/b3-e-buildless-o…
ericksoa Aug 19, 2026
a4f9b59
fix(e2e): repair exact PR image qualification
ericksoa Aug 19, 2026
9c2d8f9
fix(e2e): bind PR image release to CLI identity
ericksoa Aug 19, 2026
f8c8ebc
ci(e2e): retrigger managed image qualification
ericksoa Aug 19, 2026
7f806ed
fix(e2e): use git release identity for PR images
ericksoa Aug 19, 2026
171f2db
ci(e2e): reuse qualified a4 image cohort
ericksoa Aug 19, 2026
438cedd
ci(e2e): match exact a4 CLI release identity
ericksoa Aug 19, 2026
075fc82
ci(e2e): preserve exact candidate build identity
ericksoa Aug 19, 2026
c04fae1
ci(e2e): preserve exact reused image catalog
ericksoa Aug 19, 2026
a013e04
ci(e2e): reuse qualified a4 base contract
ericksoa Aug 19, 2026
fe6cfd3
ci(e2e): expose reused base evidence to live target
ericksoa Aug 19, 2026
8e2fd43
Merge origin/main into feat/b3-e-buildless-onboarding-9140
ericksoa Aug 19, 2026
395c8db
Merge branch 'main' into feat/b3-e-buildless-onboarding-9140
ericksoa Aug 19, 2026
15e3400
ci(e2e): remove temporary branch qualification scaffolding
ericksoa Aug 19, 2026
6fa2baa
ci(e2e): preserve exact-sha branch qualification
ericksoa Aug 19, 2026
951e483
test(e2e): verify Telegram removal state (#9613)
ericksoa Aug 19, 2026
5feb302
fix(e2e): reap connect after dashboard forward handoff (#9621)
ericksoa Aug 19, 2026
cf2d821
fix(onboard): authorize stock messaging schema fields (#9615)
ericksoa Aug 19, 2026
edb2767
fix(policy): allow managed startup runtime trust reads (#9616)
ericksoa Aug 19, 2026
f10a9bc
test(e2e): prove managed Hermes GPU startup (#9612)
ericksoa Aug 19, 2026
af9be9b
fix(images): preserve DCode base resolution metadata (#9628)
ericksoa Aug 19, 2026
6d6d5d1
fix(runtime): acquire managed Hermes root helper (#9629)
ericksoa Aug 19, 2026
165d11a
fix(ci): resolve current PR managed image catalog
ericksoa Aug 19, 2026
15f8237
fix(ci): reuse current managed image contracts
ericksoa Aug 19, 2026
c2a190a
fix(ci): reuse unchanged Deep Agents base
ericksoa Aug 19, 2026
7055923
fix(onboard): persist verified sandbox GPU proof
ericksoa Aug 19, 2026
dfdaaa7
test(e2e): validate managed reasoning handoff
ericksoa Aug 19, 2026
bc17229
fix(runtime): preserve helper channel across Hermes fence
ericksoa Aug 19, 2026
45398c3
test(e2e): verify Hermes managed bootstrap command
ericksoa Aug 19, 2026
015bb45
fix(onboard): hand off managed GPU fallback cleanup
ericksoa Aug 19, 2026
92de803
fix(runtime): refresh reviewed managed startup bundle
ericksoa Aug 19, 2026
fbc2d2a
fix(onboard): rotate managed GPU fallback identity
ericksoa Aug 19, 2026
6e6a0f8
ci(e2e): pin refreshed managed image cohort
ericksoa Aug 19, 2026
eeffc82
fix(e2e): resolve cutover residual failures
ericksoa Aug 20, 2026
8b02205
fix(e2e): clear remaining cutover failures
ericksoa Aug 20, 2026
49ede87
ci(e2e): qualify exact residual-fix candidate
ericksoa Aug 20, 2026
03e6eb6
fix(e2e): clear managed cutover failures
ericksoa Aug 20, 2026
b85031a
ci(e2e): reuse immutable images for PR heads
ericksoa Aug 20, 2026
693a061
fix(e2e): resolve repeated cutover failures
ericksoa Aug 20, 2026
9d4f692
fix(e2e): preserve Hermes helper transport readability
ericksoa Aug 20, 2026
aedf72f
fix(runtime): preserve root helper failure code
ericksoa Aug 20, 2026
5ba446f
fix(runtime): align Hermes transaction binding
ericksoa Aug 20, 2026
260198a
fix(runtime): settle final Hermes E2E races
ericksoa Aug 20, 2026
9d96d10
fix(shields): avoid fresh Hermes no-op mutation
ericksoa Aug 20, 2026
8c109f5
fix(hermes): bind managed Shields state root
ericksoa Aug 20, 2026
a6200b7
Merge remote-tracking branch 'origin/main' into fix/9323-e2e-residuals
ericksoa Aug 20, 2026
fbc198b
fix(mcp): republish credentials after policy binding
ericksoa Aug 20, 2026
c073313
ci(e2e): reuse exact managed image contracts
ericksoa Aug 20, 2026
db1f99d
merge: resolve conflicts with main
github-actions[bot] Aug 20, 2026
58ef958
fix(onboard): exclude Hermes Portable from managed activation (#9635)
ericksoa Aug 20, 2026
b684daa
merge: resolve conflicts with main
github-actions[bot] Aug 20, 2026
10ae460
merge: resolve conflicts with main
github-actions[bot] Aug 20, 2026
57652f5
Merge branch 'main' into feat/b3-e-buildless-onboarding-9140
prekshivyas Aug 20, 2026
d333939
fix: address qualification review findings
prekshivyas Aug 21, 2026
5adfe5a
Merge branch 'main' into feat/b3-e-buildless-onboarding-9140
prekshivyas Aug 21, 2026
e9b25d2
fix: clear MCP qualification and advisor failures
prekshivyas Aug 21, 2026
562d3d0
test: satisfy advisor diff growth guardrails
prekshivyas Aug 21, 2026
10f8658
fix: bind managed images to release provenance
prekshivyas Aug 21, 2026
c89b256
test(e2e): support authenticated MCP event streams
prekshivyas Aug 21, 2026
e11c69a
test(e2e): flush authenticated MCP event streams
prekshivyas Aug 21, 2026
b4aa3dd
test(e2e): support mcporter legacy SSE fallback
prekshivyas Aug 21, 2026
bb2e8ec
fix(mcp): harden legacy session fallback
prekshivyas Aug 21, 2026
ac99d22
chore(ci): lower stale runner fan-in budget
prekshivyas Aug 21, 2026
e9f3592
test(onboard): reproduce final lifecycle handoff race
jyaunches Aug 21, 2026
863b44a
test(mcp): recognize fresh placeholder registration
prekshivyas Aug 21, 2026
515b1e4
merge(main): reconcile rebuild lifecycle handoff
jyaunches Aug 21, 2026
66436ff
fix(onboard): wait for final lifecycle release
jyaunches Aug 21, 2026
7717276
docs(onboard): record lifecycle wait contract
jyaunches Aug 21, 2026
cdbf301
Merge branch 'main' into feat/b3-e-buildless-onboarding-9140
prekshivyas Aug 21, 2026
13409b3
test(mcp): use live credential revision in probe
prekshivyas Aug 21, 2026
82cd997
fix(codeql): remove adapter alert patterns
prekshivyas Aug 21, 2026
2b39ebc
fix(rebuild): restore MCP policies through owned lifecycle
prekshivyas Aug 21, 2026
6016f7f
test(installer): budget forward watcher probes
prekshivyas Aug 21, 2026
61af3e0
fix(onboard): recognize stopped replacement lifecycle
jyaunches Aug 21, 2026
ab59550
test(messaging): cover Hermes Discord credential binding
jyaunches Aug 21, 2026
583c243
fix(rebuild): stage MCP policy carry-forward
prekshivyas Aug 21, 2026
e7796bb
fix(messaging): bind Hermes Discord credentials
jyaunches Aug 21, 2026
cd9f257
fix(onboard): deduplicate provider cleanup suffixes
jyaunches Aug 21, 2026
3d816eb
fix(rebuild): hand off MCP state to inner onboard
prekshivyas Aug 21, 2026
c03f880
fix(messaging): verify existing static profiles
jyaunches Aug 21, 2026
2d5c0f6
fix(messaging): replay static provider binding
jyaunches Aug 21, 2026
d9146d4
test(messaging): cover static policy passthrough
jyaunches Aug 21, 2026
777bac5
fix(messaging): fail closed on unresolved policy bindings
jyaunches Aug 21, 2026
9565fd2
fix(onboard): require final lifecycle release
jyaunches Aug 21, 2026
b2aa0bd
fix(messaging): enforce static bindings on channel add
jyaunches Aug 21, 2026
5e700a8
fix(onboard): keep lifecycle polling host-bound
jyaunches Aug 21, 2026
6890b5a
fix(messaging): revalidate static profile reuse
jyaunches Aug 21, 2026
031f682
fix(shields): preserve Hermes Discord bindings
jyaunches Aug 21, 2026
ae09374
fix(messaging): preserve conflicting providers
jyaunches Aug 21, 2026
1fbf968
test(shields): prove invalid identity fails before staging
jyaunches Aug 21, 2026
3110720
fix(messaging): preflight provider identities
jyaunches Aug 21, 2026
56f1bd3
test(messaging): align provider preflight fixtures
jyaunches Aug 21, 2026
c085f0a
fix(policy): explain binding materialization failures
jyaunches Aug 21, 2026
c9435f8
fix(providers): scope static profile checks
jyaunches Aug 21, 2026
32c21c7
merge(main): reconcile lifecycle handoff
jyaunches Aug 21, 2026
5b1af40
test(onboard): cover lifecycle probe failures
jyaunches Aug 21, 2026
1f1bac2
merge(main): incorporate MCP prerequisite
jyaunches Aug 21, 2026
4d45294
merge(main): include launchable diagnostics
jyaunches Aug 21, 2026
e035fb6
fix(rebuild): bind MCP carry-forward to journal
prekshivyas Aug 21, 2026
18932f0
fix(policy): materialize Hermes permissive binding
jyaunches Aug 21, 2026
74a3230
Merge remote-tracking branch 'origin/main' into pr-9323
prekshivyas Aug 21, 2026
0584e99
test(mcp): align destroy rollback with revision handoff
prekshivyas Aug 21, 2026
2785f69
test(policy): make mode assertion portable
jyaunches Aug 21, 2026
a81f272
Merge branch 'main' into codex/fix-rebuild-final-lifecycle-handoff
cjagwani Aug 21, 2026
b0aa634
Merge remote-tracking branch 'origin/main' into pr-9323
prekshivyas Aug 21, 2026
5edd54a
fix(openclaw): refresh hash after plugin registry update
prekshivyas Aug 21, 2026
fd1e0f9
fix(messaging): bind channel credentials to profile
rsliter Aug 21, 2026
7be37f9
fix(messaging): fail closed on provider inspection
apurvvkumaria Aug 21, 2026
89995d4
merge: sync current main into messaging repair
apurvvkumaria Aug 21, 2026
3249f54
fix(messaging): verify profile-backed provider state
rsliter Aug 21, 2026
87415a3
test(messaging): align provider identity fixtures
apurvvkumaria Aug 21, 2026
6b4ec41
merge: reconcile provider verification repairs
rsliter Aug 21, 2026
9d26f06
fix(snapshot): revalidate before profile import
apurvvkumaria Aug 21, 2026
eb92aca
docs(messaging): correct placeholder provider profile
rsliter Aug 21, 2026
5b635e2
merge: preserve concurrent messaging repairs
rsliter Aug 21, 2026
7f4ffd3
fix(messaging): address provider review feedback
apurvvkumaria Aug 21, 2026
79efaef
fix(messaging): bound provider inspection output
rsliter Aug 21, 2026
4889d64
merge(messaging): reconcile provider review repairs
rsliter Aug 21, 2026
cd5ba23
merge(main): reconcile lifecycle handoff
jyaunches Aug 21, 2026
e8ec3bf
merge: sync current main into messaging repair
apurvvkumaria Aug 21, 2026
7254137
fix(onboard): require sandbox name release
jyaunches Aug 21, 2026
1f7958b
merge(main): reconcile lifecycle handoff fix
jyaunches Aug 21, 2026
aa533f9
merge(main): reconcile installer trust update
jyaunches Aug 21, 2026
312c0be
merge: resolve conflicts with main
github-actions[bot] Aug 21, 2026
54d86dc
merge: resolve conflicts with main
github-actions[bot] Aug 21, 2026
053d704
merge(main): reconcile provider publication order
jyaunches Aug 21, 2026
0e1cf95
test(onboard): model lifecycle release in messaging fixtures
jyaunches Aug 21, 2026
29d560f
test(installer): expect root Hermes Dockerfile
prekshivyas Aug 21, 2026
50816d9
fix(e2e): refresh branch artifact identities
prekshivyas Aug 21, 2026
36fe7ba
merge: include approved lifecycle handoff fix
prekshivyas Aug 21, 2026
26fea95
merge: include approved Hermes Discord binding fix
prekshivyas Aug 21, 2026
bec8bd7
merge: update from main
prekshivyas Aug 21, 2026
64da19c
fix(messaging): verify providers before recreation
rsliter Aug 21, 2026
5e53524
merge: include messaging credential binding fix
prekshivyas Aug 21, 2026
529d8a9
fix(ci): reconcile composed workflow validators
prekshivyas Aug 21, 2026
7d96f5b
merge: update from main
prekshivyas Aug 21, 2026
ff65906
fix(messaging): validate provider adoption boundaries
rsliter Aug 21, 2026
4bcddb8
merge(main): refresh provider credential repair
rsliter Aug 21, 2026
1be3219
fix(messaging): scope profile validation to gateway
rsliter Aug 21, 2026
1aecbf1
test(messaging): accept scoped profile commands
rsliter Aug 21, 2026
904558d
fix(messaging): validate profiles before reuse
rsliter Aug 21, 2026
b77f111
fix(messaging): validate profiles before onboarding reuse
rsliter Aug 21, 2026
26b2b41
Merge remote-tracking branch 'origin/main' into codex/pr9323-main-ref…
ericksoa Aug 21, 2026
e54a8ca
fix(onboard): reconcile managed GPU fallback cleanup
prekshivyas Aug 21, 2026
9b2b5a2
merge: reconcile concurrent branch refresh
prekshivyas Aug 21, 2026
2805617
merge: resolve conflicts with main
github-actions[bot] Aug 22, 2026
b686615
merge: resolve conflicts with main
github-actions[bot] Aug 22, 2026
423b67d
merge: resolve conflicts with main
github-actions[bot] Aug 22, 2026
1289012
merge: resolve conflicts with main
github-actions[bot] Aug 22, 2026
86a5e6c
merge: synchronize current main into messaging fix
cv Aug 22, 2026
a4b4cb5
fix(messaging): align provider test options
cv Aug 22, 2026
48ef532
test(messaging): align provider reuse binding fixture
apurvvkumaria Aug 22, 2026
604cfff
fix(ci): continue bounded advisor submission
prekshivyas Aug 22, 2026
9e30e4a
Merge remote-tracking branch 'refs/remotes/origin/pr-9323-remote' int…
prekshivyas Aug 22, 2026
392d9bc
Merge remote-tracking branch 'origin/main' into pr-9323
prekshivyas Aug 22, 2026
7931bd5
merge: update reconstructed candidate from main
prekshivyas Aug 22, 2026
3d63d8b
fix(onboard): reconcile managed GPU fallback cleanup
prekshivyas Aug 21, 2026
5b6594a
fix(ci): continue bounded advisor submission
prekshivyas Aug 22, 2026
d497528
merge: reconstruct clean candidate history
prekshivyas Aug 22, 2026
23425da
merge: update PR branch from main
prekshivyas Aug 22, 2026
a0b495a
fix(ci): let coverage shards finish
prekshivyas Aug 22, 2026
cc2333c
merge: update PR branch from main
prekshivyas Aug 22, 2026
0bcbb31
refactor(ci): split managed catalog validator
prekshivyas Aug 22, 2026
4d240b5
fix(ci): bound advisor diff context
prekshivyas Aug 22, 2026
96098d9
fix(runtime): preserve broker failure codes
prekshivyas Aug 22, 2026
1f79df8
test(ci): avoid advisor budget loop
prekshivyas Aug 22, 2026
4c06b17
fix(ci): serialize installer process fixtures
prekshivyas Aug 22, 2026
6e80e64
fix(ci): separate advisor validation from commit
prekshivyas Aug 22, 2026
7af992e
fix(ci): model sandbox lifecycle release
prekshivyas Aug 22, 2026
71f99aa
fix(ci): unblock exact-head validation
prekshivyas Aug 22, 2026
731f631
Merge remote-tracking branch 'origin/main' into pr-9323
prekshivyas Aug 22, 2026
9d43cb4
fix(ci): stagger advisor inference setup
prekshivyas Aug 22, 2026
2324791
Merge remote-tracking branch 'origin/main' into pr-9323
prekshivyas Aug 22, 2026
48b9dd4
test(ci): satisfy conditional growth guard
prekshivyas Aug 22, 2026
fd14c6e
fix(advisor): narrow tool flow events
prekshivyas Aug 22, 2026
7de832d
Merge branch 'main' into codex/fix-9875-messaging-credential-binding
prekshivyas Aug 22, 2026
7f3ba1b
test(ci): bound merged lifecycle fixtures
prekshivyas Aug 23, 2026
9433da3
Merge origin/main into feat/b3-e-buildless-onboarding-9140
prekshivyas Aug 23, 2026
3ee89d6
fix(onboard): bind final handoff to replacement identity
jyaunches Aug 23, 2026
81f4f88
Merge remote-tracking branch 'origin/main' into pr-9323
prekshivyas Aug 23, 2026
01e4611
merge: resolve conflicts with main
github-actions[bot] Aug 23, 2026
f1b4059
Merge remote-tracking branch 'origin/pull-request/9913' into pr-9323
prekshivyas Aug 23, 2026
81d5f5e
Merge remote-tracking branch 'origin/main' into pr-9323
prekshivyas Aug 23, 2026
fa71b2c
fix(e2e): close exact branch qualification gaps
prekshivyas Aug 23, 2026
f077e3f
Merge remote-tracking branch 'origin/main' into pr-9323
prekshivyas Aug 23, 2026
5790997
Merge remote-tracking branch 'origin/feat/b3-e-buildless-onboarding-9…
prekshivyas Aug 23, 2026
1e7bf9f
Merge origin/main into feat/b3-e-buildless-onboarding-9140
prekshivyas Aug 23, 2026
02bbe09
Merge origin/main into feat/b3-e-buildless-onboarding-9140
prekshivyas Aug 23, 2026
8cfe874
Merge origin/main into feat/b3-e-buildless-onboarding-9140
prekshivyas Aug 23, 2026
ae0e299
fix(advisor): bound specialist context records
prekshivyas Aug 23, 2026
0328b9f
merge: update main for PR qualification
prekshivyas Aug 23, 2026
0d5d5fe
merge: update workflow names from main
prekshivyas Aug 23, 2026
30bdaba
fix(advisor): bound serialized tool results
prekshivyas Aug 23, 2026
69260f3
Merge branch 'main' into feat/b3-e-buildless-onboarding-9140
prekshivyas Aug 23, 2026
1009d72
docs(onboard): align managed-image startup guidance
prekshivyas Aug 23, 2026
e54a183
Merge branch 'main' into feat/b3-e-buildless-onboarding-9140
prekshivyas Aug 23, 2026
ccecabf
Merge branch 'main' into feat/b3-e-buildless-onboarding-9140
prekshivyas Aug 23, 2026
5ccc51f
test(advisor): keep pagination scenario direct
prekshivyas Aug 23, 2026
b3d11c9
Merge branch 'main' into feat/b3-e-buildless-onboarding-9140
prekshivyas Aug 23, 2026
ff3d5fc
Merge branch 'main' into feat/b3-e-buildless-onboarding-9140
prekshivyas Aug 23, 2026
6d7ddec
Merge branch 'main' into feat/b3-e-buildless-onboarding-9140
prekshivyas Aug 23, 2026
619fc6c
fix(ci): model messaging lifecycle release
prekshivyas Aug 23, 2026
82f6929
Merge branch 'main' into feat/b3-e-buildless-onboarding-9140
prekshivyas Aug 23, 2026
b07e76f
Merge branch 'main' into feat/b3-e-buildless-onboarding-9140
prekshivyas Aug 23, 2026
e70f16a
merge: resolve conflicts with main
github-actions[bot] Aug 23, 2026
2251479
Merge main into feat/b3-e-buildless-onboarding-9140
prekshivyas Aug 23, 2026
956bfad
fix(e2e): repair protected arm and custom pairing
prekshivyas Aug 23, 2026
c23f5c3
fix(onboard): release route reservation on reuse
prekshivyas Aug 23, 2026
f0fe66a
test(e2e): satisfy loop growth guardrail
prekshivyas Aug 23, 2026
25056ce
Merge origin/main into feat/b3-e-buildless-onboarding-9140
prekshivyas Aug 23, 2026
bc4e68c
fix(onboard): fail closed on GPU cleanup identity
prekshivyas Aug 23, 2026
86218a5
test(ci): satisfy static guardrails
prekshivyas Aug 23, 2026
b847d40
fix(onboard): align managed fallback guidance
prekshivyas Aug 23, 2026
c380fc0
Merge origin/main into feat/b3-e-buildless-onboarding-9140
prekshivyas Aug 23, 2026
0943a7d
fix(hermes): admit reviewed startup test source
prekshivyas Aug 23, 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
6 changes: 6 additions & 0 deletions .github/actions/ci-static-checks/action.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,12 @@ runs:
shell: bash
run: npm install --ignore-scripts

- name: Verify reviewed runtime bundles
shell: bash
run: |
npm --prefix tools/mcp-tool-discovery-runtime ci --ignore-scripts --no-audit --no-fund
npm --prefix tools/mcp-tool-discovery-runtime run bundle:reviewed:check

- name: Validate config schemas
shell: bash
run: npm run validate:configs
Expand Down
65 changes: 60 additions & 5 deletions .github/workflows/e2e-standard-profile.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,9 @@ on:
cli_artifact_provenance:
required: true
type: string
managed_image_catalog:
required: true
type: string
credential_boundary:
required: true
type: string
Expand Down Expand Up @@ -196,12 +199,18 @@ jobs:
exit 1
}

if [[ "${REPOSITORY}" != "NVIDIA/NemoClaw" || "${REF}" != "refs/heads/main" ]]; then
fail "workflow must run from NVIDIA/NemoClaw main"
if [[ "${REPOSITORY}" != "NVIDIA/NemoClaw" ]]; then
fail "workflow must run from NVIDIA/NemoClaw"
fi
if [[ "${EVENT_NAME}" != "push" && "${EVENT_NAME}" != "workflow_dispatch" ]]; then
fail "workflow event must be push or workflow_dispatch"
fi
if [[ "${EVENT_NAME}" == "push" && "${REF}" != "refs/heads/main" ]]; then
fail "push workflow must run from NVIDIA/NemoClaw main"
fi
if [[ "${EVENT_NAME}" == "workflow_dispatch" && "${REF}" != refs/heads/* ]]; then
fail "manual workflow must run from an NVIDIA/NemoClaw branch"
fi
# PR E2E mode: maintainer-dispatched PR commit.
if [[ "${EVENT_NAME}" == "workflow_dispatch" && -n "${CHECKOUT_SHA}" ]]; then
if [[ ! "${CHECKOUT_SHA}" =~ ^[0-9a-f]{40}$ ]]; then
Expand Down Expand Up @@ -356,6 +365,7 @@ jobs:
with:
repository: ${{ inputs.candidate_repository }}
ref: ${{ inputs.candidate_sha }}
fetch-depth: 0
persist-credentials: false

- name: Authenticate to Docker Hub
Expand All @@ -382,6 +392,45 @@ jobs:
with:
provenance-json: ${{ inputs.cli_artifact_provenance }}

- name: Materialize temporary managed-image catalog
if: ${{ inputs.managed_image_catalog != '' }}
shell: /bin/bash --noprofile --norc -e -o pipefail {0}
env:
CANDIDATE_SHA: ${{ inputs.candidate_sha }}
MANAGED_IMAGE_CATALOG: ${{ inputs.managed_image_catalog }}
RESTORE_CLI: ${{ inputs.restore_cli && 'true' || 'false' }}
run: |
set -euo pipefail
catalog_path="${RUNNER_TEMP}/e2e-managed-image-catalog.json"
jq -e --arg revision "$CANDIDATE_SHA" '
type == "object" and length > 0 and
all(.[];
.source.revision == $revision and
(.source.release | type == "string" and length > 0) and
(.source.cohort | type == "string" and length > 0)
) and
([.[].source.release] | unique | length) == 1 and
([.[].source.cohort] | unique | length) == 1
' <<<"$MANAGED_IMAGE_CATALOG" >/dev/null || {
echo "::error::managed-image catalog source identity does not match the candidate" >&2
exit 1
}
if [[ "$RESTORE_CLI" == "true" ]]; then
candidate_release="v$(jq -r '.nemoclawVersion' dist/build-identity.json)"
jq -e --arg release "$candidate_release" '
all(.[]; .source.release == $release)
' <<<"$MANAGED_IMAGE_CATALOG" >/dev/null || {
echo "::error::managed-image catalog release does not match the restored CLI" >&2
exit 1
}
fi
jq -c . <<<"$MANAGED_IMAGE_CATALOG" >"$catalog_path"
[[ -s "$catalog_path" && ! -L "$catalog_path" ]] || {
echo "::error::temporary managed-image catalog is invalid" >&2
exit 1
}
printf 'NEMOCLAW_E2E_MANAGED_IMAGE_CATALOG=%s\n' "$catalog_path" >>"$GITHUB_ENV"

- name: Install reviewed cloudflared
if: ${{ inputs.cloudflared }}
shell: /bin/bash --noprofile --norc -e -o pipefail {0}
Expand Down Expand Up @@ -433,12 +482,18 @@ jobs:
exit 1
}

if [[ "${REPOSITORY}" != "NVIDIA/NemoClaw" || "${REF}" != "refs/heads/main" ]]; then
fail "workflow must run from NVIDIA/NemoClaw main"
if [[ "${REPOSITORY}" != "NVIDIA/NemoClaw" ]]; then
fail "workflow must run from NVIDIA/NemoClaw"
fi
if [[ "${EVENT_NAME}" != "push" && "${EVENT_NAME}" != "workflow_dispatch" ]]; then
fail "workflow event must be push or workflow_dispatch"
fi
if [[ "${EVENT_NAME}" == "push" && "${REF}" != "refs/heads/main" ]]; then
fail "push workflow must run from NVIDIA/NemoClaw main"
fi
if [[ "${EVENT_NAME}" == "workflow_dispatch" && "${REF}" != refs/heads/* ]]; then
fail "manual workflow must run from an NVIDIA/NemoClaw branch"
fi
if [[ "${EVENT_NAME}" == "workflow_dispatch" && -n "${CHECKOUT_SHA}" ]]; then
if [[ ! "${CHECKOUT_SHA}" =~ ^[0-9a-f]{40}$ ]]; then
fail "checkout SHA must be lowercase 40-hex"
Expand Down Expand Up @@ -580,7 +635,7 @@ jobs:
[[ "$JOB_STATUS" =~ ^(success|failure|cancelled)$ ]] || { echo "::error::E2E job status is invalid" >&2; exit 1; }
[[ "$ARTIFACT_DIRECTORY" =~ ^e2e-artifacts/live/[a-z0-9]+([_-][a-z0-9]+)*(/[a-z0-9]+([_-][a-z0-9]+)*)?$ ]] || { echo "::error::E2E artifact directory is invalid" >&2; exit 1; }
install -d -m 0700 "$ARTIFACT_DIRECTORY"
product_evidence_count="$(find -P "$ARTIFACT_DIRECTORY" -type f ! -name evidence-manifest.json -printf . | wc -c)"
product_evidence_count="$(find -P "$ARTIFACT_DIRECTORY" -type f ! -name evidence-manifest.json -exec printf . \; | wc -c | tr -d '[:space:]')"
if [[ "$JOB_STATUS" == "success" && "$product_evidence_count" == "0" ]]; then
echo "::error::successful E2E target produced no product evidence" >&2
exit 1
Expand Down
Loading
Loading