Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
962d6dc
feat: add OpenClaw observability plugin shell
mnajafian-nv May 6, 2026
5fa14d7
feat: add OpenClaw hook replay backend
mnajafian-nv May 7, 2026
7f6c457
feat: align OpenClaw hook backend lifecycle
mnajafian-nv May 7, 2026
80de1ff
feat: add OpenClaw telemetry outputs
mnajafian-nv May 7, 2026
115ea38
feat: add OpenClaw LLM and tool replay
mnajafian-nv May 7, 2026
c48ea23
Update integrations/openclaw/package.json
mnajafian-nv May 7, 2026
97d9c18
fix: address OpenClaw observability plugin review feedback
mnajafian-nv May 7, 2026
65a4fee
test: harden OpenClaw replay edge cases
mnajafian-nv May 7, 2026
bd66d54
refactor: narrow OpenClaw plugin public surface
mnajafian-nv May 7, 2026
afb27ae
Merge remote-tracking branch 'upstream/main' into feat/openclaw-hooks…
mnajafian-nv May 7, 2026
b9962f5
fix: harden OpenClaw JSON normalization
mnajafian-nv May 7, 2026
e4f0b18
fix: align OpenClaw plugin metadata
mnajafian-nv May 7, 2026
fbd33d5
fix(openclaw): align package payload and docs
mnajafian-nv May 7, 2026
f701652
fix(openclaw): add README license header
mnajafian-nv May 7, 2026
1b557e1
refactor(openclaw): use typed plugin API handlers
mnajafian-nv May 7, 2026
4df12b3
fix: harden OpenClaw runtime lifecycle
mnajafian-nv May 8, 2026
7a812fb
fix: preserve LLM usage in OpenInference export
mnajafian-nv May 8, 2026
66645b8
build: manage Node packages with npm workspaces
mnajafian-nv May 8, 2026
dc46c6c
ci(openclaw): fix workspace validation paths
mnajafian-nv May 8, 2026
a3593d5
ci(openclaw): make pack check portable on Windows
mnajafian-nv May 8, 2026
2c00ec2
chore(openclaw): align package with root workspace
mnajafian-nv May 8, 2026
d4c235b
ci: split OpenClaw integration checks
mnajafian-nv May 8, 2026
2ce6a9d
Update .github/workflows/ci_node.yml
mnajafian-nv May 8, 2026
f851fe6
ci: move OpenClaw checks to dedicated workflow
mnajafian-nv May 8, 2026
34ea4bd
Merge remote-tracking branch 'origin/feat/openclaw-hooks-observabilit…
mnajafian-nv May 8, 2026
f44fb5b
ci: build Node binding before OpenClaw checks
mnajafian-nv May 8, 2026
192d811
Improve OpenInference display payloads
mnajafian-nv May 9, 2026
eceb860
Improve OpenClaw hook replay fidelity
mnajafian-nv May 9, 2026
af19369
Cover OpenInference display helpers
mnajafian-nv May 9, 2026
c80fec7
Add source release artifacts for OpenClaw deps
mnajafian-nv May 9, 2026
9f81845
docs: document OpenClaw plugin replay boundaries
mnajafian-nv May 9, 2026
bbc12bd
docs: clean up OpenClaw plugin README
mnajafian-nv May 9, 2026
556be5a
chore: remove vendored OpenClaw dependency artifacts
mnajafian-nv May 9, 2026
60595e2
Merge remote-tracking branch 'upstream/main' into feat/openclaw-hooks…
mnajafian-nv May 9, 2026
da04c30
Merge remote-tracking branch 'upstream/main' into feat/openclaw-hooks…
mnajafian-nv May 11, 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
4 changes: 4 additions & 0 deletions .github/ci-path-filters.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ dependencies:
- 'about.toml'
- 'crates/**/Cargo.toml'
- 'crates/**/package.json'
- 'integrations/**/package.json'
- 'package.json'
- 'package-lock.json'
- 'pyproject.toml'
Expand Down Expand Up @@ -69,6 +70,9 @@ node:
- 'crates/node/tests/**/*.mjs'
- 'scripts/test-support/**'

openclaw:
- 'integrations/openclaw/**'

python:
- 'crates/python/Cargo.toml'
- 'crates/python/src/**'
Expand Down
12 changes: 12 additions & 0 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -195,6 +195,14 @@ jobs:
ref_type: ${{ github.ref_type }}
ref_name: ${{ github.ref_name }}

ci_openclaw:
name: OpenClaw
needs: [prepare, ci_changes, ci_check]
uses: ./.github/workflows/ci_openclaw.yml
if: ${{ needs.ci_check.result == 'success' && needs.ci_changes.outputs.run_openclaw == 'true' }}
permissions:
contents: read

ci_python:
name: Python
needs: [prepare, ci_changes, ci_check]
Expand Down Expand Up @@ -231,6 +239,7 @@ jobs:
- ci_rust
- ci_go
- ci_node
- ci_openclaw
- ci_python
- ci_wasm
if: ${{ always() && !cancelled() && needs.prepare.result == 'success' && ! fromJSON(needs.prepare.outputs.has_skip_ci_label) }}
Expand All @@ -246,6 +255,7 @@ jobs:
RUST_RESULT: ${{ needs.ci_rust.result }}
GO_RESULT: ${{ needs.ci_go.result }}
NODE_RESULT: ${{ needs.ci_node.result }}
OPENCLAW_RESULT: ${{ needs.ci_openclaw.result }}
PYTHON_RESULT: ${{ needs.ci_python.result }}
WEBASSEMBLY_RESULT: ${{ needs.ci_wasm.result }}
publish_docs: ${{ needs.prepare.outputs.publish_docs }}
Expand Down Expand Up @@ -284,11 +294,13 @@ jobs:
if [[ "$publish_packages" == "true" ]]; then
require_success "Rust" "$RUST_RESULT"
require_success "Node.js" "$NODE_RESULT"
allow_success_or_skipped "OpenClaw" "$OPENCLAW_RESULT"
require_success "Python" "$PYTHON_RESULT"
require_success "WebAssembly" "$WEBASSEMBLY_RESULT"
else
allow_success_or_skipped "Rust" "$RUST_RESULT"
allow_success_or_skipped "Node.js" "$NODE_RESULT"
allow_success_or_skipped "OpenClaw" "$OPENCLAW_RESULT"
allow_success_or_skipped "Python" "$PYTHON_RESULT"
allow_success_or_skipped "WebAssembly" "$WEBASSEMBLY_RESULT"
fi
Expand Down
4 changes: 4 additions & 0 deletions .github/workflows/ci_changes.yml
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,9 @@ on:
run_node:
description: 'Whether Node.js jobs should run'
value: ${{ jobs.changes.outputs.run_node }}
run_openclaw:
description: 'Whether OpenClaw integration jobs should run'
value: ${{ jobs.changes.outputs.run_openclaw }}
run_python:
description: 'Whether Python jobs should run'
value: ${{ jobs.changes.outputs.run_python }}
Expand All @@ -62,6 +65,7 @@ jobs:
run_docs: ${{ (inputs.full_ci || startsWith(inputs.ref_name, 'pull-request/')) && (inputs.full_ci || steps.filter.outputs.ci == 'true' || steps.filter.outputs.shared == 'true' || steps.filter.outputs.docs == 'true') }}
run_go: ${{ inputs.full_ci || steps.filter.outputs.ci == 'true' || steps.filter.outputs.shared == 'true' || steps.filter.outputs.go == 'true' }}
run_node: ${{ inputs.full_ci || steps.filter.outputs.ci == 'true' || steps.filter.outputs.shared == 'true' || steps.filter.outputs.node == 'true' }}
run_openclaw: ${{ inputs.full_ci || steps.filter.outputs.ci == 'true' || steps.filter.outputs.shared == 'true' || steps.filter.outputs.openclaw == 'true' }}
run_python: ${{ inputs.full_ci || steps.filter.outputs.ci == 'true' || steps.filter.outputs.shared == 'true' || steps.filter.outputs.python == 'true' }}
run_rust: ${{ inputs.full_ci || steps.filter.outputs.ci == 'true' || steps.filter.outputs.shared == 'true' || steps.filter.outputs.rust == 'true' }}
run_wasm: ${{ inputs.full_ci || steps.filter.outputs.ci == 'true' || steps.filter.outputs.shared == 'true' || steps.filter.outputs.wasm == 'true' }}
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/ci_docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@ jobs:
run: uv sync --no-default-groups --group docs --no-install-project

- name: Install Node.js Documentation Dependencies
working-directory: ${{ env.NEMO_FLOW_CI_WORKSPACE }}/crates/node
working-directory: ${{ env.NEMO_FLOW_CI_WORKSPACE }}
Comment thread
mnajafian-nv marked this conversation as resolved.
run: npm ci --ignore-scripts

- name: Materialize Main Branch For Versioned Docs
Expand Down
58 changes: 58 additions & 0 deletions .github/workflows/ci_openclaw.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
# SPDX-FileCopyrightText: Copyright (c) 2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
# SPDX-License-Identifier: Apache-2.0

name: OpenClaw

on:
workflow_call:

defaults:
run:
shell: bash

env:
GH_TOKEN: "${{ github.token }}"
GIT_COMMIT: "${{ github.sha }}"
NEMO_FLOW_CI_WORKSPACE: "${{ github.workspace }}"
UV_PYTHON_DOWNLOADS: never

jobs:
Test:
name: Test
runs-on: ubuntu-latest
timeout-minutes: 30
permissions:
contents: read

steps:
- name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6

- name: Load CI tool versions
id: ci-config
uses: ./.github/actions/load-ci-tool-versions

- uses: actions-rust-lang/setup-rust-toolchain@150fca883cd4034361b621bd4e6a9d34e5143606 # v1.15.4
with:
cache: false
toolchain: ${{ steps.ci-config.outputs.rust_version }}

- uses: Swatinem/rust-cache@c19371144df3bb44fab255c43d04cbc2ab54d1c4 # v2.9.1
with:
shared-key: nemo-flow-rust-${{ runner.os }}-${{ runner.arch }}-${{ steps.ci-config.outputs.rust_version }}
workspaces: . -> target
cache-all-crates: true
cache-bin: false
save-if: false

- uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6
with:
node-version: ${{ steps.ci-config.outputs.node_version }}

- uses: taiki-e/install-action@5939f3337e40968c39aa70f5ecb1417a92fb25a0 # v2.75.15
with:
tool: just@${{ steps.ci-config.outputs.just_version }}

- name: Run OpenClaw integration checks
working-directory: ${{ env.NEMO_FLOW_CI_WORKSPACE }}
run: just --set ci true test-openclaw
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,8 @@ crates/node/index.js
crates/node/index.d.ts
crates/node/coverage/
crates/node/junit.xml
integrations/openclaw/dist/
integrations/openclaw/.test-dist/

# WebAssembly
crates/wasm/pkg/
Expand Down
Loading
Loading