Commit Graph

19453 Commits

Author SHA1 Message Date
Vincent Koc 20bfa3cce3 perf(test): reuse control-ui device identities 2026-04-14 16:32:14 +01:00
Vincent Koc 9c42e6424d fix(plugins): share tool-stream defaults and align xai sdk imports 2026-04-14 16:23:40 +01:00
Vincent Koc 50e5f95cc6 perf(test): bypass fs in doctor config flow tests 2026-04-14 16:18:48 +01:00
Vincent Koc 3487e7f8e2 fix(plugin-sdk): route shared stream helpers through one barrel 2026-04-14 16:12:59 +01:00
Vincent Koc e121889a9f fix(plugins): share native anthropic replay hooks 2026-04-14 16:07:16 +01:00
Vincent Koc 135c3848b9 fix(plugin-sdk): share provider stream wrapper composer 2026-04-14 16:05:58 +01:00
Mason Huang 1558a352f8 fix(plugins): support bundled setup-entry contract in loader (#66261)
Merged via squash.

Prepared head SHA: 0a4201115c9a13767e8f7d1f7b3ff00743646463
Co-authored-by: hxy91819 <8814856+hxy91819@users.noreply.github.com>
Co-authored-by: hxy91819 <8814856+hxy91819@users.noreply.github.com>
Reviewed-by: @hxy91819
2026-04-14 22:51:22 +08:00
Peter Steinberger f08b1cd972 build: refresh a2ui bundle hash 2026-04-14 15:19:36 +01:00
Peter Steinberger a88c6f0fe7 fix: bound live video generation smoke 2026-04-14 14:59:01 +01:00
Luke 4015138df9 Agents: add lean local model mode (#66495)
Merged via squash.

Prepared head SHA: d88da6082c1ce2a9b497e19075540c384d7bf1e3
Co-authored-by: ImLukeF <92253590+ImLukeF@users.noreply.github.com>
Co-authored-by: ImLukeF <92253590+ImLukeF@users.noreply.github.com>
Reviewed-by: @ImLukeF
2026-04-14 23:45:49 +10:00
Frank Yang d86527d8c6 fix(whatsapp): harden Baileys media upload hotfix (#65966)
Merged via squash.

Prepared head SHA: b5db59b8feac73eda70f98c360725030c124cba8
Co-authored-by: frankekn <4488090+frankekn@users.noreply.github.com>
Co-authored-by: frankekn <4488090+frankekn@users.noreply.github.com>
Reviewed-by: @frankekn
2026-04-14 21:34:23 +08:00
Peter Steinberger 323493fa1b test: refresh release verification baselines
Docker Release / validate_manual_backfill (push) Has been cancelled
Docker Release / approve_manual_backfill (push) Has been cancelled
Docker Release / build-amd64 (push) Has been cancelled
Docker Release / build-arm64 (push) Has been cancelled
Docker Release / create-manifest (push) Has been cancelled
2026-04-14 13:42:03 +01:00
Peter Steinberger 64d237dd02 build: refresh a2ui bundle hash 2026-04-14 13:42:03 +01:00
Vincent Koc 82364e901a test(codex): cover exact gpt-5.4 registry upgrades (#66454) 2026-04-14 11:05:45 +01:00
Vincent Koc 5a5ca6d62c feat(codex): add gpt-5.4-pro forward compat (#66453)
* feat(openai-codex): add gpt-5.4-pro forward-compat #63404

* feat(openai-codex): add gpt-5.4-pro forward-compat #63404

* openai-codex: use patch.cost when forward-compat falls back to normalizeModelCompat

* feat(codex): add gpt-5.4-pro forward compat

* fix(codex): reuse gpt-5.4 fallback for gpt-5.4-pro

---------

Co-authored-by: jepson-liu <jepsonliu@gmail.com>
2026-04-14 11:05:24 +01:00
Vincent Koc 8820a43818 fix(memory): preserve embedding proxy provider prefixes (#66452)
* fix(memory): preserve embedding proxy provider prefixes

* docs(changelog): fix embeddings entry

* Update CHANGELOG.md
2026-04-14 11:05:07 +01:00
Vincent Koc e9f5619716 fix(onboard): cap compat probe max_tokens (#66450)
* fix(onboard): cap compat probe max_tokens

* docs(changelog): fix onboarding entry

* Update CHANGELOG.md
2026-04-14 11:03:44 +01:00
Vincent Koc f4372613d8 fix(media): remap AAC uploads to M4A (#66446)
* fix(media): remap AAC uploads to M4A

* fix(media): remap AAC uploads to M4A
2026-04-14 11:00:28 +01:00
Vincent Koc e58d50b7a8 fix(telegram): trust explicit proxy DNS for media downloads (#66461) 2026-04-14 10:42:33 +01:00
Vincent Koc 6ee8e194c0 fix(media-understanding): auto-upgrade provider HTTP helper to trusted env proxy mode (#66458)
* fix(media-understanding): auto-upgrade provider HTTP helper to trusted env proxy mode

* Update CHANGELOG.md
2026-04-14 10:29:09 +01:00
Vincent Koc dfed74b254 fix(hooks): honor configured ollama slug timeout (#66455) 2026-04-14 10:28:09 +01:00
Vincent Koc 4f15d77ecc fix(ollama): enable streaming usage for openai-compat (#66439)
* fix(ollama): enable streaming usage for openai-compat

* Update CHANGELOG.md
2026-04-14 09:57:42 +01:00
Vincent Koc b90d4ea3d7 fix(codex): canonicalize the gpt-5.4-codex alias (#66438)
* fix(codex): canonicalize the gpt-5.4-codex alias

* Update CHANGELOG.md
2026-04-14 09:56:58 +01:00
Vincent Koc 381a8e860a fix(discord): return native status replies directly (#66434) 2026-04-14 09:55:02 +01:00
Vincent Koc 56625a189b fix(gateway): scope reset hook assertion 2026-04-14 09:44:53 +01:00
Bikkies fecd4fcc55 fix(agents) context-engine: per-iteration ingest and assemble for compaction (#63555)
Merged via squash.

Prepared head SHA: 0d815fc190f5b2fd976fea3075e64fef043b1e55
Co-authored-by: Bikkies <29473797+Bikkies@users.noreply.github.com>
Co-authored-by: jalehman <550978+jalehman@users.noreply.github.com>
Reviewed-by: @jalehman
2026-04-14 01:42:14 -07:00
Vincent Koc e59f5ecac3 fix(tools): normalize media model lookups (#66422)
* fix(tools): normalize media model lookups

* Update CHANGELOG.md
2026-04-14 09:23:52 +01:00
Ayaan Zaidi aa0dc118f1 fix: preserve subagent registry runtime import path across source and dist (#66420)
* fix(build): correct subagent registry runtime import path

* fix: correct subagent registry runtime import path (#66420)

* fix: preserve subagent registry runtime import path across source and dist (#66420)
2026-04-14 13:52:24 +05:30
Vincent Koc 38de896419 fix(agents): honor embedded ollama timeouts (#66418) 2026-04-14 09:21:22 +01:00
Vincent Koc 900681751d test(qa-lab): seed broken-turn recovery scenarios (#66416) 2026-04-14 09:03:49 +01:00
yongqiang li 6a5ff83b24 fix(build): include subagent-registry.runtime.js in dist output (#66205)
* fix: ensure subagent-registry.runtime.js is included in dist output

* fix(build): ship subagent registry runtime

* Update CHANGELOG.md

---------

Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
2026-04-14 09:00:40 +01:00
Neerav Makwana a743b30b8b fix: honor configured store limits (#66240) (thanks @neeravmakwana)
* fix(media): honor configured store limits

* fix(media): report effective source limits

* refactor(media): distill configured limit wiring

---------

Co-authored-by: Ayaan Zaidi <hi@obviy.us>
2026-04-14 11:53:20 +05:30
Neerav Makwana 0381852c26 fix: harden approvals get timeout handling (#66239) (thanks @neeravmakwana)
* fix(cli): harden approvals get timeout handling

* fix(cli): sanitize approvals timeout notes

* fix(cli): distill approvals timeout note

---------

Co-authored-by: Ayaan Zaidi <hi@obviy.us>
2026-04-14 11:29:59 +05:30
Luke 0abe64a4ff Agents: clarify local model context preflight (#66236)
Merged via squash.

Prepared head SHA: 11bfaf15f62734097f761e0ae4a2f8a219951a08
Co-authored-by: ImLukeF <92253590+ImLukeF@users.noreply.github.com>
Co-authored-by: ImLukeF <92253590+ImLukeF@users.noreply.github.com>
Reviewed-by: @ImLukeF
2026-04-14 15:38:10 +10:00
拐爷&&老拐瘦 852484965f fix: cache external plugin catalog lookups in auto-enable (#66246) (thanks @yfge)
* fix: cache external plugin catalog lookups in auto-enable

Fixes openclaw/openclaw#66159

* test: restore readFileSync spy in plugin auto-enable test

* refactor: distill plugin auto-enable cache path

* fix: cache external plugin catalog lookups in auto-enable (#66246) (thanks @yfge)

---------

Co-authored-by: Ayaan Zaidi <hi@obviy.us>
2026-04-14 09:41:02 +05:30
Peter Steinberger 73d3cf9920 test: bound docker fs bridge probes 2026-04-13 20:49:39 -07:00
Peter Steinberger 296471b692 test: align cron model error expectations 2026-04-13 20:49:39 -07:00
Peter Steinberger 4b127adc9d test: align agent session resolver mocks 2026-04-13 20:49:39 -07:00
Peter Steinberger 0d6643e244 test: align cron runtime seams 2026-04-13 20:49:39 -07:00
Peter Steinberger 311bc842b8 fix: remove agent config lint suppression 2026-04-13 20:49:39 -07:00
Peter Steinberger d4f556a052 fix: align latest main type drift 2026-04-13 20:49:39 -07:00
Peter Steinberger 5b24009271 test: mock model fallback source check 2026-04-13 20:49:39 -07:00
Peter Steinberger cf3d27ab94 test: use cron embedded runtime mock 2026-04-13 20:49:39 -07:00
Peter Steinberger 00415e2010 test: refresh cron and mcp typed fixtures 2026-04-13 20:49:39 -07:00
Peter Steinberger ff8605f3c2 test: update model fallback auth store mock 2026-04-13 20:49:39 -07:00
Peter Steinberger c09031f15a fix: tighten inbound replay typing 2026-04-13 20:49:39 -07:00
Peter Steinberger 63965dc70b test: stabilize gateway wake gating regression 2026-04-13 20:49:39 -07:00
Peter Steinberger ca9f969831 test: cover gateway wake startup gating 2026-04-13 20:49:39 -07:00
tmimmanuel a2ab9e6a8e fix: avoid inline dotenv secrets in systemd unit during service repair (#66249) (thanks @tmimmanuel)
* fix(daemon): avoid inline dotenv secrets in systemd unit during service repair

* fix(daemon): sanitize systemd envfile and dedupe state-dir resolution

* fix(daemon): fail on multiline dotenv values for systemd envfile

* test(daemon): cover systemd envfile staging

* fix: keep systemd envfile overrides intact (#66249) (thanks @tmimmanuel)

---------

Co-authored-by: Ayaan Zaidi <hi@obviy.us>
2026-04-14 09:06:10 +05:30
Agustin Rivera 29f206243b Guard dangerous gateway config mutations (#62006)
* fix(gateway): guard dangerous config alias

* fix(gateway): ignore reordered dangerous flags

* fix(gateway): use id-based mapping identity and honor legacy alias baseline

* fix(gateway): tighten dangerous config matching

* fix(gateway): strip IPv6 brackets in isRemoteGatewayTarget hostname check

* fix(gateway): detect tunneled remote targets

* fix(gateway): match id-less hook mappings by fingerprint, not index

* fix(gateway): detect env-selected remote targets

* fix(gateway): resolve remote-target guard from live config, not captured opts

* fix(gateway): resolve remote-target guard from live config, not captured opts

* fix(gateway): treat loopback OPENCLAW_GATEWAY_URL as local when mode is not remote

* fix(gateway): preserve legacy dangerous hook edits

* fix(gateway): block dangerous plugin reactivation

* fix(gateway): handle dotted plugin IDs in dangerous-flag checks

* fix(gateway): honor plugin policy activation

* fix(gateway): block remote plugin activation changes via allow/deny/enabled

* fix(gateway): broaden loopback url detection

* fix(gateway): resolve plugin IDs by longest-prefix match

* fix(gateway): block remote slot activation

* fix(gateway): preserve legacy mapping identity during id+field transitions

* fix(gateway): block remote load-path and channel activation changes

* test(gateway): fix remote config mock typing

* fix(gateway): guard auto-enabled dangerous plugins

* fix(gateway): address P1 review comments on remote gateway mutation guards

- Treat all OPENCLAW_GATEWAY_URL targets as remote for mutation guards to prevent SSH tunnel bypasses
- Always load config fresh in isRemoteGatewayTargetForAgentTools to detect session changes
- Expand remote activation guard to cover auto-enable paths (auth.profiles, models.providers, agents.defaults, agents.list, tools.web.fetch.provider)
- Respect plugins.deny in manifest-missing fallback to prevent false negatives
- Fix hook mapping identity matching to properly handle id-less mappings by fingerprint
- Update tests to reflect new secure behavior for env-sourced gateway URLs

* fix(gateway): prevent hook mapping swap attacks via fingerprint-only matching

When both current and next tokens have fingerprints, match ONLY by fingerprint.
This prevents replacing one dangerous hook mapping with a different one at the
same array index from being incorrectly treated as 'already present'.

The previous fallback to index-based matching allowed bypasses where an attacker
could swap dangerous mappings at the same index without triggering the guard.

* fix(gateway): honor allowlist in fallback guard

* fix(gateway): treat empty plugin allowlist as unrestricted in manifest-missing fallback

* docs: update USER.md worklog for empty-allowlist fix

* fix(gateway): resolve review comments — type safety, auto-enable resilience, remote hardening edits

* docs: update USER.md worklog for review comment resolution

* fix(gateway): block remaining remote setup auto-enable paths

* fix(gateway): simplify dangerous config mutation guard to set-diff approach

Replace 400+ lines of hook fingerprinting, remote gateway detection,
plugin activation tracking, and auto-enable enumeration with a simple
set-diff against collectEnabledInsecureOrDangerousFlags — the same
enumeration openclaw security audit already uses.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* chore: remove USER.md audit log from PR

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* changelog: note gateway-tool dangerous config mutation guard (#62006)

---------

Co-authored-by: Devin Robison <drobison@nvidia.com>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-13 20:59:39 -06:00