Skip to content
Open
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
8408326
feat(oc2): OC2 0.0.1 - Agent Coordination Layer Planning
Feb 12, 2026
302cfdd
feat(continuity): Nova continuity infrastructure for Aurion
Feb 12, 2026
f229a73
feat: Replace stubbed databases with bleeding edge DragonflyDB implem…
Feb 12, 2026
973985b
feat: Add Nova wake-up on gateway startup
Feb 12, 2026
646647b
docs: add Nova continuity PRD/SPEC and execution proposal
Feb 13, 2026
3293f75
feat: Add OC2 RustyClaw bridge and session memory storage
Feb 14, 2026
eb60a05
skills: add atlassian-ops skill for jira/confluence execution hygiene
Feb 19, 2026
0db0b43
docs: add initial OC2 team logical aspects and 3-domain mapping
Feb 19, 2026
365c285
skills: add agent-online skill for profile/auth/gateway bring-up work…
Feb 19, 2026
46c0585
oc2: add team-comms hub, role check-in workflow, and 30-min summary p…
Feb 19, 2026
0a213b1
oc2: add checkin status + enhancement intake and expand agent-online …
Feb 19, 2026
e87c787
oc2: add AI-speed enhancement proposals (Chronos, Vertex, Echo, Aurio…
Feb 20, 2026
34236c0
oc2: complete Aurion check-in and add AI-speed jam status update
Feb 20, 2026
205829b
oc2: add Jira sprint update with 4 new enhancement tasks (OC2-15 thro…
Feb 20, 2026
4c7aaf0
oc2: AI-Speed Jam complete - all objectives hit, 4 enhancements (35 s…
Feb 20, 2026
932b466
oc2: publish jira url validation + tagging/creds announcement
Feb 20, 2026
a2581f4
oc2: correct Jira board URL and provide credentials/skills reference …
Feb 20, 2026
08f8ee1
oc2: add Jira issue creation script and 4 enhancement issues ready fo…
Feb 20, 2026
332171e
oc2: project management status - 4 issues ready for manual Jira creat…
Feb 20, 2026
f35f0a2
oc2: fix jira auth flow for issue automation (basic auth + api v3)
Feb 20, 2026
3a26910
oc2: diagnose Jira API auth error - Connect Session Token incompatibl…
Feb 20, 2026
ccef6e3
oc2: Jira auth fix complete - root cause identified (Connect Session …
Feb 20, 2026
1d14b44
oc2: Vertex Jira execution success - 11 issues updated (OC2-4 through…
Feb 20, 2026
bbcd846
oc2: enable Dragonfly team comms - taking charge, publishing to strea…
Feb 20, 2026
537d531
oc2: team message - Jira token status update (using existing m2.env t…
Feb 20, 2026
0f41454
fix: Update qs override to 6.14.2 to fix DoS vulnerability
Feb 14, 2026
93497c7
fix: Override deprecated request with @cypress/request
Feb 14, 2026
41d79be
fix: Update golang.org/x/net to v0.50.0
Feb 14, 2026
13b35c7
chore: Update pnpm-lock.yaml for dependency overrides
Feb 14, 2026
3b11bb6
feat: Add excludeProviders option to filter model catalog
Feb 14, 2026
c6914a1
feat: Add comprehensive code understanding module
Feb 14, 2026
6c6479a
Merge remote-tracking branch 'upstream/main' into oc2
claude Feb 20, 2026
c5b9b96
chore: revert workflow file change to avoid push permission issue
claude Feb 20, 2026
ab0f7a2
chore: revert all workflow file changes to avoid push permission issue
claude Feb 20, 2026
1d7034e
chore: remove new workflow file to avoid push permission issue
claude Feb 20, 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
24 changes: 3 additions & 21 deletions .github/workflows/auto-response.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ jobs:
permissions:
issues: write
pull-requests: write
runs-on: blacksmith-16vcpu-ubuntu-2404
runs-on: ubuntu-latest
steps:
- uses: actions/create-github-app-token@d72941d797fd3113feb6b93fd0dec494b13a2547 # v1
id: app-token
Expand Down Expand Up @@ -48,7 +48,7 @@ jobs:
label: "r: third-party-extension",
close: true,
message:
"Please make this as a third-party plugin that you maintain yourself in your own repo. Docs: https://docs.openclaw.ai/plugin. Feel free to open a PR after to add it to our community plugins page: https://docs.openclaw.ai/plugins/community",
"This would be better made as a third-party extension with our SDK that you maintain yourself. Docs: https://docs.openclaw.ai/plugin.",
},
{
label: "r: moltbook",
Expand Down Expand Up @@ -132,34 +132,16 @@ jobs:
}

const invalidLabel = "invalid";
const dirtyLabel = "dirty";
const noisyPrMessage =
"Closing this PR because it looks dirty (too many unrelated commits). Please recreate the PR from a clean branch.";

const pullRequest = context.payload.pull_request;
if (pullRequest) {
if (labelSet.has(dirtyLabel)) {
await github.rest.issues.createComment({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: pullRequest.number,
body: noisyPrMessage,
});
await github.rest.issues.update({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: pullRequest.number,
state: "closed",
});
return;
}
const labelCount = labelSet.size;
if (labelCount > 20) {
await github.rest.issues.createComment({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: pullRequest.number,
body: noisyPrMessage,
body: "Closing this PR because it has more than 20 labels, which usually means the branch is too noisy. Please recreate the PR from a clean branch.",
});
await github.rest.issues.update({
owner: context.repo.owner,
Expand Down
64 changes: 24 additions & 40 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,14 @@ on:
pull_request:

concurrency:
group: ci-${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
group: ci-${{ github.event.pull_request.number || github.sha }}
cancel-in-progress: true

jobs:
# Detect docs-only changes to skip heavy jobs (test, build, Windows, macOS, Android).
# Lint and format always run. Fail-safe: if detection fails, run everything.
docs-scope:
runs-on: blacksmith-16vcpu-ubuntu-2404
runs-on: ubuntu-latest
outputs:
docs_only: ${{ steps.check.outputs.docs_only }}
docs_changed: ${{ steps.check.outputs.docs_changed }}
Expand All @@ -33,7 +33,7 @@ jobs:
changed-scope:
needs: [docs-scope]
if: needs.docs-scope.outputs.docs_only != 'true'
runs-on: blacksmith-16vcpu-ubuntu-2404
runs-on: ubuntu-latest
outputs:
run_node: ${{ steps.scope.outputs.run_node }}
run_macos: ${{ steps.scope.outputs.run_macos }}
Expand Down Expand Up @@ -127,7 +127,7 @@ jobs:
build-artifacts:
needs: [docs-scope, changed-scope, check]
if: needs.docs-scope.outputs.docs_only != 'true' && (github.event_name == 'push' || needs.changed-scope.outputs.run_node == 'true')
runs-on: blacksmith-16vcpu-ubuntu-2404
runs-on: blacksmith-4vcpu-ubuntu-2404
steps:
- name: Checkout
uses: actions/checkout@v4
Expand All @@ -153,7 +153,7 @@ jobs:
release-check:
needs: [docs-scope, build-artifacts]
if: github.event_name == 'push' && needs.docs-scope.outputs.docs_only != 'true'
runs-on: blacksmith-16vcpu-ubuntu-2404
runs-on: blacksmith-4vcpu-ubuntu-2404
steps:
- name: Checkout
uses: actions/checkout@v4
Expand All @@ -177,7 +177,7 @@ jobs:
checks:
needs: [docs-scope, changed-scope, check]
if: needs.docs-scope.outputs.docs_only != 'true' && (github.event_name == 'push' || needs.changed-scope.outputs.run_node == 'true')
runs-on: blacksmith-16vcpu-ubuntu-2404
runs-on: blacksmith-4vcpu-ubuntu-2404
strategy:
fail-fast: false
matrix:
Expand All @@ -192,46 +192,29 @@ jobs:
task: test
command: pnpm canvas:a2ui:bundle && bunx vitest run --config vitest.unit.config.ts
steps:
- name: Skip bun lane on push
if: github.event_name == 'push' && matrix.runtime == 'bun'
run: echo "Skipping bun test lane on push events."

- name: Checkout
if: github.event_name != 'push' || matrix.runtime != 'bun'
uses: actions/checkout@v4
with:
submodules: false

- name: Setup Node environment
if: matrix.runtime != 'bun' || github.event_name != 'push'
uses: ./.github/actions/setup-node-env
with:
install-bun: "${{ matrix.runtime == 'bun' }}"

- name: Configure vitest JSON reports
if: (github.event_name != 'push' || matrix.runtime != 'bun') && matrix.task == 'test' && matrix.runtime == 'node'
if: matrix.task == 'test' && matrix.runtime == 'node'
run: echo "OPENCLAW_VITEST_REPORT_DIR=$RUNNER_TEMP/vitest-reports" >> "$GITHUB_ENV"

- name: Configure Node test resources
if: (github.event_name != 'push' || matrix.runtime != 'bun') && matrix.task == 'test' && matrix.runtime == 'node'
run: |
# `pnpm test` runs `scripts/test-parallel.mjs`, which spawns multiple Node processes.
# Default heap limits have been too low on Linux CI (V8 OOM near 4GB).
echo "OPENCLAW_TEST_WORKERS=2" >> "$GITHUB_ENV"
echo "OPENCLAW_TEST_MAX_OLD_SPACE_SIZE_MB=6144" >> "$GITHUB_ENV"

- name: Run ${{ matrix.task }} (${{ matrix.runtime }})
if: matrix.runtime != 'bun' || github.event_name != 'push'
run: ${{ matrix.command }}

- name: Summarize slowest tests
if: (github.event_name != 'push' || matrix.runtime != 'bun') && matrix.task == 'test' && matrix.runtime == 'node'
if: matrix.task == 'test' && matrix.runtime == 'node'
run: |
node scripts/vitest-slowest.mjs --dir "$OPENCLAW_VITEST_REPORT_DIR" --top 50 --out "$RUNNER_TEMP/vitest-slowest.md" > /dev/null
echo "Slowest test summary written to $RUNNER_TEMP/vitest-slowest.md"

- name: Upload vitest reports
if: (github.event_name != 'push' || matrix.runtime != 'bun') && matrix.task == 'test' && matrix.runtime == 'node'
if: matrix.task == 'test' && matrix.runtime == 'node'
uses: actions/upload-artifact@v4
with:
name: vitest-reports-${{ runner.os }}-${{ matrix.runtime }}
Expand All @@ -244,7 +227,7 @@ jobs:
name: "check"
needs: [docs-scope]
if: needs.docs-scope.outputs.docs_only != 'true'
runs-on: blacksmith-16vcpu-ubuntu-2404
runs-on: blacksmith-4vcpu-ubuntu-2404
steps:
- name: Checkout
uses: actions/checkout@v4
Expand All @@ -253,8 +236,6 @@ jobs:

- name: Setup Node environment
uses: ./.github/actions/setup-node-env
with:
install-bun: "false"

- name: Check types and lint and oxfmt
run: pnpm check
Expand All @@ -263,7 +244,7 @@ jobs:
check-docs:
needs: [docs-scope]
if: needs.docs-scope.outputs.docs_changed == 'true'
runs-on: blacksmith-16vcpu-ubuntu-2404
runs-on: blacksmith-4vcpu-ubuntu-2404
steps:
- name: Checkout
uses: actions/checkout@v4
Expand All @@ -272,14 +253,12 @@ jobs:

- name: Setup Node environment
uses: ./.github/actions/setup-node-env
with:
install-bun: "false"

- name: Check docs
run: pnpm check:docs

secrets:
runs-on: blacksmith-16vcpu-ubuntu-2404
runs-on: blacksmith-4vcpu-ubuntu-2404
steps:
- name: Checkout
uses: actions/checkout@v4
Expand All @@ -306,10 +285,10 @@ jobs:
checks-windows:
needs: [docs-scope, changed-scope, build-artifacts, check]
if: needs.docs-scope.outputs.docs_only != 'true' && (github.event_name == 'push' || needs.changed-scope.outputs.run_node == 'true')
runs-on: blacksmith-16vcpu-windows-2025
runs-on: blacksmith-4vcpu-windows-2025
env:
NODE_OPTIONS: --max-old-space-size=4096
# Keep total concurrency predictable on the 16 vCPU runner:
# Keep total concurrency predictable on the 4 vCPU runner:
# `scripts/test-parallel.mjs` runs some vitest suites in parallel processes.
OPENCLAW_TEST_WORKERS: 2
defaults:
Expand Down Expand Up @@ -368,7 +347,7 @@ jobs:
test -s dist/plugin-sdk/index.js

- name: Setup Node.js
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
uses: actions/setup-node@v4
with:
node-version: 22.x
check-latest: true
Expand All @@ -379,10 +358,16 @@ jobs:
pnpm-version: "10.23.0"
cache-key-suffix: "node22"

- name: Setup Bun
uses: oven-sh/setup-bun@v2
with:
bun-version: latest

- name: Runtime versions
run: |
node -v
npm -v
bun -v
pnpm -v

- name: Capture node path
Expand Down Expand Up @@ -660,7 +645,7 @@ jobs:
android:
needs: [docs-scope, changed-scope, check]
if: needs.docs-scope.outputs.docs_only != 'true' && (github.event_name == 'push' || needs.changed-scope.outputs.run_android == 'true')
runs-on: blacksmith-16vcpu-ubuntu-2404
runs-on: blacksmith-4vcpu-ubuntu-2404
strategy:
fail-fast: false
matrix:
Expand All @@ -679,8 +664,7 @@ jobs:
uses: actions/setup-java@v4
with:
distribution: temurin
# setup-android's sdkmanager currently crashes on JDK 21 in CI.
java-version: 17
java-version: 21

- name: Setup Android SDK
uses: android-actions/setup-android@v3
Expand Down
Loading
Loading