Commit Graph

41332 Commits

Author SHA1 Message Date
Peter Steinberger
7f27c42ebd ci: embed Mantis desktop previews 2026-05-05 07:23:21 +01:00
Chunyue Wang
24bd0b212f fix(replay-history): drop trailing stream-error placeholder before provider send (#77287)
normalizeAssistantReplayContent rewrites empty assistant error turns into
a STREAM_ERROR_FALLBACK_TEXT sentinel to satisfy Bedrock Converse's
non-empty ContentBlock requirement for non-trailing turns. When that
sentinel is the trailing entry, prefill-strict providers reject the
request with "400 This model does not support assistant message prefill.
The conversation must end with a user message." and the session cannot
recover on its own.

Add a post-loop tail trim that drops trailing assistant turns whose
content is empty with stopReason "error" or zero-usage empty stop, or
carries only the sentinel text with the same synthetic provenance. A real
model reply whose content happens to equal the sentinel string is
preserved by requiring zero usage or stopReason "error" before dropping.
The trim catches both the in-memory rewrite shape and the sentinel
persisted to disk by session-file-repair.

Tests:
- pnpm test src/agents/pi-embedded-runner/replay-history.test.ts
- pnpm exec oxfmt --check --threads=1 CHANGELOG.md src/agents/pi-embedded-runner/replay-history.ts
  src/agents/pi-embedded-runner/replay-history.test.ts
- pnpm check:changed

Refs #77228
2026-05-05 14:14:01 +08:00
clawsweeper[bot]
cd66854b66 feat(cron): add agentId filtering to cron list (#77602)
Summary:
- This PR adds optional `agentId` filtering to `cron.list`, auto-fills it for agent tool calls, exposes `openclaw cron list --agent`, updates generated protocol clients, docs, changelog, tests, and prompt fixtures.
- Reproducibility: yes. The motivating behavior is source-reproducible on current main because cron tool, CLI, ... e list paths do not accept or apply `agentId`; the PR diff adds that path with focused regression coverage.

Automerge notes:
- Ran the ClawSweeper repair loop before final review.
- Included post-review commit in the final squash: chore: regenerate protocol schema after adding agentId to CronListParams
- Included post-review commit in the final squash: feat(cron): add agentId filtering to cron list

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

Prepared head SHA: 35b692bc97
Review: https://github.com/openclaw/openclaw/pull/77602#issuecomment-4375631700

Co-authored-by: zhanggttry <zhanggttry@163.com>
Co-authored-by: clawsweeper <274271284+clawsweeper[bot]@users.noreply.github.com>
2026-05-05 06:06:24 +00:00
Peter Steinberger
b489a62a06 docs: add GitHub activity helper to maintainer skill 2026-05-05 07:04:16 +01:00
Vincent Koc
a17d4371d1 feat(status): show uptime in chat status
Show compact Gateway process and host system uptime in chat /status output.
2026-05-04 22:52:00 -07:00
Kevin Lin
5a8ccb6fe0 fix: recover Slack channel restart after stop timeout (#77686)
* fix: recover Slack channel restart after stop timeout

* fix: keep recovery restart cancellable
2026-05-04 22:47:30 -07:00
Peter Steinberger
123f7a697d docs: update video generation timeout notes 2026-05-05 06:47:07 +01:00
Peter Steinberger
a34d4ef9d9 fix: normalize video generation fallbacks 2026-05-05 06:47:07 +01:00
Peter Steinberger
b4ff3aa73b fix: record full Mantis desktop smoke videos 2026-05-05 06:43:47 +01:00
Peter Steinberger
42a7d8485f docs: surface GitHub opener identity in maintainer skill 2026-05-05 06:39:41 +01:00
Chunyue Wang
31da1fe5b0 fix(auth-profiles): exclude format rejections from profile cooldown (#77280)
Merged via squash.

Prepared head SHA: f4188b4dc3
Co-authored-by: openperf <80630709+openperf@users.noreply.github.com>
Co-authored-by: openperf <80630709+openperf@users.noreply.github.com>
Reviewed-by: @openperf
2026-05-05 13:35:41 +08:00
Peter Steinberger
1c924c3c12 ci: link Mantis status reaction videos 2026-05-05 06:31:05 +01:00
Tianworld
478138e288 docs(windows): update GitHub connectivity notes (#53788)
Co-authored-by: Brad Groux <3053586+BradGroux@users.noreply.github.com>
2026-05-05 00:31:03 -05:00
Vincent Koc
177167c846 fix(video): recover generation parameter fallbacks 2026-05-04 22:26:58 -07:00
Iroh
f126f72d63 fix(windows): resolve Gmail helper PATHEXT shims
Resolve Gmail setup and watcher helper binaries through Windows PATH/PATHEXT before spawning, without executing where.exe during lookup. Cover gcloud, gog, and tailscale, including the documented CLI Gmail run path, and route long-lived gog .cmd/.bat shims through a pinned cmd.exe wrapper.

Co-authored-by: Iroh <175496729+Angfr95@users.noreply.github.com>
Co-authored-by: Brad Groux <3053586+BradGroux@users.noreply.github.com>
2026-05-05 00:21:34 -05:00
Peter Steinberger
6c8974f3f5 fix: harden async media completion delivery 2026-05-05 06:13:33 +01:00
Sally O'Malley
349ce0056d fix: rebuild sandbox skill prompts from sandbox workspace (#77661)
Signed-off-by: sallyom <somalley@redhat.com>
2026-05-05 01:13:21 -04:00
Vincent Koc
a52010be7d test(doctor): preserve facade loader mock exports 2026-05-04 22:08:43 -07:00
Vincent Koc
557c5bf705 test(live): soften OpenAI cache telemetry floor 2026-05-04 22:01:08 -07:00
Val Alexander
1d6de8da9f fix(ui): hide heartbeat acknowledgements
Suppress assistant HEARTBEAT_OK acknowledgements at the Control UI live-event and persisted-history render boundaries.

The persisted transcript case can include hidden thinking/reasoning blocks plus a final HEARTBEAT_OK text block, so the display filter now ignores hidden reasoning while preserving turns with visible non-text content.

Validation:
- pnpm test ui/src/ui/controllers/chat.test.ts ui/src/ui/chat/build-chat-items.test.ts
- pnpm exec oxfmt --check --threads=1 CHANGELOG.md docs/web/control-ui.md ui/src/ui/chat/build-chat-items.test.ts ui/src/ui/chat/build-chat-items.ts ui/src/ui/chat/heartbeat-display.ts ui/src/ui/controllers/chat.test.ts ui/src/ui/controllers/chat.ts
- git diff --check
- pnpm check:changelog-attributions
- Testbox: pnpm check:changed
- In-app browser preview confirmed HEARTBEAT_OK count 0 in the astra chat DOM
2026-05-04 23:59:28 -05:00
Vincent Koc
2de0113608 test(update): cover authenticated restart updates 2026-05-04 21:58:47 -07:00
pashpashpash
70f34bf177 Require real behavior proof for external PRs (#77622)
* ci: require real behavior proof for external PRs

* fix: tighten real behavior proof heuristics

* fix: reject test-only real behavior proof labels

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-05-05 05:45:30 +01:00
6607changchun
d02fbc6116 fix(sandbox): support Windows drive-letter bind sources
Accept drive-absolute Windows sandbox Docker bind sources in config and runtime validation while keeping blocked-path and allowed-root comparisons case-insensitive for Windows drive paths.

Also remove a stale WhatsApp setup import that blocked extension lint after the rebase.

Co-authored-by: 6607changchun <84566142+6607changchun@users.noreply.github.com>
Co-authored-by: Brad Groux <3053586+BradGroux@users.noreply.github.com>
2026-05-04 23:39:56 -05:00
Peter Steinberger
35266879de feat: add Mantis visual task video QA 2026-05-05 05:35:12 +01:00
Vincent Koc
b0f841ef37 fix(plugins): honor beta channel for auto installs 2026-05-04 21:33:46 -07:00
Vincent Koc
e03fe1e289 fix(telegram): reuse preview for long text finals (#77658)
* fix(telegram): reuse preview for long text finals

* test(qa): cover long telegram finals

* fix(qa): satisfy extension lint

* fix(qa): keep telegram long final fixture to two chunks

* test(telegram): cover three chunk finals

* fix(telegram): force long final preview boundary
2026-05-04 21:19:44 -07:00
Vincent Koc
3290cba1a6 docs: clarify local upgrade baseline specs 2026-05-04 21:15:12 -07:00
Vincent Koc
1c3b27718f ci: shard package upgrade survivor baselines 2026-05-04 21:15:12 -07:00
Peter Steinberger
a91c17c426 fix: explain missing git during plugin install 2026-05-05 05:14:09 +01:00
Bek
cf3ce08b91 fix: slack mention-gating thread participation 2026-05-05 05:11:56 +01:00
pickaxe
712aa96a8f docs: note plugin peer-link update repair 2026-05-05 05:04:22 +01:00
pickaxe
2e8761c5c1 fix(plugins): repair missing openclaw peer links on update 2026-05-05 05:04:22 +01:00
Peter Steinberger
0eb06caae3 fix: start configured generation providers 2026-05-05 05:03:54 +01:00
Vincent Koc
68a500c465 fix(whatsapp): normalize onboarding allowlist numbers
Normalize WhatsApp onboarding allowlist entries to digit-only WhatsApp IDs and reject invalid owner-phone inputs during prompt validation.
2026-05-04 20:59:01 -07:00
Vincent Koc
b546aa91e1 fix(update): authenticate restart health probes 2026-05-04 20:14:02 -07:00
Kelaw - Keshav's Agent
a373468d82 fix: recover missing Codex bound threads 2026-05-05 04:04:58 +01:00
Peter Steinberger
761e668acf fix: recover stuck diagnostic sessions safely 2026-05-05 04:01:37 +01:00
兰之
c739088d62 fix(agents): enforce exact skill path from <available_skills> [AI-assisted] (#74161)
Summary:
- The PR updates agents skill prompt guidance to require exact `<location>` paths for single- and multi-skill selection, adds prompt assertions, and records the fix in the changelog.
- Reproducibility: yes. Static source reproduction is enough: current main lacks the exact-`<location>` guard  ... illsSection()`, while the PR diff adds it to both selection branches and asserts the resulting prompt text.

Automerge notes:
- PR branch already contained follow-up commit before automerge: fix: enforce exact skill paths for all skill matches

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

Prepared head SHA: 743c9840c1
Review: https://github.com/openclaw/openclaw/pull/74161#issuecomment-4341488109

Co-authored-by: tianguicheng <tianguicheng@xiaomi.com>
Co-authored-by: sallyom <somalley@redhat.com>
2026-05-05 02:51:31 +00:00
Bek
58c4f9e190 fix: slack keep resumed sends in thread (#77620)
carry agent thread context into the message tool so resumed Slack parent sends inherit the ambient thread when no explicit threadId is provided
2026-05-04 22:39:46 -04:00
saram ali
978bc53e80 fix(gateway): skip IPv6 loopback binding on Windows (#69701)
Bind the default loopback gateway listener only to `127.0.0.1` on Windows so libuv dual-stack `::1` behavior cannot wedge localhost HTTP requests.

Also keeps non-Windows dual-loopback behavior covered, replaces the redundant Windows passthrough test with guard coverage, and adds the required changelog entry.

Fixes #69674.

Tests:
- pnpm exec oxfmt --check --threads=1 CHANGELOG.md src/gateway/net.ts src/gateway/net.test.ts
- pnpm test src/gateway/net.test.ts
- pnpm check:changed
- GitHub required checks: green

Thanks @SARAMALI15792.

Co-authored-by: saram ali <140950904+SARAMALI15792@users.noreply.github.com>
Co-authored-by: Brad Groux <3053586+BradGroux@users.noreply.github.com>
2026-05-04 20:45:01 -05:00
Vincent Koc
30bb88d80e test(live): prefer stable OpenAI cache model 2026-05-04 18:40:23 -07:00
Juan Flores
46a04099a4 fix(infra): skip POSIX tmp path on Windows (#73533)
Skip the POSIX `/tmp/openclaw` preferred path on Windows so temp files land under the trusted `os.tmpdir()`/`%TEMP%`-based `openclaw-<uid>` path instead of `C:\tmp\openclaw`.

Add regression coverage for Windows path selection and the WhatsApp media temp directory integration, plus a changelog entry.

Fixes #60713.

Tests:
- pnpm exec oxfmt --check --threads=1 CHANGELOG.md src/infra/tmp-openclaw-dir.ts src/infra/tmp-openclaw-dir.test.ts extensions/whatsapp/src/media.test.ts
- pnpm test src/infra/tmp-openclaw-dir.test.ts extensions/whatsapp/src/media.test.ts
- pnpm check:changed

Thanks @juan-flores077.

Co-authored-by: Juan Flores <112629487+juan-flores077@users.noreply.github.com>
Co-authored-by: Brad Groux <3053586+BradGroux@users.noreply.github.com>
2026-05-04 20:32:36 -05:00
Vincent Koc
04b7e4894d docs(channels): add Socket vs HTTP comparison and explain shared URL fields
The Slack docs jumped straight from intro into the Quick Setup tabs
without telling readers when to pick each transport. Add a Choosing
Socket Mode or HTTP Request URLs section above Quick Setup with a
concern-by-concern table (public URL, outbound network, tokens, dev
laptops, scaling, multi-account, slash command transport, signing,
recovery) plus a Note pointing at the right default for each shape.

Also add an Info block under the HTTP Quick Setup manifest explaining
why the manifest carries three url fields (slash_commands[].url,
event_subscriptions.request_url, interactivity.request_url) — Slack's
manifest schema requires them spelled out separately even though
OpenClaw routes by payload type, and slash commands silently no-op
without their url field in HTTP mode.
2026-05-04 18:30:29 -07:00
Peter Steinberger
25b30c9520 fix: honor embedded runtime tool allowlists (#77609)
* fix: honor embedded runtime tool allowlists

* fix: preserve plugin allowlist filtering

* fix: gate bundled lsp allowlists
2026-05-05 02:29:36 +01:00
Peter Steinberger
c84b7cbffc ci(release): speed up focused release reruns 2026-05-05 02:28:22 +01:00
Vincent Koc
0131343db8 docs(doctor): clarify configured plugin repair (#77613) 2026-05-04 18:16:29 -07:00
Vincent Koc
b062bb670d docs(channels): inline Slack manifest into Quick Setup with Recommended/Minimal variants
The Quick Setup steps in docs/channels/slack.md previously sent users to
the `#manifest-and-scope-checklist` anchor lower on the page to copy the
manifest, breaking the copy-paste flow. Pull the manifest inline as a
Mintlify <CodeGroup> for both Socket Mode and HTTP Request URLs tabs and
add a Minimal variant for workspaces that restrict scopes (drops
files:*, reactions:*, pins:*, mpim:*, emoji:read, usergroups:read while
keeping DMs, channel/group history, mentions, App Home, and slash
commands). Recommended matches extensions/slack/src/setup-shared.ts.
Existing Manifest and scope checklist section stays as the canonical
per-scope reference.

Cross-link from docs/concepts/qa-e2e-automation.md so QA maintainers see
the production manifest reference, while keeping the QA Driver/SUT pair
of manifests inline (the lane intentionally needs two distinct apps so
its shape is different from a single-app production install).
2026-05-04 18:16:15 -07:00
Peter Steinberger
a78bb7832c chore(config): refresh merged baseline hash 2026-05-05 02:15:42 +01:00
Peter Steinberger
7168896fdf fix(agents): abort post-compaction loops out-of-band 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