Commit graph

5267 commits

Author SHA1 Message Date
Peter Steinberger
893a18ff5c
fix(slack): accept assistant dm message edits 2026-04-25 00:00:17 +01:00
Peter Steinberger
0c46e8000e
fix(plugins): cache discovery registration snapshots
Co-authored-by: junpei.o <14040213+livingghost@users.noreply.github.com>
Co-authored-by: Yoshiaki Okuyama <okuyam2y@gmail.com>
Co-authored-by: Shion Eria <shioneria@foxmail.com>
Co-authored-by: Billy Shih <1472300+bbshih@users.noreply.github.com>
2026-04-24 23:55:29 +01:00
Peter Steinberger
9eeceaca43
fix: send copilot headers during compaction 2026-04-24 23:54:58 +01:00
Peter Steinberger
719d6df156
fix: align github copilot request headers 2026-04-24 23:47:43 +01:00
Peter Steinberger
304126ad79
refactor(realtime-voice): centralize consult policy helpers 2026-04-24 23:45:49 +01:00
Peter Steinberger
a7696b496a
test: improve Docker aggregate scheduling 2026-04-24 23:44:02 +01:00
Peter Steinberger
5c445f7842
fix(slack): suppress block streaming during previews 2026-04-24 23:34:04 +01:00
Vincent Koc
5394efe71f
feat(channels): use manifest configs for read-only discovery 2026-04-24 15:18:45 -07:00
Peter Steinberger
e2f13959d4
feat(voice-call): share realtime agent consult tool
Centralize the shared realtime agent consult tool for browser Talk, Google Meet, and Voice Call.
2026-04-24 23:11:18 +01:00
Peter Steinberger
900ba7cf33
fix(google-meet): handle browser mic prompt 2026-04-24 23:06:58 +01:00
Gustavo Madeira Santana
72731a37d2
Require full Matrix identity trust (#70401)
Merged via squash.

Prepared head SHA: d13a729681
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com>
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com>
Reviewed-by: @gumadeiras
2026-04-24 17:58:57 -04:00
Vincent Koc
139dfd97bb
fix(diagnostics-otel): export logs from diagnostic events
Export diagnostics OTEL logs through bounded diagnostic log events while keeping core log records off the public plugin diagnostic stream.\n\nIncludes security hardening for log payload redaction, bounded attributes, prototype-pollution keys, OTEL export failure reporting, and extension SDK seam usage.
2026-04-24 14:51:45 -07:00
pashpashpash
11804a484d
Fail closed when an explicit agent harness is missing (#71265)
* Fail closed for explicit agent harness selection

* Scope explicit harness fallback opt in
2026-04-25 06:39:57 +09:00
Peter Steinberger
78b9890ae1
feat(google-meet): add browser create fallback 2026-04-24 22:36:22 +01:00
Peter Steinberger
8a9d02dd82
fix(voice-call): keep outbound realtime streams attached (#71266)
Fixes outbound Twilio realtime conversations so the TwiML fetch returns the realtime <Connect><Stream> path for outbound directions and the answered-call path does not overwrite it with legacy <Say> TwiML.

Local proof:
- pnpm test extensions/voice-call/src/manager.notify.test.ts extensions/voice-call/src/webhook.test.ts
- pnpm check:changed
- pnpm check
- pnpm build
- local VoiceCallWebhookServer + CallManager smoke for Direction=outbound-api

Closes #68713.
2026-04-24 22:35:26 +01:00
Vincent Koc
5b8bd6371c
feat(plugins): warn on ignored setup runtime (#71253)
* feat(plugins): warn on ignored setup runtime

* fix(plugins): avoid fallback setup runtime diagnostics

* refactor(plugins): clarify setup runtime lookup
2026-04-24 14:23:19 -07:00
Peter Steinberger
6e985a421d
fix(webchat): keep runtime context out of visible transcripts
Keep WebChat runtime context available to the model while persisting only the transcript-facing user prompt across gateway, CLI, queued follow-up, and embedded Pi paths.

Adds regression coverage for history sanitization, CLI transcript persistence, media-only auto-reply prompts, and embedded Pi prompt rewrite against a real SessionManager file.

Co-authored-by: 91wan <91wan@users.noreply.github.com>
2026-04-24 22:17:03 +01:00
Peter Steinberger
b20208fa4c
feat(google-meet): create meeting spaces 2026-04-24 22:11:16 +01:00
Vincent Koc
86099ec62a
refactor(web-fetch): move readability extraction to plugin
* refactor(web-fetch): move readability extraction to plugin

* fix(web-fetch): cache extractor resolution by config

* fix(test): remove redundant stat assertions
2026-04-24 13:34:37 -07:00
Vincent Koc
7bd74758c5
fix(plugins): harden tool result middleware (#71241) 2026-04-24 13:23:18 -07:00
547895019
272313877d
fix(comfy): read config from plugins.entries instead of models.providers (openclaw#63058)
Verified:
- pnpm test -- extensions/comfy/image-generation-provider.test.ts extensions/comfy/music-generation-provider.test.ts extensions/comfy/video-generation-provider.test.ts
- rg -n "models\\.providers\\.comfy" docs extensions/comfy src -g '*.{ts,md,json}'
- pnpm check -- --help
- gh pr checks 63058 --repo openclaw/openclaw --watch --fail-fast

Co-authored-by: 547895019 <7350824+547895019@users.noreply.github.com>
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com>
2026-04-24 15:23:13 -05:00
Vincent Koc
cf858258c7
feat(plugins): surface manifest provider setup choices (#71240) 2026-04-24 13:14:49 -07:00
Vincent Koc
8154337cb6
fix(whatsapp): emit message received hooks (#71217)
* fix(whatsapp): emit message received hooks

* fix(whatsapp): harden message received hooks
2026-04-24 13:05:10 -07:00
Vincent Koc
ff8b7145d7
docs(plugins): catalog active deprecations in sdk-migration and cross-link from hooks 2026-04-24 13:04:07 -07:00
Michael Yagudaev
c997a9f978
feat(gateway): add VoiceClaw realtime brain endpoint (#70938)
Adds the VoiceClaw-compatible realtime brain WebSocket endpoint backed by Gemini Live, with owner-auth gating, async OpenClaw tool handoff, docs, and lifecycle tests.

Maintainer fixup: terminal upstream errors now send the error, emit session.ended while the client socket is still open, then close the client-facing socket.

Co-authored-by: Michael Yagudaev <1386966+yagudaev@users.noreply.github.com>
2026-04-24 21:00:04 +01:00
Vincent Koc
7536993397
feat(plugins): read setup provider env vars (#71226)
* feat(plugins): read setup provider env vars

* fix(plugins): mark provider env compat deprecation
2026-04-24 12:59:02 -07:00
Peter Steinberger
0e23107ffb
feat(google-meet): format setup status by default 2026-04-24 20:52:39 +01:00
Peter Steinberger
56e299cbca
fix: serialize bundled runtime dependency repair 2026-04-24 20:44:56 +01:00
Peter Steinberger
2c516fe516
refactor: share provider HTTP error parsing 2026-04-24 20:44:56 +01:00
Patrick Erichsen
8226a3f8fe
feat(onboard): add skip bootstrap flag (#71218) 2026-04-24 12:42:00 -07:00
Peter Steinberger
0f689d22f4
test: add weighted Docker aggregate scheduler 2026-04-24 20:41:27 +01:00
Peter Steinberger
88c91675e2
test: stabilize qa suite concurrency 2026-04-24 20:39:33 +01:00
Vincent Koc
47f6a98909
feat(plugins): add harness tool result middleware (#71021) 2026-04-24 12:39:13 -07:00
Peter Steinberger
c2a353a3bd
perf: shorten extension ci tail 2026-04-24 20:35:55 +01:00
BillChirico
51dd4f288f fix(config): allow plugin conversation access hook policy (#71221) 2026-04-24 20:28:42 +01:00
Peter Steinberger
ef9ca09b8e
docs(google-meet): add setup troubleshooting 2026-04-24 20:28:00 +01:00
Sathvik-1007
8d57d745cf fix: wizard no clobber model.primary on re-run
two bugs. both squash user model choice silently.

bug 1: applyDefaultModel() unconditional primary: model overwrite.
wizard calls with setDefaultModel=true, provider returns its default
(e.g. openrouter/auto), bam user primary gone. fix: existingPrimary ?? model.

bug 2: applyModelFallbacksFromSelection() phantom primary injection.
when no primary configured, resolvedKey (hardcoded default) written as
primary via nullish coalescing fallback. fix: conditional spread — only
include primary key when one actually existed.

tests for both. closes #70696
2026-04-24 19:55:20 +01:00
Peter Steinberger
bc0f54bd04
fix(models): separate Codex harness from model choices (#71193)
* fix: separate Codex harness from model choices

* docs: note Codex harness model choice fix
2026-04-24 19:40:23 +01:00
Vincent Koc
3bd2ee78b6
feat(plugins): expose hook correlation fields
Expose first-class hook correlation fields for plugin message and run lifecycle hooks, including frozen diagnostic trace copies for plugin-facing events.
2026-04-24 11:37:34 -07:00
Peter Steinberger
a43c1f8807
refactor: share provider HTTP errors with google 2026-04-24 19:33:44 +01:00
Peter Steinberger
b1016c39fd
refactor: share speech provider HTTP errors 2026-04-24 19:33:44 +01:00
Vincent Koc
6bc0dc8fb6
feat(plugins): report setup descriptor drift (#71194) 2026-04-24 11:15:30 -07:00
Vincent Koc
5d7d5ca2a9
docs(plugins/hooks): regroup hook catalog by surface, mark decision hooks, sync before_tool_call result type with code 2026-04-24 11:02:46 -07:00
Vincent Koc
7418adf875
fix(plugins): honor descriptor-only setup flag
Honor explicit setup.requiresRuntime: false as a descriptor-only setup contract while preserving omitted values as the legacy setup-api fallback path.
2026-04-24 11:02:38 -07:00
Peter Steinberger
3bc99bc70e
docs: add reliable taskflow workflow pattern 2026-04-24 18:55:05 +01:00
Vincent Koc
9439d633ef
docs(nav): surface orphan pages in sidebar (message-presentation, skill-workshop, qa-e2e-automation, proxy, gpt54-codex-agentic-parity) 2026-04-24 10:53:32 -07:00
Peter Steinberger
c2bffc6033
docs: clarify google meet mode choice 2026-04-24 18:51:39 +01:00
Vincent Koc
1042b893f6
docs: drop parenthetical H1s across gateway, channels, providers, concepts, and reference pages 2026-04-24 10:49:23 -07:00
Peter Steinberger
62adf6349d
docs(release): require tmux for 1password fallback 2026-04-24 18:44:43 +01:00
Laurent Mazare
d7e2939791
feat: add Gradium text-to-speech provider (#64958)
Adds the Gradium bundled plugin with TTS and speech-provider registration, docs, label routing, and focused/live coverage.

Also carries the current main lint cleanup needed for the rebased CI lane.

Co-authored-by: laurent <laurent.mazare@gmail.com>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-24 18:43:53 +01:00