Commit Graph

52643 Commits

Author SHA1 Message Date
Peter Steinberger
f7e2d9bb47 ci(release): port 2026.5.25 release gate fixes 2026-05-26 21:19:51 +01:00
Peter Steinberger
ad71c427fa chore: update tool display snapshot 2026-05-26 16:17:51 -04:00
狼哥
4a85cd76f6 fix(web-search): keep runtime legacy merge out of validation (#86818)
Runtime-injected web_search provider config from plugins.entries.<plugin>.config.webSearch now stays available to provider execution without being validated as user-authored legacy tools.web.search.<provider> config.

Co-authored-by: luoyanglang <hanwanlonga@gmail.com>
2026-05-26 21:15:44 +01:00
Vincent Koc
3127808473 fix(cli): default logs to local timestamps (#85387) 2026-05-26 21:14:47 +01:00
Peter Steinberger
8788ae1a8e fix(agents): dedupe transcripts tool display config 2026-05-26 16:12:03 -04:00
Mark
e070519f43 fix(updater): exclude prerelease tags from stable git channel (#86559)
Preserve legacy numeric stable git tags while excluding named semver prerelease tags from stable git channel detection and status display.

Thanks @goldmar.
2026-05-26 21:11:38 +01:00
Chunyue Wang
c430fcde1c fix(agents): memoize session lock owner args
Memoize owner process argv lookups per PID during `cleanStaleLockFiles`, and yield between lock entries so startup cleanup does not monopolize the event loop while inspecting many session locks.

This keeps lock classification semantics unchanged while avoiding repeated synchronous process-args reads for lock clusters owned by the same PID, especially the Windows PowerShell path.

Fixes #86509.

Verification:
- `git diff --check origin/main...HEAD`
- focused TSX harness against the current-main merge result: `session-lock memo regression harness passed`

Thanks @openperf.

Co-authored-by: openperf <16864032@qq.com>
2026-05-26 21:10:19 +01:00
Shakker
0f49bbbeb2 fix: dedupe transcripts tool display metadata 2026-05-26 21:09:18 +01:00
Peter Steinberger
abb85ccc86 fix(cli): validate timeout and banner TTY state
Fixes two CLI edge cases found by clawpatch.

- `emitCliBanner` now honors injected TTY state before writing to stdout.
- Nodes RPC timeout handling now rejects malformed `--timeout` values with the existing timeout parser instead of forwarding `NaN` into gateway transport calls.

Proof:
- `node scripts/run-vitest.mjs src/cli/banner.test.ts src/cli/nodes-cli/register.invoke.approval-transport-timeout.test.ts`
- `pnpm exec oxfmt --check --threads=1 src/cli/banner.ts src/cli/banner.test.ts src/cli/nodes-cli/rpc.runtime.ts src/cli/nodes-cli/register.invoke.approval-transport-timeout.test.ts`
- `.agents/skills/autoreview/scripts/autoreview --mode branch --base origin/main`
- Real CLI proof: `pnpm openclaw nodes list --timeout nope --json` exits 1 with `Invalid --timeout`.
- Runtime banner proof: injected `isTty:false` with `stdout.isTTY=true` produced `writes=0`, `emitted=false`.
2026-05-26 21:08:11 +01:00
Andy Ye
bf0228b5c2 fix(codex): project newer history on app-server resume (#86677)
Project newer external OpenClaw chat history into resumed Codex app-server threads when the saved binding is older than user-visible transcript messages, while filtering Codex-owned mirror records on consecutive resumes.

Thanks @TurboTheTurtle!
2026-05-26 21:07:07 +01:00
pashpashpash
3a64dc7623 fix(codex): keep turn timeouts inside Codex (#86476)
Keep Codex app-server turn timeouts within the Codex runtime boundary so they interrupt the active turn without retiring the shared app-server client, poisoning auth-profile cooldowns, or falling through to generic provider/model fallback.

Preserve concrete non-timeout provider failures for auth-profile rotation and fallback, and add regression coverage for prompt-stage timeouts, assistant idle timeouts, auth-profile cooldowns, and app-server timeout handling.

Thanks @pashpashpash.
2026-05-26 21:06:19 +01:00
mjamiv
f22c3a518e fix(auto-reply): stage sandboxed workspace media
Fixes #74061.

Stages absolute final-reply MEDIA paths that already live under the agent workspace before sandbox path translation runs, so Telegram/local delivery can attach generated workspace media instead of dropping it as Media failed. Outside-workspace host-local paths remain blocked, and host-read HTML stays denied pending separate security-boundary review.

Verification:
- git diff --check origin/main...refs/remotes/pull/86531
- git merge-tree --write-tree origin/main refs/remotes/pull/86531
- reviewed src/auto-reply/reply/reply-media-paths.ts, src/media/web-media.ts, and focused tests

Co-authored-by: mjamiv <74088820+mjamiv@users.noreply.github.com>
2026-05-26 21:05:08 +01:00
Vincent Koc
2fcf990cee fix(e2e): support plain telegram install timeouts 2026-05-26 22:03:50 +02:00
Vincent Koc
639e7ff997 fix(mac): harden restart and dSYM packaging 2026-05-26 22:01:35 +02:00
Vincent Koc
4d6593642e fix(exec): avoid default approval store writes (#86964)
* fix(exec): avoid default approval store writes

* fix(exec): harden token approvals on default policy

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-05-26 20:59:24 +01:00
Vincent Koc
9b1b6d02fd fix(agents): restore current guard checks (#86934) 2026-05-26 20:59:03 +01:00
Peter Steinberger
983b33867e docs(changelog): prepare 2026.5.26 notes 2026-05-26 20:52:04 +01:00
Peter Steinberger
29a1dc2249 docs(changelog): note reply latency fixes 2026-05-26 20:51:00 +01:00
Keshav's Bot
699c047c7d fix(reply): reduce visible reply delivery latency 2026-05-26 20:51:00 +01:00
Keshav's Bot
ed3ae0da43 fix(reply): defer context compaction safely 2026-05-26 20:51:00 +01:00
Keshav's Bot
21c25bbb9d fix(codex): gate profiler timing and startup setup 2026-05-26 20:51:00 +01:00
Keshav's Bot
7951cc0c8a fix(agents): avoid runtime model hydration on hot paths 2026-05-26 20:51:00 +01:00
Keshav's Bot
c2b56ded61 fix(commands): keep slash handling off reply startup 2026-05-26 20:51:00 +01:00
Keshav's Bot
0afccc62ab fix(telegram): refine typing and progress drafts 2026-05-26 20:51:00 +01:00
Vincent Koc
5c1ecda0ca fix(e2e): support plain timeout wrappers 2026-05-26 21:49:04 +02:00
Pavel Ganson
e7500417c8 fix(channels): preserve direct native progress callbacks
Preserve native direct-message progress callbacks for quiet Telegram/Codex turns while keeping text tool summaries behind verbose visibility.

The fix keeps source-delivery suppression and sendPolicy denial intact, so quiet native progress is allowed only for direct chat progress callbacks and does not leak when delivery is denied.

Verification:
- node scripts/run-vitest.mjs run --config test/vitest/vitest.auto-reply-reply.config.ts src/auto-reply/reply/dispatch-from-config.test.ts -t "direct native progress callbacks|channel-owned group progress callbacks|delivers text-only tool summaries when verbose overrides preview suppression|delivers verbose tool summaries despite message-tool-only source suppression"
- node scripts/run-oxlint.mjs --tsconfig config/tsconfig/oxlint.core.json src/auto-reply/reply/dispatch-from-config.ts src/auto-reply/reply/dispatch-from-config.test.ts
- git diff --check
- /Users/steipete/Projects/agent-skills/skills/autoreview/scripts/autoreview --mode branch --base origin/main

Thanks @PashaGanson.
2026-05-26 20:41:38 +01:00
Peter Steinberger
174cd49f78 fix: tighten parser edge cases (#86999)
* fix: tighten parser edge cases

* fix: dedupe lsof listener records

* fix: recognize ipv6 wildcard model URLs
2026-05-26 20:40:13 +01:00
Vincent Koc
39682889f9 fix(e2e): clean stale docker lane containers 2026-05-26 21:25:16 +02:00
Vincent Koc
71cb60706b fix(e2e): bound docker lifecycle hangs 2026-05-26 21:22:01 +02:00
Peter Steinberger
0ea7871e53 fix(gateway): bound live agent model probes 2026-05-26 20:20:01 +01:00
Vincent Koc
b36fa1d8f1 fix(e2e): bound plugin binding docker smoke 2026-05-26 21:09:37 +02:00
Vincent Koc
c0641eb3ad fix(e2e): preserve docker run failure status 2026-05-26 20:55:51 +02:00
rendrag-git
e9dd1c43c4 feat(discord): bucket large model picker menus
Summary:
- Add alpha-bucket selects when the Discord provider/model picker exceeds select-menu limits.
- Split bucket/runtime lookup helpers and keep compact recents runtime decoding provider-scoped.

Verification:
- node scripts/run-vitest.mjs --config test/vitest/vitest.extension-discord.config.ts extensions/discord/src/monitor/model-picker.test.ts extensions/discord/src/monitor/native-command.model-picker.test.ts
- node scripts/run-tsgo.mjs
- git diff --check origin/main...HEAD
- autoreview --mode local: no accepted/actionable findings
- CI run 26468173320, OpenGrep run 26468171525, CodeQL Critical Quality run 26468171885

Co-authored-by: rendrag-git <253747599+rendrag-git@users.noreply.github.com>
Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-05-26 19:52:50 +01:00
alexph-dev
aa117ec4de fix(telegram): derive DM topics from bot capability
Remove the Telegram DM thread reply policy config and use Telegram bot capability as the single source of truth for DM topic session splitting.

DM messages with message_thread_id now split into thread-scoped sessions only when Telegram getMe reports has_topics_enabled for the bot. Doctor removes retired dm.threadReplies and direct.*.threadReplies keys, docs explain the upgrade behavior, and startup keeps cached bot info as a non-auth fallback when a fresh probe fails.

Refs #86513.
Thanks @alexph-dev.

Verification:
- pnpm docs:list
- pnpm exec oxfmt --check --threads=1 extensions/telegram/src/channel.ts extensions/telegram/src/channel.gateway.test.ts extensions/telegram/src/doctor-contract.ts extensions/telegram/src/doctor.test.ts
- git diff --check
- node scripts/run-vitest.mjs extensions/telegram/src/channel.gateway.test.ts extensions/telegram/src/doctor.test.ts extensions/telegram/src/bot/helpers.test.ts extensions/telegram/src/bot-message-context.dm-threads.test.ts extensions/telegram/src/config-schema.test.ts
- pnpm config:channels:check
- pnpm config:docs:check
- .agents/skills/autoreview/scripts/autoreview --mode local
- GitHub Actions: CI 26468039803, Workflow Sanity 26468040057, OpenGrep 26468039472, Real behavior proof 26468036483, CodeQL 26468039466, CodeQL Critical Quality 26468039473

Known CI caveat: checks-windows-node-test failed before tests because Windows runner setup left Node 22.19.0 active while the job requested Node 24.x; the same setup failure is present on current main CI run 26468063947.
2026-05-26 19:52:17 +01:00
Peter Steinberger
4007df7f60 fix: improve discord voice playback and wake replies 2026-05-26 19:40:12 +01:00
Vincent Koc
23aeb58eaa fix(e2e): kill timed kitchen rpc command groups 2026-05-26 20:39:44 +02:00
Peter Steinberger
b56ddcc6ff ci: use supported codex mini live target 2026-05-26 19:04:43 +01:00
Vincent Koc
8c6537b8c1 fix(ci): kill wedged bun smoke commands 2026-05-26 20:04:12 +02:00
Vincent Koc
2b63eb2825 fix(e2e): bound corrupt plugin update runs 2026-05-26 19:54:05 +02:00
Peter Steinberger
6930538500 ci: require codex profiles for live probes 2026-05-26 18:51:43 +01:00
Peter Steinberger
cd46057b90 docs: clarify inline comment guidance 2026-05-26 18:49:29 +01:00
Peter Steinberger
8c575bd3c8 docs: update changelog for landed sweep fixes 2026-05-26 18:41:00 +01:00
Fermin Quant
598aad4f66 fix(agents): disclose scoped session list results (#86944)
* fix(agents): disclose scoped session list results

* fix(agents): clarify scoped session count warning
2026-05-26 18:40:36 +01:00
Andy Ye
1fd8de8495 fix(telegram): treat ENETDOWN as transient network failure (#86762) 2026-05-26 18:40:31 +01:00
Vincent Koc
564e0bb5c1 fix(mac): harden package script safety 2026-05-26 19:40:16 +02:00
Vincent Koc
c867ecb136 fix(ci): kill wedged checkout fetches 2026-05-26 19:38:34 +02:00
Peter Steinberger
9fd8158c06 ci: restore codex replay live probe contract 2026-05-26 18:35:56 +01:00
Eva
7a147419db fix(codex): preserve oversized native thread reuse
Reworks the Codex app-server native thread reuse guard so OpenClaw no longer adds a user-facing token config. Token clearing now prefers Codex's reported model context window, falls back to a high internal recovery fuse, and preserves context-engine thread-bootstrap reuse while keeping byte guard behavior intact.

Verification:
- `fnm exec --using v24.15.0 -- node scripts/run-vitest.mjs run extensions/codex/src/app-server/run-attempt.test.ts extensions/codex/src/app-server/run-attempt.context-engine.test.ts --reporter=dot --pool=forks --no-file-parallelism`
- `git diff --check`
- `.agents/skills/autoreview/scripts/autoreview --mode local --base origin/main`
- Testbox `check:changed`: `tbx_01ksjm1hy7mfrc5bebzyckqdew`, GitHub Actions run https://github.com/openclaw/openclaw/actions/runs/26463150977, exit 0
- PR CI green after rerunning unrelated `checks-node-agentic-agents` flake and stuck OpenGrep scan

Co-authored-by: Eva (agent) <eva+agent-78055@100yen.org>
2026-05-26 18:33:59 +01:00
Vincent Koc
a5eee8f1c6 fix(scripts): detect timed changed gates 2026-05-26 19:19:26 +02:00
Peter Steinberger
3c6fd49d74 ci: stop waiting for nonexistent capability restart wake 2026-05-26 18:15:16 +01:00