Commit graph

6856 commits

Author SHA1 Message Date
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
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
Peter Steinberger
cbcca6e55f
ci: use Crabbox media previews for Mantis 2026-05-05 07:53:47 +01:00
Peter Steinberger
ea791b3792 fix: prune orphan session artifacts 2026-05-05 07:40:09 +01:00
Peter Steinberger
7f27c42ebd
ci: embed Mantis desktop previews 2026-05-05 07:23:21 +01: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
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
Peter Steinberger
123f7a697d
docs: update video generation timeout notes 2026-05-05 06:47:07 +01: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
Peter Steinberger
6c8974f3f5
fix: harden async media completion delivery 2026-05-05 06:13:33 +01: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
Peter Steinberger
35266879de
feat: add Mantis visual task video QA 2026-05-05 05:35:12 +01: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
Peter Steinberger
761e668acf
fix: recover stuck diagnostic sessions safely 2026-05-05 04:01:37 +01: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
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
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
Eduardo Piva
2a702f927f feat(agents): wire post-compaction loop guard into pi-embedded-runner
Arms the guard at each of the three compaction-success points in
run.ts and observes tool-call outcomes from the diagnostic session
state's toolCallHistory after each attempt. Aborts with
PostCompactionLoopPersistedError when the same (tool, args, result)
triple repeats windowSize times within the post-compaction window.

Refs #77474
2026-05-05 02:15:42 +01:00
Peter Steinberger
b17bb63b9e fix: repair stale session route state in doctor 2026-05-05 01:51:23 +01:00
Vincent Koc
967c0981e3
docs(help,security): cross-reference auth list and trusted-env-proxy
Two missing cross-references uncovered by the 24-hour doc audit:

- docs/help/faq-models.md: link to `openclaw models auth list` from the
  "What is an auth profile?" accordion. The command was added in
  23eb44b045 but the FAQ never pointed users at it.
- docs/security/network-proxy.md: list `tools.web.fetch.useTrustedEnvProxy`
  in Related Proxy Terms. The opt-in is fully documented in
  docs/tools/web-fetch.md but the proxy reference page omitted the
  cross-reference, leaving the page incomplete for proxy-state triage.
2026-05-04 17:43:09 -07:00
Peter Steinberger
2d8fa23447
fix(agents): mediate async media completions 2026-05-05 01:42:50 +01:00
Vincent Koc
b38e674c9f
docs(cli): document gateway restart --safe in command options
The `gateway restart` Command-options accordion only listed `--force`,
`--wait`, and `--json` even though `--safe` is a fully-supported flag
(documented in the prose at line 112 and rejected by lifecycle.ts when
combined with --force/--wait). Add --safe to the option list and a
Lifecycle-behavior bullet that explains the preflight-defer behavior
plus its mutual exclusion with --force and --wait, matching
src/cli/daemon-cli/lifecycle.ts:153-156.
2026-05-04 17:38:32 -07:00
Sarah Fortune
d6e991db49
Add instructions for how to setup slack for QA tests (#77606) 2026-05-04 17:38:16 -07: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
pashpashpash
b2c3202a15
Surface Codex usage-limit reset details in chat replies (#77557)
* fix(codex): surface usage limit reset details

* fix(codex): satisfy extension lint

* fix: surface codex runtime failures in tool-only replies
2026-05-05 09:00:39 +09:00
Kevin Lin
cb9824d6b4
test: add slack onboarding channel smoke (#77575) 2026-05-04 16:51:34 -07:00
praveen9354
0677a4f8b3
fix(dashboard): guide manual token auth fallback
Summary:
- Add a redaction-safe dashboard fallback hint when tokenized URL delivery fails.
- Document the manual auth path and update the changelog.

Verification:
- PR CI exact head 48ccb97c08 green for relevant CI/security checks.
- pnpm test src/commands/dashboard.links.test.ts src/commands/dashboard.test.ts
- pnpm exec oxfmt --check --threads=1 src/commands/dashboard.ts src/commands/dashboard.links.test.ts
- pnpm format:docs:check
- pnpm docs:check-mdx
- pnpm docs:check-i18n-glossary
- targeted markdownlint for docs/cli/dashboard.md and docs/web/dashboard.md
2026-05-04 18:39:25 -05:00
Peter Steinberger
15d3fd83bb fix(openai-codex): match codex replay identity 2026-05-05 00:33:23 +01:00
mkdev11
27e467ad23 fix(openai-codex): avoid stale Responses replay state 2026-05-05 00:33:23 +01:00
Peter Steinberger
ab032675ce
fix: simplify gateway model startup modes 2026-05-05 00:07:11 +01:00
Peter Steinberger
03f7e26d54
fix: log gateway model mode defaults 2026-05-04 23:53:05 +01: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
Peter Steinberger
a167acee67
fix(gateway): route watch trace spam to artifacts 2026-05-04 23:41:14 +01:00
Peter Steinberger
f8e080386d
fix(gateway): quiet benchmark watch output 2026-05-04 23:36:18 +01:00
Peter Steinberger
35e48a049b
fix: enable sync io tracing in gateway watch 2026-05-04 23:26:25 +01:00