Commit graph

1972 commits

Author SHA1 Message Date
Peter Steinberger
f523bbfcd1
fix: align claude cli permissions with exec policy
Derive Claude CLI bypass mode from OpenClaw exec YOLO policy, preserve raw Claude permission-mode overrides, update docs/changelog, and cover global/per-agent policy behavior.
2026-04-23 23:11:34 +01:00
Vincent Koc
51f9f94cc3
fix(hooks): harden cli transcript loading (#70786) 2026-04-23 14:25:27 -07:00
Peter Steinberger
f6336c5521
fix(openai): retire removed Codex Spark model 2026-04-23 21:16:46 +01:00
Vincent Koc
ea25d7ed5b
fix(qr): replace qrcode-terminal with qrcode-tui
Replace legacy qrcode-terminal usage with shared qrcode-tui media helpers, bound QR PNG rendering options, and raise bundled plugin host floors for the new SDK runtime surface.
2026-04-23 13:06:14 -07:00
Peter Steinberger
058e6f588a
fix(openai): align Codex fallback with GPT-5.5 2026-04-23 21:03:26 +01:00
Peter Steinberger
ff56a9d41b
test(openai): prefer canonical GPT refs 2026-04-23 20:47:39 +01:00
Peter Steinberger
384eb6bc66
feat(openai): use canonical GPT refs for Codex OAuth 2026-04-23 20:47:38 +01:00
Peter Steinberger
e93b3f60fa fix: harden openclaw peer dependency installs (#70462) 2026-04-23 20:28:02 +01:00
Anish Kataria
44820f859e fix(plugin-sdk): scan dependency tree before materialising openclaw symlink
The dependency-tree security scan rejects node_modules symlinks whose
targets resolve outside the install root. Our trusted host-to-plugin
symlink violates that rule by design, so running the scan AFTER
linkOpenClawPeerDependencies would fail every install with
SECURITY_SCAN_FAILED.

Reorder afterInstall so the scan runs first (walking only the plugin's
own staged source, catching any pre-existing malicious openclaw-named
symlink a source might smuggle in), then the trusted link is
materialised on the now-safe tree.

Also use braces on guard clauses in the new unit tests to satisfy the
oxlint no-unreachable-single-statement-if rule.
2026-04-23 20:28:02 +01:00
Anish Kataria
56dd249a07 test(plugin-sdk): add unit tests for linkOpenClawPeerDependencies
Tests three cases via installPluginFromDir:
- symlink created when peerDependencies declares openclaw
- no symlink when peer list is empty
- idempotent re-install replaces existing symlink
- warns and skips when host root cannot be resolved

Also removes the single-element Set in favour of a direct name
comparison (peerName === "openclaw"), and adds Closes #54428 to
address the same root cause in the weixin connector.

Closes #54428
2026-04-23 20:28:02 +01:00
anish k
2e9c1faef6 fix(plugin-sdk): symlink openclaw peerDependencies after plugin install
## Summary

Signed-off-by: anish k <ak8686@princeton.edu>
2026-04-23 20:28:02 +01:00
Peter Steinberger
cd5bc2fc93
test(openai): cover GPT-5.5 defaults 2026-04-23 20:19:15 +01:00
Peter Steinberger
a36903b94c
feat(openai): default to GPT-5.5 2026-04-23 20:19:15 +01:00
Devin Robison
4c09f4a812 test(plugins): place shadow setup-api where the old cwd-fallback would actually resolve it 2026-04-23 20:17:21 +01:00
Devin Robison
993781e6e6 fix(plugins): ignore cwd setup-api fallback 2026-04-23 20:17:21 +01:00
YDYK
61e9e86d69 fix(plugins): use module path for bundled jiti loads 2026-04-23 20:13:13 +01:00
Deepak Jain
a63939d295
fix(logging): tolerate malformed subsystem labels (#70502) (#70535)
* fix(logging): tolerate malformed subsystem labels

Guard console subsystem filtering and probe suppression against malformed subsystem labels, and normalize bad subsystem names to a stable fallback during console emission.

Fixes #70502

* test(plugins): ignore extension test-support helpers in seam guardrail

Exclude extension files named *.test-support.ts from the plugin sdk seam guardrail so test-only helpers do not trip public seam enforcement on unrelated PRs.
2026-04-23 11:51:54 -07:00
Peter Steinberger
3e2bc28e51
fix: forward chat images to acp dispatch 2026-04-23 19:06:19 +01:00
Peter Steinberger
5ebef46183
perf: speed up hot test paths 2026-04-23 18:17:09 +01:00
Peter Steinberger
645294510c
fix: restore bundled plugin SDK alias 2026-04-23 16:10:23 +01:00
Pengfei Ni
be4920f9bc
fix(anthropic-vertex): resolve model discovery and auth for GCP ADC (openclaw#65716)
Verified:
- pnpm test extensions/anthropic-vertex/index.test.ts extensions/anthropic-vertex/region.adc.test.ts src/plugins/manifest-registry.test.ts src/plugins/provider-runtime.synthetic-auth-discovery.test.ts

Co-authored-by: feiskyer <676637+feiskyer@users.noreply.github.com>
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com>
2026-04-23 09:03:16 -05:00
Vincent Koc
ce4bb8f638
fix(onboarding): surface official WeCom channel install 2026-04-23 00:29:34 -07:00
Vincent Koc
2d7a4edba3
test(plugins): pin live provider config guards 2026-04-23 00:00:32 -07:00
Shakker
a92fe5ee40 fix: harden external auth fallback loading 2026-04-23 07:22:24 +01:00
Shakker
d87587b136 fix: align models provider help and auth warnings 2026-04-23 07:22:24 +01:00
Shakker
0e1407362d docs: mark external oauth hook deprecated 2026-04-23 07:22:24 +01:00
Shakker
3ec5558f53 fix: preserve external auth hook compatibility 2026-04-23 07:22:24 +01:00
Shakker
47ae15c059 feat: add external auth provider contracts 2026-04-23 07:22:24 +01:00
Peter Steinberger
a7871d8212 fix(models/auth): sanitize replacement config patches 2026-04-23 07:16:24 +01:00
Neerav Makwana
a849283f80 harden: drop prototype-pollution keys in configPatch merge
Skip `__proto__`, `prototype`, and `constructor` keys while recursively
merging provider-auth `configPatch` payloads. Plugins construct the
patch in-process today, but JSON-parsed sources can preserve these keys
and the assignment `next[key] = value` would otherwise mutate the
merge target's prototype chain.

Made-with: Cursor
2026-04-23 07:16:24 +01:00
Neerav Makwana
14d1c9c4f0 fix(models/auth): merge agents.defaults.models on provider login
`openclaw models auth login` was replacing `agents.defaults.models`
wholesale whenever a provider returned a `configPatch` with that key,
even if the patch only listed the new default model. Re-authenticating
an OAuth provider such as OpenAI Codex wiped aliases and per-model
params for every other provider.

Make replacement opt-in via `ProviderAuthResult.replaceDefaultModels`.
Ordinary logins merge their allowlist patch so unrelated entries
survive; the Anthropic -> Claude CLI migration opts in because it
renames keys the merge path would otherwise keep stale.

Fixes #69414.

Made-with: Cursor
2026-04-23 07:16:24 +01:00
Vincent Koc
912dcfbc2b
test(plugins): guard startup-gated hook wiring 2026-04-22 23:08:08 -07:00
Peter Steinberger
cc343febfb
fix: tolerate runtime deps temp cleanup races 2026-04-23 07:01:27 +01:00
Vincent Koc
f67e48e6a0
feat(onboarding): auto-install missing provider and channel plugins
Squash-merge PR 70012.
2026-04-22 22:05:00 -07:00
Peter Steinberger
e763ea1119
fix(plugins): stop tracking runtime deps manifests 2026-04-23 05:48:49 +01:00
Vincent Koc
d5c0f70e95
refactor(hooks): share live config fallback handling 2026-04-22 21:42:53 -07:00
Peter Steinberger
596b88986d
chore: apply core lint cleanups 2026-04-23 05:30:49 +01:00
Peter Steinberger
4ad8ed2cbe
refactor: type config schemas as typebox-compatible 2026-04-23 05:22:16 +01:00
Peter Steinberger
33aea44fe5
refactor: tighten tool schema types
Some checks are pending
CI / check-lint (push) Blocked by required conditions
CI / check-policy-guards (push) Blocked by required conditions
CI / check-preflight-guards (push) Blocked by required conditions
CI / check-prod-types (push) Blocked by required conditions
CI / check-strict-smoke (push) Blocked by required conditions
CI / check-test-types (push) Blocked by required conditions
CI / check (push) Blocked by required conditions
CI / check-additional-boundaries (push) Blocked by required conditions
CI / check-additional-extension-bundled (push) Blocked by required conditions
CI / check-additional-extension-channels (push) Blocked by required conditions
CI / check-additional-extension-package-boundary (push) Blocked by required conditions
CI / check-additional-runtime-topology-architecture (push) Blocked by required conditions
CI / check-additional (push) Blocked by required conditions
CI / build-smoke (push) Blocked by required conditions
CI / check-docs (push) Blocked by required conditions
CI / skills-python (push) Blocked by required conditions
CI / -6 (push) Blocked by required conditions
CI / -7 (push) Blocked by required conditions
CI / macos-swift (push) Blocked by required conditions
CI / -8 (push) Blocked by required conditions
Docs Sync Publish Repo / sync-publish-repo (push) Waiting to run
Install Smoke / preflight (push) Waiting to run
Install Smoke / install-smoke (push) Blocked by required conditions
Install Smoke / docker-e2e-fast (push) Blocked by required conditions
Plugin NPM Release / preview_plugins_npm (push) Waiting to run
Plugin NPM Release / preview_plugin_pack (push) Blocked by required conditions
Plugin NPM Release / publish_plugins_npm (push) Blocked by required conditions
Workflow Sanity / no-tabs (push) Waiting to run
Workflow Sanity / actionlint (push) Waiting to run
Workflow Sanity / generated-doc-baselines (push) Waiting to run
2026-04-23 05:06:58 +01:00
Peter Steinberger
b2472d6560
build: migrate schema deps to typebox 2026-04-23 04:59:42 +01:00
Peter Steinberger
d0d018bdad fix(qa): restore agentic parity tool runtime 2026-04-23 04:22:03 +01:00
Peter Steinberger
90696bffff
fix: defer bundled plugin runtime deps until enabled 2026-04-23 03:17:06 +01:00
dulingxiao
c4dea58712 fix(moonshot): preserve native Kimi tool_call IDs in openai-completions replay 2026-04-23 01:52:58 +01:00
Peter Steinberger
0946e37523
fix(plugins): skip unchanged npm updates 2026-04-23 01:23:03 +01:00
Peter Steinberger
c4e5ca8625
fix(agents): expose configured MCP tools in Pi profiles 2026-04-23 00:47:37 +01:00
Vincent Koc
a5128777ee
feat(codex): add tool hook parity (#70307)
* feat(codex): add tool hook parity

* fix(codex): stabilize tool hook parity

* fix(codex): tighten transcript hook typing

* fix(codex): preserve mirrored transcript idempotency

* fix(codex): normalize tool hook context
2026-04-22 16:18:10 -07:00
Vincent Koc
44965bf63c
fix(diffs): refresh live tool config 2026-04-22 16:14:23 -07:00
Vincent Koc
d686e6f876
fix(hooks): avoid stale active-memory startup fallback 2026-04-22 16:10:01 -07:00
Vincent Koc
386a0884d7
fix(hooks): avoid stale lancedb startup fallback 2026-04-22 16:06:55 -07:00
Peter Steinberger
2cd3164a0f
feat(providers): share GPT-5 prompt overlay 2026-04-22 23:36:06 +01:00