Peter Steinberger
41a92ae445
perf: resolve native esm plugin sdk imports
2026-05-29 23:38:08 +01:00
Kevin Lin
c57671176e
refactor: share native approval route gates
...
Share native approval route gate helpers across mainstream channel approval runtimes and keep PR #87770 green on current main.
2026-05-29 15:32:31 -07:00
Sally O'Malley
6037a74660
Add plugin manifest contract for SecretRef provider integrations ( #82326 )
...
* secret-provider-integrations
Signed-off-by: sallyom <somalley@redhat.com >
* feat(secrets): configure plugin provider presets
* secrets: use plugin-managed provider refs
Signed-off-by: sallyom <somalley@redhat.com >
* fix secretref auth profile service env
* test secret provider integration e2e
* fix secretref plugin config service env
* fix secret provider preset schema alignment
* stabilize secret provider service proof
* validate secret provider plugin integrations
* harden secret provider resolver paths
* scope secret provider config validation
* stabilize openai secret provider proof
* fix secret provider metadata proof
* stabilize config baseline proof
* fix secret provider e2e lint
---------
Signed-off-by: sallyom <somalley@redhat.com >
Co-authored-by: joshavant <830519+joshavant@users.noreply.github.com >
2026-05-29 18:20:45 -04:00
Peter Steinberger
3416edf740
fix(codex-supervisor): centralize session limit parsing
2026-05-29 17:10:38 -04:00
Peter Steinberger
a0c1f5962d
fix(runtime): centralize safe timer timeout resolution
2026-05-29 15:36:38 -04:00
Peter Steinberger
bf3921dab7
refactor: centralize timer-safe timeout bounds
2026-05-29 13:44:41 -04:00
Peter Steinberger
604a6b5452
fix(minimax): reject unsafe oauth expiry
2026-05-29 13:15:00 -04:00
Peter Steinberger
5a294cb2bd
refactor: centralize safe expiry parsing
2026-05-29 12:38:11 -04:00
Shakker
6e026fbb46
refactor: centralize skills subsystem
2026-05-29 17:35:02 +01:00
Shakker
d9278c8efd
refactor: organize skills subsystem layout
2026-05-29 17:35:02 +01:00
Shakker
bedfd4c200
refactor: move skill lifecycle code into skills subsystem
2026-05-29 17:35:02 +01:00
Shakker
22e2d1560f
refactor: centralize skills subsystem
2026-05-29 17:35:02 +01:00
Peter Steinberger
ec1e27d562
fix(msteams): ignore unsafe retry-after delays
2026-05-29 10:48:05 -04:00
Peter Steinberger
c093e4508d
fix(tts): centralize directive number parsing
2026-05-29 10:05:37 -04:00
joshavant
80227005a0
feat(exec): add normalized auto mode
...
Co-authored-by: Vincent Koc <25068+vincentkoc@users.noreply.github.com >
Co-authored-by: jesse-merhi <79823012+jesse-merhi@users.noreply.github.com >
2026-05-30 00:04:06 +10:00
Peter Steinberger
58e82d91ba
fix(media): centralize content length parsing
2026-05-29 09:02:21 -04:00
Peter Steinberger
4b6517d114
fix(provider-auth): centralize copilot expiry parsing
2026-05-29 07:18:04 -04:00
Peter Steinberger
fbf900c746
refactor: move plugin state consumers to sqlite
...
Summary:
- add plugin-state runtime SDK subpaths backed by the existing sidecar DB
- migrate Discord model-picker preferences and Feishu dedup state to plugin-state keyed stores
- wire doctor legacy-state migration imports, including TTL preservation, for existing plugin JSON state
Verification:
- pnpm plugin-sdk:api:check
- focused plugin-state, doctor, Discord, Feishu, and package-boundary Vitest suites
- git diff --check origin/main...HEAD
- env -u OPENCLAW_TESTBOX pnpm check:changed
- autoreview --mode branch --base origin/main
- GitHub Actions PR checks green on 1025c2b570
2026-05-29 11:12:15 +01:00
Pavan Kumar Gondhi
9497629c1e
fix(msteams): pin attachment fetch DNS
...
Route Microsoft Teams attachment downloads through the shared SSRF guarded fetch path so DNS validation is pinned into the dispatcher used for the actual request.
Keep Teams auth fallback and allowlisted HTTPS Authorization redirect behavior while failing closed for custom fetch hooks that cannot accept dispatcher injection.
Verification:
- CI=1 OPENCLAW_VITEST_MAX_WORKERS=1 timeout 300 node scripts/run-vitest.mjs run extensions/msteams/src/attachments/shared.test.ts extensions/msteams/src/attachments/bot-framework.test.ts src/infra/net/fetch-guard.ssrf.test.ts
- gh pr checks 87567 --repo openclaw/openclaw --watch=false
PR: #87567
2026-05-29 09:03:50 +01:00
Peter Steinberger
4829d30cf0
fix(mattermost): bound slash callback env port
2026-05-29 02:31:53 -04:00
Rob Pierson
b474f429ee
feat(plugin-sdk): add reply payload sending hook ( #82823 )
...
* feat(plugin-sdk): add reply payload sending hook
* fix(dispatch): compose caller beforeDeliver with plugin hooks instead of nullish-coalescing
ClawSweeper review identified that Telegram's identity beforeDeliver
would skip reply_payload_sending and message_sending hooks entirely.
Now we always compose caller-provided hooks with global plugin hooks
so plugins get a chance to run even when the caller already supplies
a beforeDeliver hook.
Also adds regression test for composition case.
* test(dispatch): align beforeDeliver hook assertion with current context
* fix(plugin-sdk): remove leftover merge markers from hook types
* feat(plugin-sdk): add reply payload sending hook
* fix(plugin-sdk): protect reply payload media trust
* fix(auto-reply): honor suppressed routed ACP blocks
* fix(auto-reply): avoid double message sending hooks
* fix(auto-reply): require routed reply kind
* test(auto-reply): type routed suppression mock
* fix(auto-reply): honor reply payload hooks in followups
* fix(auto-reply): suppress empty hooked dispatcher replies
* fix(auto-reply): wire reply payload hooks at dispatcher boundary
* fix(plugins): preserve reply payload metadata in hooks
* fix(auto-reply): defer reply hook availability checks
* fix(auto-reply): preserve message hook order for routed payloads
* fix(auto-reply): persist routed payload hook decisions
* fix(auto-reply): run routed payload hooks inside delivery
* fix(auto-reply): enforce message hooks after payload edits
* fix(auto-reply): gate source reply mirrors on delivery
* fix(auto-reply): scope hook-mutated media delivery
* chore(plugin-sdk): refresh reply hook api baseline
* fix(auto-reply): mirror delivered source replies
---------
Co-authored-by: Rob via OpenClaw <noreply@openclaw.local >
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-05-29 07:15:10 +01:00
Peter Steinberger
621db8f0b1
fix(browser): reject explicit zero cdp ports
2026-05-29 01:43:05 -04:00
Peter Steinberger
6bf2fdf739
fix(channels): normalize direct dm guard numeric overrides
2026-05-29 01:28:40 -04:00
Peter Steinberger
1e5ccd1ce8
fix(matrix): centralize initial sync limit coercion
2026-05-29 01:22:24 -04:00
Peter Steinberger
1188aa3b81
feat: add Claude Opus 4.8 support ( #87890 )
...
* feat: add Claude Opus 4.8 support
* fix: omit Vertex Opus sampling overrides
* fix: preserve Opus adaptive thinking levels
* fix: clamp Anthropic max effort support
* fix: use sha256 for QA mock call ids
* fix: type Anthropic transport test model metadata
* test: update PDF model default for Opus 4.8
2026-05-29 06:10:42 +01:00
Peter Steinberger
4dd3ba149c
fix(browser): default non-finite snapshot limits
2026-05-29 00:32:35 -04:00
Vincent Koc
2fef80aee5
refactor: share provider catalog projection
2026-05-29 06:21:05 +02:00
Ramrajprabu
f3cfd752d3
feat(copilot): add GitHub Copilot agent runtime
...
Adds the opt-in bundled GitHub Copilot agent runtime, pinned SDK install path, docs/inventory, SDK/tool/sandbox/auth wiring, and replay/tool-safety fixes.
Verification:
- Local: git diff --check; fnm exec --using 24.15.0 pnpm tsgo:extensions; fnm exec --using 24.15.0 pnpm check:test-types; fnm exec --using 24.15.0 pnpm build.
- Autoreview local: clean for the replay-safety fix; branch autoreview engine returned empty output twice, so local autoreview plus local/Crabbox/CI proof was used.
- Crabbox focused Copilot: run_2c0db9f48a4a, 19 files / 485 tests passed.
- Crabbox additional boundary shard: run_26a246a1aa24, prompt snapshots and plugin SDK boundary/export checks passed.
- Crabbox live Copilot: run_d128e4048b4e, real gpt-4.1 turn with live_echo phase-1-green and clean session-file check.
- GitHub checks: green on head 7cc8657e0d , including Dependency Guard after exact-head approval.
Co-authored-by: Ramraj Balasubramanian <ramrajba@microsoft.com >
2026-05-29 05:15:22 +01:00
Vincent Koc
27b15a19e8
refactor(voice): catalog voice models through providers ( #87794 )
...
* refactor(providers): catalog voice models
* feat(tts): route speech through voice models
* refactor(tts): rename speaker selection fields
* refactor(tts): mark default speech models
* test(tts): type migrated speaker config assertions
* refactor(providers): avoid catalog merge map spread
* fix(tts): honor voice model fallbacks
* refactor(tts): move speech core into package
* chore(tts): register speech core knip workspace
* fix(tts): show migrated speaker voice in status
* fix(tts): satisfy speech core lint
* fix(tts): preserve explicit model aliases
* test(tts): narrow provider config assertion
* test(doctor): allow slow commitments repair check
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-05-29 04:46:45 +01:00
Vincent Koc
ffd4a80145
refactor: share live transport QA CLI helpers
2026-05-29 05:21:23 +02:00
clawsweeper[bot]
4df1fcf7b3
feat(discord): show commentary in progress drafts ( #85200 )
...
Adds opt-in Discord progress-draft commentary for assistant preambles while keeping commentary hidden by default and final delivery unchanged.
Keeps commentary config Discord-specific, strips directive tags/NO_REPLY, and clears stale commentary rows without stopping the active draft stream.
Thanks @bryanpearson.
Co-authored-by: bryanpearson <bryanmpearson@gmail.com >
2026-05-29 04:21:06 +01:00
Peter Steinberger
d503ec52d8
feat: add Fal Krea image model schemas ( #87845 )
...
* feat: add fal krea image model schemas
* fix: support fal model-specific aspect ratios
* fix: preserve fal native auto aspect ratio
* fix: honor image model-specific geometry
2026-05-29 03:58:46 +01:00
Peter Steinberger
c8cc010e09
fix(infra): centralize non-finite numeric option bounds
2026-05-28 22:48:19 -04:00
Peter Steinberger
564ccf1faa
fix(dedupe): bound non-finite retention options
2026-05-28 22:39:09 -04:00
Peter Steinberger
c7a1e909a3
fix(plugin-sdk): default non-finite webhook guard limits
2026-05-28 22:29:04 -04:00
Peter Steinberger
0d189102f5
fix: clamp web provider subsecond timeouts
2026-05-28 22:04:22 -04:00
Peter Steinberger
4ac6bb1964
fix: validate memory search min score
2026-05-28 21:28:02 -04:00
Peter Steinberger
b1117d9862
refactor: extract gateway client package ( #87797 )
...
* refactor: extract gateway client package
* chore: drop generated gateway package artifacts
* refactor: move gateway protocol package
* refactor: remove old gateway protocol tree
* test: keep auth compat split in run mode
* test: expose gateway wrapper options for internals
* fix: watch moved gateway package sources
* test: normalize slash command import guard
* chore: teach knip gateway package entries
* ci: route gateway client package checks
* fix: reuse ipaddr for gateway client hosts
* fix: sync gateway protocol usage schema
2026-05-29 02:23:42 +01:00
Vincent Koc
ca41fa293f
refactor: share live transport scenario helpers
2026-05-29 02:58:05 +02:00
Peter Steinberger
091e15139b
refactor: centralize numeric tool schemas
2026-05-28 20:39:51 -04:00
Peter Steinberger
068e02684b
fix: validate node media numeric params
2026-05-28 19:53:58 -04:00
Peter Steinberger
3c907250b9
fix: validate firecrawl numeric options
2026-05-28 19:20:18 -04:00
Jason (Json)
1610b4983f
fix: scope jiti transform cache by OpenClaw install
...
Scope jiti filesystem transform caches for OpenClaw plugin loaders by package version and package.json install metadata so stale transforms cannot survive upgrades or package reinstalls.
Covers the central plugin module loader and the plugin SDK root alias CJS loader, while preserving jiti filesystem-cache env opt-outs and the TMPDIR cwd guard.
Verification: CI run 26601117143 passed; Real behavior proof run 26601445285 passed; CodeQL selected checks passed in run 26601117126; CodeQL Critical Quality plugin-boundary and plugin-sdk-package-contract passed in run 26601117074; OpenGrep PR diff passed in run 26601117137.
Refs: https://github.com/openclaw/openclaw/pull/87745
Thanks @fuller-stack-dev.
2026-05-29 00:17:04 +01:00
Peter Steinberger
361753908e
fix: validate memory get ranges
2026-05-28 19:11:37 -04:00
Peter Steinberger
56a5d7e865
fix(codex): defer report-mode plugin approvals
...
Route Codex app-server report-mode PreToolUse plugin approval requirements through the matching app-server approval request instead of failing closed. Shares duplicate in-flight approvals, preserves block/rewrite fail-closed behavior, and keeps generic plugin allow-always scoped to one Codex request. Supersedes #86978 ; thanks @clawSean for the original docs clarification.
2026-05-29 00:09:23 +01:00
Peter Steinberger
b240ce2085
fix: validate discord action integers
2026-05-28 19:02:24 -04:00
Vincent Koc
6d90e00fa3
refactor: dedupe channel approval forwarding
2026-05-29 00:48:40 +02:00
Peter Steinberger
b0e9569ebd
fix: validate telegram action integers
2026-05-28 18:46:26 -04:00
Peter Steinberger
59d4327698
fix: validate web search count integers
2026-05-28 18:38:39 -04:00
Peter Steinberger
9a7014ac38
fix: validate tavily integer options
2026-05-28 18:34:43 -04:00