Commit Graph

11752 Commits

Author SHA1 Message Date
Vincent Koc
2b396131e4 test(qa-lab): add bus tool trace scenario 2026-05-22 20:12:49 +08:00
Peter Steinberger
9914e25638 fix: opt acpx out of bundled runtime deps 2026-05-22 12:56:10 +01:00
Peter Steinberger
8b0537c409 test: refresh shrinkwrap after rebase 2026-05-22 12:56:10 +01:00
Peter Steinberger
fcecbd8655 fix: opt codex out of bundled runtime deps 2026-05-22 12:56:10 +01:00
Peter Steinberger
976da39038 fix: publish explicit plugin bundled dependencies 2026-05-22 12:56:10 +01:00
Peter Steinberger
3784270670 chore: refresh shrinkwrap metadata 2026-05-22 12:56:10 +01:00
Peter Steinberger
de022bb69d feat: bundle plugin npm dependencies 2026-05-22 12:56:10 +01:00
Vincent Koc
0d28040092 fix: honor overrides in npm shrinkwrap generation 2026-05-22 12:56:10 +01:00
Vincent Koc
b2dc4492f0 chore: refresh shrinkwrap for Testbox npm 2026-05-22 12:56:10 +01:00
Peter Steinberger
b6c8807ca0 chore: add shrinkwrap to plugin npm packages 2026-05-22 12:56:10 +01:00
Vincent Koc
fda0baf98d test(qa-lab): report live transport coverage lanes 2026-05-22 19:31:32 +08:00
clawsweeper[bot]
77a1b7625d fix: preserve Google Gemini 3 cron thinking (#85300)
Summary:
- The branch adds a Google provider thinking-policy resolver and opt-in profile flag, updates shared thinking validation and cron/proof-policy tests, and adjusts ClawSweeper proof parsing.
- Reproducibility: yes. source-reproducible: current main applies the generic off-only profile before provider ... figured thinking through that resolver. I did not execute a live systemd cron run in this read-only review.

Automerge notes:
- PR branch already contained follow-up commit before automerge: fix: preserve Google Gemini 3 cron thinking

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

Prepared head SHA: a6cd2e826e
Review: https://github.com/openclaw/openclaw/pull/85300#issuecomment-4517662575

Co-authored-by: Neerav Makwana <261249544+neeravmakwana@users.noreply.github.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: clawsweeper <274271284+clawsweeper[bot]@users.noreply.github.com>
Co-authored-by: clawsweeper[bot] <274271284+clawsweeper[bot]@users.noreply.github.com>
Approved-by: takhoffman
Co-authored-by: takhoffman <781889+takhoffman@users.noreply.github.com>
2026-05-22 11:21:57 +00:00
Peter Steinberger
c9a0f03dd7 feat(plugin-sdk): add generic channel poll sender (#85299)
* feat(plugin-sdk): add generic channel poll sender

* test(channels): follow durable capability list

* test(channels): update poll capability expectations

* fix(channels): normalize poll receipt parts
2026-05-22 12:16:07 +01:00
Krzysztof Probola
8523e0930e fix(codex): keep interrupted turns visible-answer eligible (#84494)
* fix(codex): keep interrupted turns visible-answer eligible

* docs(changelog): note codex interrupted recovery

---------

Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
2026-05-22 18:22:20 +08:00
Vincent Koc
beccdde5bf fix(qa): isolate patched suite scenarios 2026-05-22 10:59:23 +02:00
吴杨帆
a80476fbe9 fix(telegram): preserve fenced code languages (#85209)
Co-authored-by: wuyangfan <yangfan.wu@succaiss.com>
2026-05-22 09:59:06 +01:00
Sergio Cadavid
1b0a5d1627 fix(openai): preserve codex gpt-5.5 image input (#85095) 2026-05-22 09:58:43 +01:00
Noah
fb61de8c88 fix(gemini): strip sub-second precision from web_search time_range_filter (#85071)
* fix(gemini): strip sub-second precision from web_search time_range_filter

Gemini's google_search.time_range_filter rejects any non-zero fractional
seconds with "[FIELD_INVALID] Granularity of nano is not supported", even
though the underlying google.protobuf.Timestamp type accepts 0/3/6/9
fractional digits per its public spec. The grounding endpoint enforces a
stricter rule than the underlying type.

Date.prototype.toISOString() always emits millisecond precision, so every
freshness call (and any date_after/date_before call hitting the "now"
fallback for endTime) failed with the above 400 after #66498's fix shipped
in 2026.5.19.

Introduce toGeminiTimeRangeTimestamp() which strips the fractional-second
component before serializing, and route all four timeRangeFilter timestamp
sites through it. isoDateExclusiveEnd happens to produce all-zero
fractional today (so Gemini accepts it), but routing it through the helper
keeps the contract uniform and resilient to future changes.

Why this slipped past the original CI: the existing freshness test used
vi.setSystemTime(new Date("2026-04-15T12:00:00Z")), which always
serializes back as ".000Z" — the one fractional form Gemini happens to
accept. Wall-clock new Date() in production always has non-zero ms. The
new test uses setSystemTime(new Date("2026-04-15T12:00:00.123Z")) to
exercise the realistic case.

Verified empirically against the live Gemini REST API:
  ".123Z" → 400 "Granularity of nano is not supported"
  ".000Z" → grounded content (the one fractional form accepted)
  "Z"     → grounded content

Fixes #85061.

* test(gemini): use realistic non-zero ms in existing freshness test

The original test set the fake clock to a moment with zero fractional
seconds, so toISOString() produced ".000Z" — the one fractional form
Gemini's google_search.time_range_filter happens to accept. Wall-clock
new Date() in production produces non-zero ms, which Gemini rejects.

Bumping the fake time to .123Z makes the existing test exercise the
realistic case alongside the dedicated regression test.

---------

Co-authored-by: Noah R <Noerr@users.noreply.github.com>
2026-05-22 09:58:29 +01:00
Vincent Koc
9bd97d2c60 test(qa-lab): remove generic evidence wording 2026-05-22 16:54:04 +08:00
Pavan Kumar Gondhi
ea5f2abb48 fix(integrations): enforce channel read target allowlists [AI] (#84982)
* fix: enforce message read target allowlists

* addressing review-skill

* addressing review-skill

* addressing review-skill

* addressing review-skill

* addressing codex review

* addressing codex review

* addressing codex review

* addressing ci

* addressing ci

* docs: add changelog entry for PR merge
2026-05-22 14:11:06 +05:30
Peter Steinberger
23961fe472 fix(codex): bound app-server client-close retries
Co-authored-by: VACInc <3279061+VACInc@users.noreply.github.com>
2026-05-22 09:37:35 +01:00
Peter Steinberger
e201fbfbd2 fix: preserve xAI web search credential fallback (#85182) 2026-05-22 08:49:53 +01:00
fuller-stack-dev
27088c6919 fix: use active agent auth for xai web search 2026-05-22 08:49:53 +01:00
fuller-stack-dev
65471a2da6 feat: add xai oauth web search and provider timeouts 2026-05-22 08:49:53 +01:00
Sarah Fortune
49e3f8c3ee fix(models) Discord model picker doesn't list all models (#85138)
* Add pagination to the discord model picker

* Ensure current model is shown as selected in the picker when its first loaded
2026-05-21 23:50:13 -07:00
Alex Knight
d0a74dbfbe fix codex memory flush tool surface (#85220)
Co-authored-by: Alex Knight <15041791+amknight@users.noreply.github.com>
2026-05-22 16:23:25 +10:00
Andy Ye
03125c8e13 Validate Codex app-server command overrides (#84417)
Summary:
- The PR rejects Codex app-server command overrides that embed Node/package-manager inline arguments, adds matching doctor diagnostics, regression tests, and a changelog entry.
- Reproducibility: yes. for the scoped malformed override path: current main passes the combined command strin ... ix resolver/doctor live output. I did not establish a live Windows npm-global managed-startup reproduction.

Automerge notes:
- PR branch already contained follow-up commit before automerge: Validate Codex app-server command overrides

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

Prepared head SHA: 966bcd6617
Review: https://github.com/openclaw/openclaw/pull/84417#issuecomment-4494295224

Co-authored-by: Andy Ye <35905412+TurboTheTurtle@users.noreply.github.com>
Co-authored-by: clawsweeper <274271284+clawsweeper[bot]@users.noreply.github.com>
Co-authored-by: clawsweeper[bot] <274271284+clawsweeper[bot]@users.noreply.github.com>
Approved-by: takhoffman
Co-authored-by: takhoffman <781889+takhoffman@users.noreply.github.com>
2026-05-22 05:39:02 +00:00
Alex Knight
cc4e30b3d9 fix(codex): extend message tool timeout (#85216)
* fix(codex): extend message tool timeout

---------

Co-authored-by: Alex Knight <15041791+amknight@users.noreply.github.com>
2026-05-22 15:36:25 +10:00
Josh Avant
b010852dc6 fix(telegram): dedupe replayed message dispatches (#85208)
* Fix Telegram dispatch replay dedupe

* Add changelog for Telegram dispatch dedupe

* Persist Telegram replay dedupe at dispatch start
2026-05-21 22:14:16 -07:00
Kevin Lin
1008b8213b fix(slack): keep approvals in app conversation threads
* fix(slack): keep plugin approvals in app conversation threads

* fix(slack): preserve plugin approval routing

* fix(slack): keep suppression typing aligned

* fix(slack): suppress native dm approval fallback

* fix(slack): suppress stored native approval fallback
2026-05-21 21:51:34 -07:00
Kaspre
5f0bec4479 fix(agent): await local agent_end hooks (#85007)
Summary:
- The PR adds an awaited `agent_end` helper, uses it for no-channel local CLI and Codex app-server terminal pa ... erves fire-and-forget behavior for channel-backed paths, and updates docs, changelog, and regression tests.
- Reproducibility: yes. by source inspection. Current main calls `runAgentHarnessAgentEndHook` without awaiting in local CLI and Codex terminal paths, and the PR's pending-hook tests encode the failure and desired split.

Automerge notes:
- PR branch already contained follow-up commit before automerge: fix(agents): await local agent_end hooks
- PR branch already contained follow-up commit before automerge: test: fix agent_end hook helper fixture
- PR branch already contained follow-up commit before automerge: ci: retry security checkout
- PR branch already contained follow-up commit before automerge: ci: allowlist qa-lab lifecycle fixtures
- PR branch already contained follow-up commit before automerge: fix CLI channel agent_end delivery
- PR branch already contained follow-up commit before automerge: ci: drop stale qa-lab deadcode entries

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

Prepared head SHA: 97b31379d7
Review: https://github.com/openclaw/openclaw/pull/85007#issuecomment-4509911851

Co-authored-by: Kaspre <kaspre@gmail.com>
Co-authored-by: clawsweeper <274271284+clawsweeper[bot]@users.noreply.github.com>
Co-authored-by: clawsweeper[bot] <274271284+clawsweeper[bot]@users.noreply.github.com>
Approved-by: takhoffman
Co-authored-by: takhoffman <781889+takhoffman@users.noreply.github.com>
2026-05-22 04:12:22 +00:00
WhatsSkiLL
7dc2e50ac3 fix(channels): bypass debounce for bare abort triggers [AI-assisted] (#83348)
Summary:
- The PR changes shared, Feishu, Mattermost, Microsoft Teams, and WhatsApp inbound debounce predicates so bare abort text bypasses debounce, then adds focused tests and a changelog entry.
- Reproducibility: yes. source-level. Current main sends bare `stop`, `abort`, and `wait` through a `hasContro ... ()` debounce gate, while the existing abort-aware detector and trigger set already recognize those phrases.

Automerge notes:
- PR branch already contained follow-up commit before automerge: fix(channels): bypass debounce for bare abort triggers [AI-assisted]
- PR branch already contained follow-up commit before automerge: fix(clawsweeper): address review for automerge-openclaw-openclaw-8334…

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

Prepared head SHA: c96bf84270
Review: https://github.com/openclaw/openclaw/pull/83348#issuecomment-4473176095

Co-authored-by: IWhatsskill <284122573+IWhatsskill@users.noreply.github.com>
Co-authored-by: clawsweeper <274271284+clawsweeper[bot]@users.noreply.github.com>
Co-authored-by: clawsweeper[bot] <274271284+clawsweeper[bot]@users.noreply.github.com>
Approved-by: takhoffman
Co-authored-by: takhoffman <781889+takhoffman@users.noreply.github.com>
2026-05-22 04:09:33 +00:00
NVIDIAN
ddd3d69b86 fix(codex): unsubscribe app-server thread after runs (#84969)
Co-authored-by: ai-hpc <mail.speedy.hpc@hotmail.com>
2026-05-22 04:39:35 +01:00
Josh Avant
b8e9ab9385 fix(codex): surface native compaction failures (#85160)
* fix(codex): surface native compaction failures

* docs: add changelog for codex compaction fix

* test: align compaction failure fixtures
2026-05-21 19:41:54 -07:00
Vincent Koc
60d200f797 fix(codex): make post-tool raw assistant timeout configurable (#84974)
* fix(codex): make post-tool raw assistant timeout configurable

* docs(codex): align post-tool assistant timeout docs

* docs(changelog): move codex timeout note to unreleased

---------

Co-authored-by: 0x505badc0de <32790662+rozmiarD@users.noreply.github.com>
2026-05-22 09:39:38 +08:00
Josh Avant
1f9ebb9dda Fix Matrix configured two-person room routing (#85137)
* Fix Matrix configured room DM routing

* Add Matrix room routing changelog
2026-05-21 17:40:17 -07:00
Kevin Lin
7f499643b2 enhance(slack): deliver native plugin approvals (#85062)
* fix(slack): deliver native plugin approvals

* fix(slack): deliver plugin approvals with native UI

* docs: defer slack plugin approval docs
2026-05-21 17:31:06 -07:00
Kevin Lin
777a113973 fix(codex): await computer use elicitation bridge (#85117)
* fix(codex): bridge computer use elicitations

* fix(codex): preserve computer use approval boundary

* fix(codex): await app-server elicitation bridge
2026-05-21 17:17:46 -07:00
Gio Della-Libera
bc9e601491 fix: allow provider timeout overlays (#83990)
* fix: allow provider timeout overlays

* test: fix provider overlay fixture types
2026-05-21 17:10:32 -07:00
Vincent Koc
f015c3ff52 test(qa-lab): tag live-only runtime sentinels 2026-05-22 07:42:09 +08:00
Vincent Koc
fad1c8a071 test(qa-lab): add long-context watchdog scenario 2026-05-22 07:16:35 +08:00
Peter Steinberger
e2c92be90b chore(release): bump version to 2026.5.21 2026-05-22 00:09:45 +01:00
Josh Avant
ba06376c79 fix: harden codex sandbox execution
Harden the Codex app-server native execution bridge for OpenClaw sandboxed runs. The change keeps core sandbox policy in OpenClaw while exposing the process, filesystem, and HTTP relay behavior Codex needs inside a scoped exec server.

The large exec-server/test files were split into focused modules before landing, and the PR was rebased onto current main with focused tests, Testbox changed checks, CI, and Codex autoreview green.

Co-authored-by: joshavant <830519+joshavant@users.noreply.github.com>
2026-05-21 23:47:32 +01:00
Josh Avant
7cda26aa6c Handle Codex turns missing completion (#85107)
* fix(codex): handle missing turn completion

* docs: add changelog for Codex completion fix
2026-05-21 15:02:17 -07:00
Peter Steinberger
75a011977d fix(qa): accept Telegram no-reply timeout details 2026-05-21 22:45:25 +01:00
Peter Steinberger
cabb55380f feat(plugin-sdk): add session entry workflow helpers
Co-authored-by: Eduardo Piva <efpiva@gmail.com>
2026-05-21 22:41:45 +01:00
Peter Steinberger
26e64bda14 fix(whatsapp): update baileys dependency 2026-05-21 22:20:09 +01:00
100menotu001
f52db027a0 fix(discord): log component registry error details
Log structured details when Discord persistent component registry state falls back after a store failure.

- Format Error name, message, stack, and cause metadata at the Discord registry warning call site.
- Forward plugin runtime logger metadata to the underlying child logger.
- Add focused regression coverage for the Discord fallback warning and runtime logging adapter.
- Add changelog credit for @100menotu001.

Fixes #84185.

Co-authored-by: OpenClaw Contributor <100menotu001@users.noreply.github.com>
Co-authored-by: Craig <froelich@craigs.mac.studio.froho>
2026-05-21 22:13:14 +01:00
100menotu001
0212188cb6 fix(discord): preserve reusable presentation buttons
Preserve `reusable` for portable message presentation buttons and carry it through Discord component registration so repeatable callbacks stay available after a successful interaction.

Also keeps `reusable` through legacy presentation-to-interactive conversion and documents the user-visible change in the changelog.

Verification:
- `pnpm test src/interactive/payload.test.ts extensions/discord/src/shared-interactive.test.ts extensions/discord/src/components.test.ts -- --reporter=verbose`
- `git diff --check`
- `AUTOREVIEW_AUTO_TESTS=0 .agents/skills/autoreview/scripts/autoreview --mode local`
- PR CI at `52f25221b3e01f3255d8df37df73d0357ab7410b`: all completed checks green/skipped/neutral except pending CodeQL `Security High (mcp-process-tool-boundary)` at time auto-merge was armed.

Co-authored-by: OpenClaw Contributor <100menotu001@users.noreply.github.com>
2026-05-21 22:02:16 +01:00
clawsweeper[bot]
5f5e3b4511 Fix Ollama cloud API key discovery (#85091)
Summary:
- The branch teaches Ollama discovery to use resolved `discoveryApiKey` values for non-local cloud providers, preserves local marker auth, and adds focused provider-discovery regressions plus a changelog entry.
- Reproducibility: yes. from source inspection: current main can return the `OLLAMA_API_KEY` marker instead of ... ential for documented Ollama Cloud config. I did not run executable tests because this review is read-only.

Automerge notes:
- PR branch already contained follow-up commit before automerge: ci: allowlist qa lab fixtures
- PR branch already contained follow-up commit before automerge: Fix Ollama cloud API key discovery
- PR branch already contained follow-up commit before automerge: fix(clawsweeper): address review for automerge-openclaw-openclaw-8503…

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

Prepared head SHA: cb6b658819
Review: https://github.com/openclaw/openclaw/pull/85091#issuecomment-4512647237

Co-authored-by: Anup Sharma <anupnewsmail@gmail.com>
Co-authored-by: clawsweeper <274271284+clawsweeper[bot]@users.noreply.github.com>
Co-authored-by: clawsweeper[bot] <274271284+clawsweeper[bot]@users.noreply.github.com>
Approved-by: takhoffman
Co-authored-by: takhoffman <781889+takhoffman@users.noreply.github.com>
2026-05-21 20:54:59 +00:00