Commit Graph

41362 Commits

Author SHA1 Message Date
Peter Steinberger
f3d531439b feat: add reusable Mantis evidence publishing 2026-05-05 09:02:04 +01:00
Vincent Koc
5a0d6c7ad8 fix(gateway): keep reset and refresh paths responsive (#77701)
* fix(hooks): keep session memory slugging off reset hot path

* fix(hooks): run session memory capture asynchronously

* fix(cli): avoid stuck gateway command exits

* fix(gateway): cache empty read-only model catalog

* fix(doctor): stop stale TUI clients for WhatsApp responsiveness
2026-05-05 00:59:13 -07:00
Frank Yang
003bed0c03 fix(fireworks): pin Kimi thinking policy off
Add a Fireworks-owned thinking policy for Kimi models so K2.5/K2.6 only expose `off`, keep the bundled provider-policy artifact aligned, and keep request payloads on Fireworks-accepted `thinking: disabled` while stripping rejected `reasoning*` fields.

Refs #74289.
2026-05-05 15:52:56 +08:00
Shakker
89f75263c5 fix: avoid control regex in handoff diagnostics 2026-05-05 08:43:35 +01:00
Shakker
3f9e64869a docs: credit restart handoff diagnostics 2026-05-05 08:38:01 +01:00
Shakker
0720c1f77d fix: sanitize restart handoff diagnostics 2026-05-05 08:38:00 +01:00
Shakker
6d485a9f36 feat: show restart handoffs in doctor 2026-05-05 08:38:00 +01:00
Shakker
9b0afd8141 feat: show restart handoffs in gateway status 2026-05-05 08:38:00 +01:00
Shakker
3e53580d63 refactor: format restart handoff diagnostics 2026-05-05 08:38:00 +01:00
Shakker
4a24b6dbc4 fix: bound restart handoff ttl 2026-05-05 08:38:00 +01:00
Shakker
acb0acd8dd fix: add gateway supervisor restart handoff 2026-05-05 08:38:00 +01:00
Ayu
f9da484365 security: harden gateway container privileges
Adds cap_drop and no-new-privileges hardening for the bundled gateway Docker Compose services.\n\nThanks @VintageAyu.
2026-05-05 00:37:26 -07:00
Chunyue Wang
121ac44fa8 docs(changelog): relocate #77046 and #77280 entries from 2026.5.3 to Unreleased (#77728)
Merged via squash.

Prepared head SHA: 1bd228f6b6
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 15:18:20 +08:00
Peter Steinberger
1b81ed6675 docs: reorder unreleased changelog 2026-05-05 08:14:38 +01:00
Ayaan Zaidi
5e9258d0a8 fix: expose ollama thinking profile before activation (#77617) (thanks @yfge) 2026-05-05 12:43:52 +05:30
yfge
7a9efc1389 fix: expose ollama thinking profile before activation
Fixes openclaw/openclaw#77612
2026-05-05 12:43:52 +05:30
Vincent Koc
b8f9137d31 test(gateway): preserve dispatch timers in waiter 2026-05-05 00:07:42 -07:00
Vincent Koc
e2eb5649d1 test(gateway): keep startup context timer live 2026-05-05 00:04:02 -07:00
Peter Steinberger
18405c1acf docs: document cache-friendly activity helper 2026-05-05 08:03:14 +01:00
Peter Steinberger
c2f86598a3 ci: install ffmpeg for Mantis media previews 2026-05-05 08:03:01 +01:00
Ayaan Zaidi
11d2bb19dc fix: avoid impossible device token rotation advice (#77688) (thanks @Conan-Scott) 2026-05-05 12:32:23 +05:30
Clawdbot
eee69aa1bf docs(changelog): note doctor device pairing advice fix 2026-05-05 12:32:23 +05:30
Clawdbot
f5f11b8d0e fix(doctor): avoid impossible device token rotation advice 2026-05-05 12:32:23 +05:30
Peter Steinberger
cbcca6e55f ci: use Crabbox media previews for Mantis 2026-05-05 07:53:47 +01:00
Peter Steinberger
0e7073ad89 docs: filter maintainer-owned triage noise 2026-05-05 07:52:29 +01:00
Peter Steinberger
ecbf9f06e9 test: cover GitHub activity helper 2026-05-05 07:48:29 +01:00
Chunyue Wang
043cb32aab fix(session-file-repair): drop null-role message entries instead of preserving them (#77288)
type:"message" entries with a null, missing, or blank role cannot be
replayed to any provider — every router branches on message.role. The
auto-repair pass was passing them through unchanged, relocating the
corruption from the original file into the post-repair file (#77228
reported 935+ null-role entries surviving the pass).

Add isStructurallyInvalidMessageEntry ahead of the existing rewrite
predicates. Invalid message envelopes are counted as droppedLines and
skipped; non-message envelope types (summary, custom, …) are unaffected.
The .bak-* backup preserves the original bytes for postmortem before any
entries are dropped.

Tests:
- pnpm test src/agents/session-file-repair.test.ts
- pnpm exec oxfmt --check --threads=1 CHANGELOG.md src/agents/session-file-repair.ts src/agents/session-file-repair.test.ts
- pnpm check:changed

Refs #77228
2026-05-05 14:46:42 +08:00
Peter Steinberger
ea791b3792 fix: prune orphan session artifacts 2026-05-05 07:40:09 +01:00
Peter Steinberger
27b96ae049 perf: reduce GitHub activity cache misses 2026-05-05 07:30:56 +01:00
Ayaan Zaidi
eab494ca6a fix: cache session list model resolution (#77650) (thanks @ragesaq) 2026-05-05 11:56:49 +05:30
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