Commit Graph

1650 Commits

Author SHA1 Message Date
Peter Steinberger
7d7b610a24 fix: handle bin-only runtime deps 2026-05-01 09:07:32 +01:00
Peter Steinberger
250376f885 fix: simplify bundled runtime dependency repair (#75183)
Summary:
- Merged fix: simplify bundled runtime dependency repair after ClawSweeper review.

ClawSweeper fixups:
- Included follow-up commit: fix: verify cached bundled runtime roots
- Included follow-up commit: refactor: simplify plugin runtime startup paths
- Included follow-up commit: refactor: trim plugin startup policy helpers
- Included follow-up commit: refactor: trust package manager runtime deps materialization
- Included follow-up commit: fix: narrow channel runtime deps skip policy
- Included follow-up commit: refactor: defer startup plugin runtime deps
- Ran the ClawSweeper repair loop before final review.

Validation:
- ClawSweeper review passed for head 04dc566534.
- Required merge gates passed before the squash merge.

Prepared head SHA: 04dc566534
Review: https://github.com/openclaw/openclaw/pull/75183#issuecomment-4358383786

Co-authored-by: Peter Steinberger <steipete@gmail.com>
Co-authored-by: Shakker <shakkerdroid@gmail.com>
Co-authored-by: clawsweeper-repair <clawsweeper-repair@users.noreply.github.com>
2026-05-01 07:49:02 +00:00
Peter Steinberger
d0dac324c6 test: align lint suppression inventory 2026-05-01 08:23:26 +01:00
Ayaan Zaidi
e8810c04a4 feat(rtt): add published package measurement harness 2026-05-01 11:20:11 +05:30
joshavant
8093ae6029 test: validate published upgrade survivor baseline 2026-04-30 22:17:33 -05:00
Josh Avant
ce833acbdb test: strengthen published upgrade survivor lane (#75361)
* test: integrate upgrade survivor baseline controls

* test: gate published upgrade survivor path

* test: preserve upgrade survivor fixture contract

* test: keep upgrade survivor temp state off overlay
2026-04-30 21:50:36 -05:00
Peter Steinberger
6cc7432cd1 perf(test): split gateway server control-plane shard 2026-05-01 03:37:25 +01:00
Peter Steinberger
206b5f78a2 ci: tighten full release validation 2026-05-01 03:19:49 +01:00
Peter Steinberger
6bc3458222 perf(test): keep commitment runtime tests focused 2026-05-01 03:12:55 +01:00
Chunyue Wang
4b98f09529 fix(plugins): canonicalize packageRoot before hashing runtime-deps stage key (#75048)
Merged via squash.

Prepared head SHA: 324859fc69
Co-authored-by: openperf <80630709+openperf@users.noreply.github.com>
Co-authored-by: openperf <80630709+openperf@users.noreply.github.com>
Reviewed-by: @openperf
2026-05-01 09:56:13 +08:00
Vignesh
b277ae3f4c [codex] Fix commitments safety and coverage (#75302)
* fix commitments safety and coverage

* Repair commitments safety PR review blockers

* fix(clawsweeper): address review for automerge-openclaw-openclaw-75302 (1)

* Repair commitments safety PR review blocker

---------

Co-authored-by: clawsweeper-repair <clawsweeper-repair@users.noreply.github.com>
2026-05-01 01:14:07 +00:00
clawsweeper[bot]
e47a7448e9 fix(ci): GitHub App active-PR-limit exemption regression (#75311)
Co-authored-by: openclaw-clawsweeper[bot] <280122609+openclaw-clawsweeper[bot]@users.noreply.github.com>
2026-04-30 17:10:20 -07:00
Peter Steinberger
1ad50a36ac chore(release): forward-port 2026.4.29 fixes and bump 2026.4.30 2026-05-01 01:06:13 +01:00
Peter Steinberger
c0058fda2f test: add published upgrade survivor lane (#75221)
* test: add published upgrade survivor lane

* test: keep published upgrade exit chunk
2026-04-30 23:39:50 +00:00
Shadow
ef799fd57a ci: exclude app PRs from active limit 2026-04-30 18:34:41 -05:00
Peter Steinberger
7beebc9afc test: add upgrade survivor package lane 2026-04-30 19:06:33 +01:00
Vincent Koc
9cb71f7672 chore(barnacle): add false positive close label (#75014) 2026-04-30 02:55:45 -07:00
clawsweeper[bot]
099037cca6 fix(channels): align Yuanbao catalog id
Co-authored-by: openclaw-clawsweeper[bot] <280122609+openclaw-clawsweeper[bot]@users.noreply.github.com>
2026-04-30 02:50:35 -07:00
Vincent Koc
092321dc9e fix(github): skip maintainer-owned Barnacle targets 2026-04-30 01:10:52 -07:00
clawsweeper[bot]
d55fafd130 fix(ci): disable install smoke Docker build cache
Co-authored-by: openclaw-clawsweeper[bot] <280122609+openclaw-clawsweeper[bot]@users.noreply.github.com>
2026-04-29 23:16:10 -07:00
clawsweeper[bot]
9177fab07b fix: environment edge case launcher regression (#74696)
Co-authored-by: openclaw-clawsweeper[bot] <280122609+openclaw-clawsweeper[bot]@users.noreply.github.com>
2026-04-29 22:39:12 -07:00
clawsweeper[bot]
fa1b8a25b8 test(ci): guard install smoke docker cache removal
Co-authored-by: openclaw-clawsweeper[bot] <280122609+openclaw-clawsweeper[bot]@users.noreply.github.com>
2026-04-29 22:06:02 -07:00
clawsweeper[bot]
a6af23a1de fix(test): keep kitchen-sink conformance diagnostics clean
* fix: test-harness regression risk

* fix: keep kitchen-sink conformance diagnostics clean

---------

Co-authored-by: openclaw-clawsweeper[bot] <280122609+openclaw-clawsweeper[bot]@users.noreply.github.com>
Co-authored-by: clawsweeper-repair <clawsweeper-repair@users.noreply.github.com>
2026-04-29 21:53:15 -07:00
Peter Steinberger
d363565375 fix: harden Windows Parallels update smoke 2026-04-30 05:22:04 +01:00
Peter Steinberger
5f13af6b68 fix: warn before npm prefix redirection (#73890) (thanks @Sayeem3051) 2026-04-30 04:49:03 +01:00
Peter Steinberger
6331fec05e test(scripts): align changed sdk routing expectation 2026-04-30 02:06:47 +01:00
Fred blum
9b1bde2561 fix(voice-call): close webhook in-flight limiter fail-open on empty remote address (#74453)
* fix(voice-call): close in-flight limiter fail-open on empty remote address

The webhook in-flight limiter (createWebhookInFlightLimiter in
src/plugin-sdk/webhook-request-guards.ts) returns true unconditionally
when tryAcquire is called with an empty key — that is its by-contract
fail-open path used to mean 'caller is opting out of the limiter'.

The voice-call webhook handler reached that path silently: it computed
'req.socket.remoteAddress ?? ""' and passed the empty string straight
into tryAcquire. Whenever req.socket.remoteAddress was absent (closed
socket, edge proxy quirk), the limiter became a no-op and the request
proceeded directly to readBody without any concurrency cap.

Fix: when remoteAddress is missing, log a warning and fall back to a
constant non-empty key ('__voice_call_no_remote__') so all such
requests share one in-flight bucket instead of bypassing the limiter
entirely. The bucket size stays maxInFlightPerKey (default 8), which
is the right defense-in-depth posture against slow-body attacks
arriving with stripped IP info.

Scoped to voice-call only. Other consumers of the SDK helper
(bluebubbles via openclaw/plugin-sdk/webhook-ingress) are not changed
to avoid drive-by edits to plugins this PR does not own. The shared
SDK contract (empty key = bypass) is left as-is and documented
implicitly by the fix's comment block.

The existing 8-concurrent test in webhook.test.ts continues to assert
the limiter engages on the happy path; no new test added since the
private handleRequest path is not unit-test exposed and the change is
two-line auditable from the diff alone.

* test(voice-call): cover missing webhook remote address limiter

* test: align changed package sdk routing

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-04-30 01:02:14 +00:00
Peter Steinberger
c397486648 fix(test): configure kitchen sink before enable 2026-04-30 01:35:13 +01:00
Peter Steinberger
52b57d0953 fix(cli): scope packaged compile cache 2026-04-30 01:16:38 +01:00
Peter Steinberger
172bc9d043 fix(plugin-sdk): keep test contracts publishable 2026-04-30 01:00:15 +01:00
Peter Steinberger
43f6c8b01a feat: add OpenClaw SDK package 2026-04-30 00:51:24 +01:00
Peter Steinberger
6acd588bdd test(ci): update changed gate expectations 2026-04-29 23:49:48 +01:00
Peter Steinberger
b552e31563 test: update install smoke workflow contract 2026-04-29 22:31:17 +01:00
Vincent Koc
bdbce3b1c2 fix(ci): align postpublish mirror fixtures 2026-04-29 14:25:26 -07:00
clawsweeper[bot]
cdb424a642 fix: Found one regression in the runtime dependency staging cache. The (#74517)
Co-authored-by: openclaw-clawsweeper[bot] <280122609+openclaw-clawsweeper[bot]@users.noreply.github.com>
2026-04-29 14:09:31 -07:00
clawsweeper[bot]
0b48a69ff2 fix: Found two actionable issues in the bundled runtime-deps staging c (#74526)
Co-authored-by: openclaw-clawsweeper[bot] <280122609+openclaw-clawsweeper[bot]@users.noreply.github.com>
2026-04-29 14:08:57 -07:00
clawsweeper[bot]
27fafa4754 fix: Found two release-validation regressions in the new focused live- (#74562)
Co-authored-by: openclaw-clawsweeper[bot] <280122609+openclaw-clawsweeper[bot]@users.noreply.github.com>
2026-04-29 14:08:45 -07:00
clawsweeper[bot]
fbe41fbdfc fix(ci): Found one low-severity diagnostic bug in the new Full Release Val (#74513)
Co-authored-by: openclaw-clawsweeper[bot] <280122609+openclaw-clawsweeper[bot]@users.noreply.github.com>
2026-04-29 14:08:07 -07:00
Vincent Koc
fdf8ffaf3c fix(ci): exempt automation PRs from Barnacle PR limit
Treat ClawSweeper and Clownfish head refs as automation PRs for Barnacle's active-PR-limit close path, and cover the behavior with a regression test.
2026-04-29 13:58:06 -07:00
Peter Steinberger
9ccd015898 ci: bound install smoke docker builds 2026-04-29 21:56:54 +01:00
Vincent Koc
1a4d55de43 test(plugins): split kitchen sink qa personalities (#74612) 2026-04-29 13:56:49 -07:00
Shakker
9c19335276 fix: package bundled runtime deps helper 2026-04-29 21:11:59 +01:00
Peter Steinberger
dac7237494 ci: shard release validation hotspots 2026-04-29 20:40:42 +01:00
Vincent Koc
3abc90aac5 test(scripts): remove managed child race 2026-04-29 12:34:41 -07:00
Vincent Koc
26c03c761f test(ci): align CI guard expectations 2026-04-29 12:09:09 -07:00
Peter Steinberger
57e4994caf ci: speed up release validation 2026-04-29 19:55:37 +01:00
Peter Steinberger
c728d604b2 fix: harden parallels smoke harness 2026-04-29 19:44:50 +01:00
Peter Steinberger
9f21335462 ci: reduce release runner queue pressure 2026-04-29 17:45:53 +01:00
Jesse Merhi
6de9d71bfb feat(security): add GHSA detector-review pipeline and OpenGrep CI workflows (#69483)
* feat(security): add GHSA detector-review pipeline and OpenGrep CI workflows [AI-assisted]

Stand up an end-to-end pipeline that turns every published openclaw GitHub
Security Advisory into a reusable OpenGrep rule, and wire the compiled rules
into manual-dispatch GitHub Actions workflows that publish SARIF to GitHub
Code Scanning.

The pipeline is harness-agnostic: any coding-agent CLI (Rovo Dev, Claude
Code, Codex, OpenCode, or anything you can shell out to) can drive it via
the runner script's --harness flag. Built-in adapters cover the four common
harnesses; --harness-cmd '<template>' supports anything else with shell-style
{prompt}/{model}/{output_file} substitution.

Pipeline pieces:

- scripts/run-ghsa-detector-review-batch.mjs runs your chosen coding harness
  in parallel against every advisory using the agent-agnostic detector-review
  spec at security/detector-review/detector-review-spec.md. Each case
  produces an opengrep general-rule.yml (precise) and broad-rule.yml
  (review-aid), plus a coverage-validated report against the vulnerable
  commit's changed files.
- scripts/compile-opengrep-rules.mjs walks a run directory, rewrites each
  rule's id to ghsa-detector.<ghsa>.<orig-id>, injects ghsa/advisory-url/
  detector-bucket/source-rule-id metadata, and uses opengrep itself to drop
  rules with InvalidRuleSchemaError so the published super-configs load
  cleanly.

Compiled outputs:

- security/opengrep/precise.yml     (336 rules)
- security/opengrep/broad.yml       (459 rules)
- security/opengrep/compile-manifest.json    (per-rule provenance map)

CI workflows (manual workflow_dispatch only):

- .github/workflows/opengrep-precise.yml
- .github/workflows/opengrep-broad.yml

Both install a pinned opengrep, run opengrep scan against src/, upload SARIF
to Code Scanning under categories opengrep-precise / opengrep-broad, and use
continue-on-error: true so findings never block the workflow.

Detector-review spec and assets:

- security/detector-review/detector-review-spec.md   the agent-agnostic spec
  the runner injects into each per-case prompt
- security/detector-review/references/{detector-rubric,report-template}.md
- security/detector-review/scripts/init_case.py
- security/prompt-suffix-coverage-first.md   mandatory prompt addendum that
  enforces coverage-first validation (rule must catch the OG vuln, not just
  pass synthetic fixtures)

Docs:

- security/README.md          end-to-end flow, supported harnesses, regen recipe
- security/opengrep/README.md compiled-config details + recompile recipe

* security: tighten GHSA OpenGrep detector workflow

* chore: refine precise opengrep workflow

* chore: remove stale opengrep metadata

* fix: harden GHSA OpenGrep workflow

* ci: split OpenGrep diff and full scans

* chore: remove performance-only opengrep rule

* ci: use OpenGrep installer path

* chore: enforce opengrep rule metadata provenance

* chore: generalize opengrep rule compilation

* docs: align opengrep rulepack guidance

* chore: support generic opengrep rule sources

* fix: validate opengrep rulepack-only changes

---------

Co-authored-by: Jesse Merhi <security-engineering@atlassian.com>
2026-04-30 02:42:20 +10:00
Peter Steinberger
7471c2116f ci: use smaller runners for native live shards 2026-04-29 17:16:26 +01:00