Commit Graph

640 Commits

Author SHA1 Message Date
pashpashpash
02fe0d8978 Keep OpenAI Codex migrations on automatic runtime routing (#79238)
* fix: keep migrated openai codex routes automatic

* scope runtime policy to providers and models

* fix runtime policy surfaces

* fix ci runtime policy checks

* fix doctor stale session runtime pins
2026-05-08 16:05:35 +09:00
Jesse Merhi
a9377fe667 Harden browser download output writes (#78780)
Summary:
- The PR exports `ensureAbsoluteDirectory` through the fs-safe/SDK runtime facades and routes browser download ... through safe output directory/file helpers with focused tests, a changelog entry, and SDK API hash updates.
- Reproducibility: yes. at source level: current main creates browser download/output roots with raw recursive ... jection coverage for that path. I did not run a live browser runtime reproduction in this read-only review.

Automerge notes:
- PR branch already contained follow-up commit before automerge: fix(browser): use fs-safe output directory helper
- PR branch already contained follow-up commit before automerge: docs(changelog): mention browser fs-safe hardening
- PR branch already contained follow-up commit before automerge: fix(browser): harden download output writes

Validation:
- ClawSweeper review passed for head a9c9570f66.
- Required merge gates passed before the squash merge.

Prepared head SHA: a9c9570f66
Review: https://github.com/openclaw/openclaw/pull/78780#issuecomment-4394146682

Co-authored-by: jesse-merhi <79823012+jesse-merhi@users.noreply.github.com>
Co-authored-by: clawsweeper <274271284+clawsweeper[bot]@users.noreply.github.com>
2026-05-08 05:57:23 +00:00
Daev Mithran
9e1e59717f feat(plugin-sdk): add LLM completion API to plugin (#64294) 2026-05-07 19:27:48 -07:00
Omar Shahine
e259751ec9 feat(imessage): private-API support via imsg JSON-RPC [AI-assisted] (#78317)
Merged via squash.

Prepared head SHA: b7d336b296
Co-authored-by: omarshahine <10343873+omarshahine@users.noreply.github.com>
Co-authored-by: omarshahine <10343873+omarshahine@users.noreply.github.com>
Reviewed-by: @omarshahine
2026-05-07 19:20:18 -07:00
Peter Steinberger
e0cc5c0eee fix: preserve progress draft tool titles 2026-05-08 02:03:12 +01:00
Peter Steinberger
ef29c85a48 fix: improve Discord progress draft rendering 2026-05-08 02:03:12 +01:00
Peter Steinberger
6a4069dead fix: share plugin runtime helpers
Consolidate shared plugin runtime MIME/schema helpers, preserve canonical runtime behavior, and guard QQBot STT fetches.
2026-05-08 00:28:43 +01:00
Marcus Castro
5df08201ff refactor(runtime): add prepared runtime foundation (#78248)
* docs(runtime): document prepared runtime guidance

* refactor(provider-runtime): thread prepared provider handles

* refactor(runtime-plan): add prepared runtime foundation

* refactor(outbound): add prepared channel runtime facts

* refactor(models): add scoped model reference helpers

* refactor(plugin-sdk): expose prepared runtime helper surfaces
2026-05-07 18:49:42 -03:00
Peter Steinberger
a68ad39877 ci(release): speed up beta publish path 2026-05-07 15:02:24 +01:00
CaptainTimon
e1fec3c892 fix(config): remove core BlueBubbles schema (#78612)
* fix(config): remove core BlueBubbles schema

* fix(config): preserve BlueBubbles dmPolicy validation

* fix(config): type BlueBubbles account refinement

* chore(plugin-sdk): refresh API baseline

* chore(plugin-sdk): refresh API baseline

---------

Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
2026-05-07 03:16:42 -07:00
Peter Steinberger
2c33464b26 chore: refresh generated hashes after rebase 2026-05-07 09:07:18 +01:00
Vincent Koc
a4b8cc307c docs: refresh plugin sdk api baseline hash 2026-05-06 23:16:24 -07:00
Vincent Koc
7dc597b921 docs: refresh config baseline hash 2026-05-06 23:10:46 -07:00
Peter Steinberger
5aefe6abd6 feat: stream elevenlabs tts into discord voice 2026-05-07 06:47:31 +01:00
Peter Steinberger
9f7abf9e3a build: refresh plugin sdk api baseline 2026-05-07 06:05:24 +01:00
Vincent Koc
eb3de95025 chore(plugin-sdk): update api baseline 2026-05-06 14:16:35 -07:00
Jesse Merhi
1c42c77433 feat: add user input blocking lifecycle gates (#75035)
Summary:
- The PR adds a `before_agent_run` plugin hook with pass/block decisions, redacted blocked-turn persistence, diagnostics/docs/changelog updates, and focused runner, gateway, session, and plugin tests.
- Reproducibility: not applicable. as a feature PR rather than a current-main bug report. Current main lacks ` ... un`, while the PR head adds source coverage and copied live Gateway/WebChat log proof for the new behavior.

Automerge notes:
- PR branch already contained follow-up commit before automerge: fix: trim before agent hook PR scope
- PR branch already contained follow-up commit before automerge: fix: keep before-agent blocks redacted
- PR branch already contained follow-up commit before automerge: fix: keep runtime context out of model prompt
- PR branch already contained follow-up commit before automerge: docs: refresh config baseline after rebase
- PR branch already contained follow-up commit before automerge: fix: align blocked turn clients with redacted content
- PR branch already contained follow-up commit before automerge: fix: remove out-of-scope client block UI changes

Validation:
- ClawSweeper review passed for head 767e46fde8.
- Required merge gates passed before the squash merge.

Prepared head SHA: 767e46fde8
Review: https://github.com/openclaw/openclaw/pull/75035#issuecomment-4351843275

Co-authored-by: Jesse Merhi <jessejmerhi@gmail.com>
Co-authored-by: jesse-merhi <79823012+jesse-merhi@users.noreply.github.com>
Co-authored-by: clawsweeper <274271284+clawsweeper[bot]@users.noreply.github.com>
2026-05-06 11:41:04 +00:00
Vincent Koc
e2501b2d6d fix(diagnostics): export Talk metrics after SDK refactor
Adds bounded Talk lifecycle/audio diagnostics and session recovery metrics for OTEL, Prometheus, and stability snapshots after the Talk SDK/session refactor. Includes changelog/docs updates and Testbox/live proof.
2026-05-06 02:01:52 -07:00
Peter Steinberger
0b88d6286c chore: bump version to 2026.5.6 2026-05-06 09:47:34 +01:00
Peter Steinberger
9b1d28edf1 chore: refresh talk sdk baseline 2026-05-06 02:39:15 +01:00
Peter Steinberger
7760edc68e chore: refresh talk generated metadata 2026-05-06 02:39:15 +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
Peter Steinberger
ceca7fdfda docs: document channel message plugin api 2026-05-06 01:46:42 +01:00
scoootscooob
79dd65e208 feat(voice-call): improve realtime Meet voice agent
* feat(voice-call): inject agent context into realtime voice

* fix(voice-call): stabilize realtime meet audio

* fix(voice-call): delegate realtime consults to agent

* Improve realtime Meet voice consult routing

* Pin voice consult delivery to call session

* Move voice changelog entries to changes

* fix(voice-call): isolate final realtime transcripts

* test(voice-call): trim redundant realtime coverage
2026-05-05 12:56:31 -07:00
Peter Steinberger
35da7d2c99 refactor: remove legacy agent dir resolver 2026-05-05 20:07:49 +01:00
Peter Steinberger
761e668acf fix: recover stuck diagnostic sessions safely 2026-05-05 04:01:37 +01:00
Peter Steinberger
a78bb7832c chore(config): refresh merged baseline hash 2026-05-05 02:15:42 +01:00
Peter Steinberger
5dfaed1846 refactor(agents): use loop detection switch for post-compaction guard 2026-05-05 02:15:42 +01:00
Eduardo Piva
4c4825679b fix(agents): make post-compaction guard config valid + observation trim-resilient
Two correctness fixes from code review.

1. Zod schema (src/config/zod-schema.agent-runtime.ts) was strict and
   rejected tools.loopDetection.postCompactionGuard.* keys at validation
   time, making the guard's documented configurability inaccessible at
   gateway startup. Adds ToolLoopPostCompactionGuardSchema with both
   optional fields and wires it into ToolLoopDetectionSchema.

2. The runner observation cursor in pi-embedded-runner/run.ts used
   absolute indices into state.toolCallHistory, but that array is
   trimmed at historySize (default 30). Once the buffer was full, new
   records shifted out from under the cursor and the guard silently
   missed every loop in long-running sessions. Replaces the index
   cursor with a monotonic toolOutcomeSeq on SessionState that
   recordToolCallOutcome bumps on each observable push (unmatched
   branch only, mirroring the prior cursor's effective semantics).
   The runner now reads the most recent (currentSeq - lastSeq) entries
   from the tail of toolCallHistory, which is trim-resilient.

Adds zod parse tests for the new config keys (valid, empty, unknown
key, non-positive, non-integer) and a runner regression test that
seeds toolCallHistory at the trim cap before triggering a
post-compaction loop, asserting the abort still fires.

Refs #77474
2026-05-05 02:15:42 +01:00
Peter Steinberger
2d8fa23447 fix(agents): mediate async media completions 2026-05-05 01:42:50 +01:00
Vincent Koc
a491090b48 fix(release): refresh plugin sdk api gate
Refresh release baseline hashes and raise the Plugin SDK API baseline heap cap so release preflight reports real drift instead of OOMing.
2026-05-04 17:13:47 -07:00
Peter Steinberger
40e0844133 fix(plugins): preserve bundled allowlist edges 2026-05-04 23:50:03 +01:00
Peter Steinberger
b2096d19ec fix(plugins): default bundled discovery to allowlist 2026-05-04 23:50:03 +01:00
Peter Steinberger
55df2d4598 docs(config): refresh bundled discovery baseline 2026-05-04 23:50:03 +01:00
Peter Steinberger
41257a5f6f fix(plugins): rename bundled allowlist discovery policy 2026-05-04 23:50:03 +01:00
Peter Steinberger
3ed569ac3c fix(plugins): respect allowlist for web provider fallback 2026-05-04 23:50:03 +01:00
stain lu
74ab62c6a2 fix: pass claude cli thinking effort (#77410)
Summary:
- Adds a plugin-owned CLI backend argument rewrite hook and wires Anthropic `claude-cli` to translate non-off `/think` levels into Claude Code `--effort`, with docs, changelog, API baseline, and tests.
- Reproducibility: yes. Current main has a high-confidence source reproduction: choose `claude-cli`, set a non ... builds argv from backend args that contain no `--effort` even though `thinkLevel` exists on the run params.

Automerge notes:
- No ClawSweeper repair was needed after automerge opt-in.

Validation:
- ClawSweeper review passed for head be17754009.
- Required merge gates passed before the squash merge.

Prepared head SHA: be17754009
Review: https://github.com/openclaw/openclaw/pull/77410#issuecomment-4372812685

Co-authored-by: stainlu <stainlu@newtype-ai.org>
2026-05-04 18:13:53 +00:00
Eva
cb38535875 [plugin sdk] Project session extension slots (#75609)
Merged via squash.

Prepared head SHA: d9b670a867
Co-authored-by: 100yenadmin <239388517+100yenadmin@users.noreply.github.com>
Co-authored-by: jalehman <550978+jalehman@users.noreply.github.com>
Reviewed-by: @jalehman
2026-05-04 08:04:27 -07:00
Eva
8afc9ef73c [plugin sdk] Harden finalize retry and run context cleanup (#75600)
Merged via squash.

Prepared head SHA: ec58a6212b
Co-authored-by: 100yenadmin <239388517+100yenadmin@users.noreply.github.com>
Co-authored-by: jalehman <550978+jalehman@users.noreply.github.com>
Reviewed-by: @jalehman
2026-05-04 07:04:22 -07:00
Peter Steinberger
fa689295c6 fix: resolve small triage issues 2026-05-04 07:38:42 +01:00
Peter Steinberger
a6d67ccf29 fix: log google meet realtime models 2026-05-04 06:03:53 +01:00
Peter Steinberger
b5d408cd69 feat: add rich Slack progress drafts 2026-05-04 05:38:56 +01:00
Peter Steinberger
a3c36a0931 fix: compact progress draft lines 2026-05-04 03:50:19 +01:00
Peter Steinberger
5d09b4b92c feat(agents): add tool progress detail modes 2026-05-04 01:35:27 +01:00
Vincent Koc
60cf8c79fe fix(mattermost): expose streaming config hints 2026-05-03 16:00:22 -07:00
Vincent Koc
d57b16ff81 fix(tlon): expose group invite allowlist 2026-05-03 15:15:58 -07:00
Vincent Koc
35f6071d8d fix(mattermost): accept streaming config 2026-05-03 14:45:05 -07:00
Peter Steinberger
66336bf7c8 fix: add trusted env proxy opt-in for web fetch 2026-05-03 22:35:30 +01:00
Vincent Koc
8beda86416 fix(channels): expose progress draft config hints 2026-05-03 14:21:57 -07:00
Peter Steinberger
c33e578554 feat: add channel progress drafts
Adds unified progress-draft streaming for chat channels, with docs and per-channel regressions.
2026-05-03 22:01:08 +01:00