From 847d8fa0e1269b0fd93e2363084a759c861bfd5b Mon Sep 17 00:00:00 2001 From: Vincent Koc Date: Wed, 29 Apr 2026 15:56:41 -0700 Subject: [PATCH] chore(ci): add Plugin SDK reply CodeQL quality shard Adds a focused non-security CodeQL quality shard for Plugin SDK reply/session delivery runtime contracts. --- ...gin-sdk-reply-runtime-critical-quality.yml | 44 +++++++++++++++++++ .github/workflows/codeql-critical-quality.yml | 23 ++++++++++ docs/ci.md | 10 +++-- 3 files changed, 74 insertions(+), 3 deletions(-) create mode 100644 .github/codeql/codeql-plugin-sdk-reply-runtime-critical-quality.yml diff --git a/.github/codeql/codeql-plugin-sdk-reply-runtime-critical-quality.yml b/.github/codeql/codeql-plugin-sdk-reply-runtime-critical-quality.yml new file mode 100644 index 00000000000..6fc9631421d --- /dev/null +++ b/.github/codeql/codeql-plugin-sdk-reply-runtime-critical-quality.yml @@ -0,0 +1,44 @@ +name: openclaw-codeql-plugin-sdk-reply-runtime-critical-quality + +disable-default-queries: true + +queries: + - uses: security-and-quality + +query-filters: + - include: + problem.severity: + - error + - exclude: + tags: + - security + +paths: + - src/plugin-sdk/inbound-envelope.ts + - src/plugin-sdk/inbound-reply-dispatch.ts + - src/plugin-sdk/reply-*.ts + - src/plugin-sdk/channel-reply-*.ts + - src/plugin-sdk/delivery-queue-runtime.ts + - src/plugin-sdk/outbound-runtime.ts + - src/plugin-sdk/outbound-send-deps.ts + - src/plugin-sdk/model-session-runtime.ts + - src/plugin-sdk/session-*.ts + - src/plugin-sdk/thread-bindings-runtime.ts + - src/plugin-sdk/thread-bindings-session-runtime.ts + - src/plugin-sdk/conversation-binding-runtime.ts + +paths-ignore: + - "**/node_modules" + - "**/coverage" + - "**/*.generated.ts" + - "**/*.bundle.js" + - "**/*-runtime.js" + - "**/*.test.ts" + - "**/*.test.tsx" + - "**/*.e2e.test.ts" + - "**/*.e2e.test.tsx" + - "**/*test-support*" + - "**/*test-helper*" + - "**/*mock*" + - "**/*fixture*" + - "**/*bench*" diff --git a/.github/workflows/codeql-critical-quality.yml b/.github/workflows/codeql-critical-quality.yml index d15e14ed331..79b8712d6e6 100644 --- a/.github/workflows/codeql-critical-quality.yml +++ b/.github/workflows/codeql-critical-quality.yml @@ -11,6 +11,7 @@ on: options: - all - plugin-sdk-package-contract + - plugin-sdk-reply-runtime - session-diagnostics-boundary schedule: - cron: "30 6 * * *" @@ -204,6 +205,28 @@ jobs: with: category: "/codeql-critical-quality/session-diagnostics-boundary" + plugin-sdk-reply-runtime: + name: Critical Quality (plugin-sdk-reply-runtime) + if: ${{ github.event_name != 'workflow_dispatch' || inputs.profile == 'all' || inputs.profile == 'plugin-sdk-reply-runtime' }} + runs-on: blacksmith-4vcpu-ubuntu-2404 + timeout-minutes: 25 + steps: + - name: Checkout + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 + with: + submodules: false + + - name: Initialize CodeQL + uses: github/codeql-action/init@95e58e9a2cdfd71adc6e0353d5c52f41a045d225 # v4 + with: + languages: javascript-typescript + config-file: ./.github/codeql/codeql-plugin-sdk-reply-runtime-critical-quality.yml + + - name: Analyze + uses: github/codeql-action/analyze@95e58e9a2cdfd71adc6e0353d5c52f41a045d225 # v4 + with: + category: "/codeql-critical-quality/plugin-sdk-reply-runtime" + ui-control-plane: name: Critical Quality (ui-control-plane) if: ${{ github.event_name != 'workflow_dispatch' || inputs.profile == 'all' }} diff --git a/docs/ci.md b/docs/ci.md index b179be93da5..ccd38d746bb 100644 --- a/docs/ci.md +++ b/docs/ci.md @@ -294,9 +294,9 @@ The `CodeQL Critical Quality` workflow is the matching non-security shard. It runs only error-severity, non-security JavaScript/TypeScript quality queries over narrow high-value surfaces on the smaller Blacksmith Linux runner. Its manual dispatch accepts -`profile=all|plugin-sdk-package-contract|session-diagnostics-boundary`; the -narrow profiles are teaching/iteration hooks for running one quality shard in -isolation without dispatching the rest of the workflow. +`profile=all|plugin-sdk-package-contract|plugin-sdk-reply-runtime|session-diagnostics-boundary`; +the narrow profiles are teaching/iteration hooks for running one quality shard +in isolation without dispatching the rest of the workflow. Its core-auth-secrets job scans auth, secrets, sandbox, cron, and gateway security boundary code under the separate `/codeql-critical-quality/core-auth-secrets` @@ -321,6 +321,10 @@ category. The session-diagnostics-boundary job scans reply queue internals, session delivery queues, outbound session binding/delivery helpers, diagnostic event/log bundle surfaces, and session doctor CLI contracts under the separate `/codeql-critical-quality/session-diagnostics-boundary` category. The +plugin-sdk-reply-runtime job scans Plugin SDK inbound reply dispatch, reply +payload/chunking/runtime helpers, channel reply options, delivery queues, and +session/thread binding helpers under the separate +`/codeql-critical-quality/plugin-sdk-reply-runtime` category. The ui-control-plane job scans Control UI bootstrap, local persistence, gateway control flows, and task control-plane runtime contracts under the separate `/codeql-critical-quality/ui-control-plane` category. The