Chunyue Wang
34b67c3f25
fix(web_search): skip redundant provider re-resolution for external Brave plugin
...
Guards the secondary resolveProviders call with `!allProviders.some(p => p.id === rawProvider)` so it only fires when the first pass genuinely missed the configured provider. Eliminates the spurious `WEB_SEARCH_PROVIDER_INVALID_AUTODETECT` warning and incorrect `providerSource: "none"` for external Brave plugin installs. Fixes #77676 .
2026-05-06 17:45:20 +08:00
Peter Steinberger
ce8b0da9a2
test: slim secret runtime coverage
2026-05-06 09:33:28 +01:00
Peter Steinberger
538605ff44
[codex] Extract filesystem safety primitives ( #77918 )
...
* refactor: extract filesystem safety primitives
* refactor: use fs-safe for file access helpers
* refactor: reuse fs-safe for media reads
* refactor: use fs-safe for image reads
* refactor: reuse fs-safe in qqbot media opener
* refactor: reuse fs-safe for local media checks
* refactor: consume cleaner fs-safe api
* refactor: align fs-safe json option names
* fix: preserve fs-safe migration contracts
* refactor: use fs-safe primitive subpaths
* refactor: use grouped fs-safe subpaths
* refactor: align fs-safe api usage
* refactor: adapt private state store api
* chore: refresh proof gate
* refactor: follow fs-safe json api split
* refactor: follow reduced fs-safe surface
* build: default fs-safe python helper off
* fix: preserve fs-safe plugin sdk aliases
* refactor: consolidate fs-safe usage
* refactor: unify fs-safe store usage
* refactor: trim fs-safe temp workspace usage
* refactor: hide low-level fs-safe primitives
* build: use published fs-safe package
* fix: preserve outbound recovery durability after rebase
* chore: refresh pr checks
2026-05-06 02:15:17 +01:00
Vincent Koc
1ff07517b0
test(secrets): trust source plugin contracts in coverage
2026-05-05 15:30:25 -07:00
Peter Steinberger
35da7d2c99
refactor: remove legacy agent dir resolver
2026-05-05 20:07:49 +01:00
Brandon
e2e0908055
fix(secrets): preserve auth profile key refs during provider scrub ( #77489 )
...
* fix(secrets): preserve auth profile key refs during provider scrub
* Add changelog for secrets apply fix
* Seed auth profile ref for scrub regression
* fix(secrets): guard auth profile ref scrub
---------
Co-authored-by: Vincent Koc <vincentkoc@ieee.org >
2026-05-04 19:50:39 -05:00
Mogglemoss
43b5df7295
fix(secretrefs): resolve external channel contracts in dist/ sidecars ( #77421 )
...
* fix(secretrefs): resolve external channel contracts in dist/ sidecars
Externalized channel plugins published to npm (e.g. @openclaw/discord
since 2026.5.2) keep their compiled secret-contract-api artifact under
<rootDir>/dist/, per the package.json `openclaw.runtimeExtensions`
convention. The runtime contract loader added in #76449 only searched
the rootDir, so npm-installed plugins silently dropped their channel
SecretRef contracts: the runtime snapshot left `channels.<id>.token`
as an unresolved SecretRef, the plugin's `isConfigured` check then
returned false, and the gateway recorded `error: not configured`
without firing the usual channel startup logs.
Look in `<rootDir>/dist/` as well as `<rootDir>/`, preferring dist
when running from a built openclaw artifact and rootDir when running
from source. The new `loads dist/ secret-contract-api sidecars …`
test in channel-contract-api.external.test.ts mirrors the real
npm-package layout and fails without this change.
Refs #76371 . Fixes #77416 .
* docs: credit changelog contributor
---------
Co-authored-by: Magpie <magpie@local>
Co-authored-by: joshavant <830519+joshavant@users.noreply.github.com >
2026-05-04 16:57:28 -05:00
Peter Steinberger
0031ef3120
refactor: keep legacy secretref migration in doctor
2026-05-03 13:10:00 +01:00
Peter Steinberger
45a5374ca8
perf: reduce raw gateway config startup work
2026-05-03 13:03:11 +01:00
Peter Steinberger
1584acb124
fix(secrets): stabilize credential matrix docs
2026-05-03 12:25:08 +01:00
Vincent Koc
f9a1f86e64
test(secrets): audit external channel SecretRefs ( #76589 )
2026-05-03 02:17:41 -07:00
Josh Avant
b1f8172867
fix(secretrefs): resolve external channel contracts ( #76449 )
2026-05-02 23:48:11 -05:00
Peter Steinberger
c58319ff50
fix: tolerate sparse plugin metadata snapshots
2026-05-02 08:19:40 +01:00
Peter Steinberger
3e15090c7e
refactor: route plugin metadata consumers through snapshots
2026-05-02 08:18:52 +01:00
Peter Steinberger
ebb45a8a28
refactor: unify plugin metadata snapshot callers
2026-05-02 07:51:17 +01:00
Peter Steinberger
7f13a43ebb
refactor: hide utility helper internals
2026-05-02 07:33:06 +01:00
Peter Steinberger
71da5af164
refactor: reuse plugin metadata snapshots
2026-05-02 07:13:17 +01:00
Peter Steinberger
7729e6c104
fix: restore current main ci checks
2026-05-02 05:26:42 +01:00
Peter Steinberger
ed6df7dd8b
fix(gemini): reuse google provider config for web search
2026-05-02 05:15:02 +01:00
Peter Steinberger
8d54b898fb
test: stabilize slow extension gates
2026-05-02 03:34:17 +01:00
Peter Steinberger
eef8dab4e9
refactor: route bundled catalogs through plugin registry
2026-05-02 01:58:45 +01:00
Peter Steinberger
a7bdf56870
test: split secrets coverage migration gate
2026-05-02 01:29:53 +01:00
Peter Steinberger
4d06491ce8
perf: speed up bundled metadata test paths
2026-05-02 01:22:52 +01:00
Peter Steinberger
9045a7c644
refactor: remove bundled public surface runtime shim
2026-05-01 21:49:18 +01:00
VACInc
be14820b5d
fix: resolve voice-call SecretRef inputs ( #73632 )
...
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-05-01 07:21:02 +01:00
Peter Steinberger
42d73fd955
refactor: remove dead private helpers
2026-05-01 06:55:26 +01:00
Peter Steinberger
afb17eade9
fix(secrets): skip optional web fetch discovery before bind
2026-04-30 14:45:55 +01:00
Shakker
10b9adb010
fix: trust-gate manifest auth evidence
2026-04-30 00:13:12 +01:00
Shakker
dd5b96c11d
feat: expose provider auth evidence lookup
2026-04-30 00:13:12 +01:00
Peter Steinberger
e27fe55aa8
refactor: simplify plugin cache boundaries
2026-04-29 04:33:15 +01:00
Peter Steinberger
7a5b419843
refactor(plugins): simplify plugin cache boundaries
2026-04-29 03:52:22 +01:00
Vincent Koc
8e5fcfff50
fix(test): stabilize core runtime infra shard
2026-04-28 17:31:35 -07:00
Gabriel Kripalani
17ef9ef895
feat(openrouter): add video generation provider ( #72700 )
...
Adds OpenRouter video generation via video_generate, with hardened async polling/download handling, docs, and regression coverage.
Validation:
- pnpm test src/plugins/plugin-lookup-table.test.ts src/secrets/target-registry.fast-path.test.ts src/gateway/server-startup-post-attach.test.ts extensions/openrouter/video-generation-provider.test.ts src/video-generation/live-test-helpers.test.ts src/media-generation/provider-capabilities.contract.test.ts src/agents/pi-embedded-helpers/failover-matches.test.ts src/plugins/manifest-metadata-scan.test.ts src/agents/openai-transport-stream.test.ts src/media-understanding/openai-compatible-audio.test.ts src/agents/schema-normalization-runtime-contract.test.ts src/agents/provider-request-config.test.ts src/plugin-sdk/provider-stream.test.ts src/agents/pi-embedded-runner/run/attempt.spawn-workspace.websocket.test.ts -- --reporter=verbose
- OPENCLAW_LIVE_TEST=1 OPENCLAW_LIVE_TEST_QUIET=0 OPENCLAW_LIVE_VIDEO_GENERATION_MODELS=openrouter/google/veo-3.1-fast pnpm test:live src/video-generation/video-generation.live.test.ts -- --runInBand
Co-authored-by: notamicrodose <gabrielkripalani@me.com >
2026-04-28 10:57:31 +01:00
Peter Steinberger
b4ffef5c5f
fix(plugins): prune inactive bundled runtime deps
2026-04-28 10:34:24 +01:00
Peter Steinberger
7975305a89
test: cover trusted-proxy secret surfaces
2026-04-27 23:10:22 +01:00
Vincent Koc
bd51f82efa
fix(security): harden CodeQL secret ref validation
...
Remediate current-profile CodeQL findings for file SecretRef id validation and release workflow job permissions. Includes changelog credit. Thanks @vincentkoc.
2026-04-27 13:53:27 -07:00
openclaw-test-performance-agent[bot]
2f909b0b21
test: optimize slow tests
2026-04-27 17:42:22 +00:00
Peter Steinberger
7f3f108521
refactor(config): migrate plugin config access
2026-04-27 12:35:58 +01:00
Josh Avant
db09f68ce5
Support SecretRef for voice-call credentials and bundled plugin SecretInputs ( #72607 )
...
* fix: support voice-call secretrefs
* test: classify plugin secretref targets
* docs: credit voice-call secretref change
* fix: keep plugin secret target discovery lightweight
2026-04-27 01:16:50 -05:00
Peter Steinberger
5f2273e81e
fix(gateway): unify chat display projection
2026-04-26 05:33:58 +01:00
Shakker
2e7635f4f9
fix: scope web provider ownership to plugin index
2026-04-26 04:39:12 +01:00
Shakker
1a193b2d96
fix: scope cold plugin manifests to index
2026-04-26 03:47:45 +01:00
Vincent Koc
10763781fd
fix(config): resolve plugin contracts cold
2026-04-25 19:33:56 -07:00
Vincent Koc
6afac5208a
fix(secrets): resolve plugin env metadata cold
2026-04-25 19:18:30 -07:00
Peter Steinberger
0ca952cdd5
feat(tts): add per-agent voice overrides
2026-04-26 02:54:13 +01:00
Shakker
c19f8a5223
refactor: consolidate plugin install index store
2026-04-26 01:03:12 +01:00
Vincent Koc
74059aaa29
fix(secrets): honor plugin install ledger for web fetch discovery
2026-04-25 13:55:00 -07:00
Vincent Koc
70d1871db7
fix(secrets): honor plugin install ledger in web search risk
2026-04-25 13:50:44 -07:00
Peter Steinberger
7a71a66571
perf: cache provider env var lookups
2026-04-25 08:35:57 +01:00
Peter Steinberger
9e5d09c962
fix(config): reject legacy secretref env markers
2026-04-25 03:48:11 +01:00