Commit Graph

52683 Commits

Author SHA1 Message Date
Peter Steinberger
64e01ef97a test(auto-reply): type manifest catalog harness mock v2026.5.26-beta.1 2026-05-26 23:25:58 +01:00
Peter Steinberger
7135e34520 test(auto-reply): mock manifest model catalog in trigger harness 2026-05-26 23:22:19 +01:00
Peter Steinberger
8824a8de47 fix(channel): handle plugin channel markdown fallback 2026-05-26 23:02:09 +01:00
Peter Steinberger
ea42c1db8a fix(release): stabilize plugin prerelease tests 2026-05-26 22:44:50 +01:00
Peter Steinberger
739c7dc464 chore(release): refresh generated baselines 2026-05-26 22:30:15 +01:00
Peter Steinberger
94b4b78256 chore(release): refresh plugin shrinkwraps 2026-05-26 22:27:39 +01:00
Peter Steinberger
3ef57acdb5 chore(release): refresh generated baselines 2026-05-26 22:27:39 +01:00
Peter Steinberger
5be97ae860 chore(release): refresh generated baselines 2026-05-26 22:27:39 +01:00
Peter Steinberger
0d5341fa22 chore(release): sync plugin beta versions 2026-05-26 22:27:39 +01:00
Peter Steinberger
0068029fb1 chore(release): prepare 2026.5.26 beta 1 2026-05-26 22:27:39 +01:00
Peter Steinberger
1d972af69d ci: enforce Node 22 floor in setup helper 2026-05-26 22:26:08 +01:00
Peter Steinberger
ce4db4f9f3 ci: allow Windows Node 22 patch range 2026-05-26 22:26:08 +01:00
Andy Ye
f3e61580bd Fix status JSON plugin scan (#87001)
* fix status json plugin scan

* fix status json metadata imports

* fix channel metadata repair fallback

* fix runtime channel id normalization fallback

* fix status json env channel detection

Co-authored-by: Peter Steinberger <steipete@gmail.com>

* fix signed thinking legacy tool repair

* fix: preserve first signed replay turn

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-05-26 22:24:25 +01:00
吴杨帆
77505daa85 fix(telegram): preserve command slots for aliases (#85270)
* fix(telegram): preserve command slots for aliases

* fix: report Telegram alias command overflow

* fix: preserve Telegram alias menu order

* docs: drop release-owned changelog entry

---------

Co-authored-by: wuyangfan <yangfan.wu@succaiss.com>
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-05-26 22:24:03 +01:00
Peter Steinberger
94fb547fe2 fix(agents): handle deferred maintenance drain
Ensure deferred context-engine maintenance rejects cleanly when the gateway command queue is draining, including coalesced active-run requests. This prevents budget compaction from treating an unscheduled deferred maintenance run as successful and leaving the context engine alive.

Verification:
- pnpm exec oxfmt --check --threads=1 src/process/command-queue.ts src/agents/pi-embedded-runner/compact.queued.ts src/agents/pi-embedded-runner/context-engine-maintenance.ts src/agents/pi-embedded-runner/context-engine-maintenance.test.ts
- pnpm test src/auto-reply/reply/agent-runner-memory.test.ts src/agents/pi-embedded-runner/compact.hooks.test.ts src/agents/pi-embedded-runner/context-engine-maintenance.test.ts src/tasks/task-flow-registry.store.test.ts src/auto-reply/reply/commands-compact.test.ts src/agents/pi-embedded-runner/compact-reasons.test.ts
- .agents/skills/autoreview/scripts/autoreview --mode branch --base origin/main
- GitHub Actions CI run 26475226442: relevant Node/Linux, lint, type, security, CodeQL, OpenGrep, Socket, Real behavior proof, and build jobs passed; Windows job failed before tests due current runner image Node 22.19.0 vs required 24.x, matching current main infra failure.
2026-05-26 22:17:19 +01:00
Peter Steinberger
72bc429f60 test: keep legacy tool-result error proof 2026-05-26 22:13:19 +01:00
Peter Steinberger
b546998b9b ci: fix post-merge Rastermill checks 2026-05-26 22:11:50 +01:00
Peter Steinberger
8523d3268a fix(agents): mark repaired legacy tool results errored 2026-05-26 17:01:12 -04:00
Peter Steinberger
b414020bef docs(changelog): note rastermill exif fix 2026-05-26 21:58:29 +01:00
Peter Steinberger
a6973ab9b4 docs(changelog): regroup 2026.5.26 release notes 2026-05-26 21:57:49 +01:00
Peter Steinberger
acb942f634 fix: keep EXIF normalization best-effort (#86923) 2026-05-26 21:55:57 +01:00
Peter Steinberger
cee8c8773b build: use rastermill 0.3.0 2026-05-26 21:55:57 +01:00
Peter Steinberger
e6edccad3a build: update rastermill dependency 2026-05-26 21:55:57 +01:00
Peter Steinberger
a3325c9fb4 refactor: use unified rastermill encode API 2026-05-26 21:55:57 +01:00
Peter Steinberger
03ae999a1a ci: normalize Windows toolcache paths 2026-05-26 21:55:57 +01:00
Peter Steinberger
16d06aa112 ci: satisfy opengrep git add guard 2026-05-26 21:55:57 +01:00
Peter Steinberger
4f728f8321 refactor: delegate image limits to Rastermill 2026-05-26 21:55:57 +01:00
Peter Steinberger
4e84229e82 fix: infer realtime smoke dev server type 2026-05-26 21:55:57 +01:00
Peter Steinberger
7d4d7512e4 build: update rastermill pin 2026-05-26 21:55:57 +01:00
Peter Steinberger
50b98a1878 refactor: delegate image processing to Rastermill 2026-05-26 21:55:57 +01:00
Peter Steinberger
4e45b11983 fix(agents): repair legacy tool results before replay 2026-05-26 16:53:32 -04:00
Josh Avant
3c16648ad7 fix(config): narrow profiled tool section doctor repair (#87030)
* fix(config): repair profiled tool section grants

* fix(config): narrow profiled tool section doctor repair

* fix(config): satisfy doctor warning lint

---------

Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
2026-05-26 13:50:22 -07:00
Peter Steinberger
80655fe955 test: fix current suite drift 2026-05-26 16:40:08 -04:00
Alix-007
daa7b1d06b fix(lock): require owner identity proof before stale removal
Fixes #86814.

Reclaims stale plugin lock files only when the previous owner is provably gone or the recorded process start time proves PID reuse. Timestamp age alone now stays fail-closed for PID-owned locks, preserving mutual exclusion for long-running writers while still allowing pidless expired locks to expire.

Verification:
- pnpm test src/infra/stale-lock-file.test.ts src/plugin-sdk/file-lock.test.ts
- pnpm tool-display:check
- git diff --check
- autoreview --mode branch --base origin/main

Known CI note: check-guards failed in deps:shrinkwrap:check because npm resolved newer AWS transitive versions than pnpm-lock.yaml contains; no package or lock files are changed in this PR.

Co-authored-by: Alix-007 <267018309+Alix-007@users.noreply.github.com>
2026-05-26 21:38:35 +01:00
Peter Steinberger
d8a14e77c3 fix(deps): pin shrinkwrap patch drift to pnpm lock 2026-05-26 16:35:10 -04:00
joshavant
e09f89d37b revert: 60bec8c duplicate tool display guard 2026-05-26 13:32:50 -07:00
Vincent Koc
38edae7df7 fix(e2e): bound docker package preparation 2026-05-26 22:32:25 +02:00
Peter Steinberger
5e8f4981a5 fix(cli): add Windows stack-size respawn (#87031)
Add a Windows-only CLI respawn with `--stack-size=8192` so stack-heavy startup paths can run with a larger V8 stack.

The respawn path normalizes duplicated Windows `node.exe` launcher argv before handoff, preserves real non-launcher argv values containing `node.exe`, and treats both `--stack-size` and `--stack_size` as already configured.

Fixes #62055.
Supersedes #86307.
Thanks @giodl73-repo for the original fix.

Verification:
- `node --v8-options | rg -n "stack-size|stack_size"`
- `node --stack-size=8192 -e "console.log('ok')"`
- `node --stack_size=8192 -e "console.log('ok')"`
- `pnpm format:check src/cli/windows-argv.ts src/cli/windows-argv.test.ts src/entry.respawn.ts src/entry.respawn.test.ts`
- `node scripts/run-vitest.mjs src/entry.respawn.test.ts src/cli/windows-argv.test.ts`
- `.agents/skills/autoreview/scripts/autoreview --mode local`
- `pnpm check:changed` via Testbox `tbx_01ksjzf06pcgx29qrctjrn4rhr`, GitHub Actions run https://github.com/openclaw/openclaw/actions/runs/26473172664

Co-authored-by: Gio Della-Libera <giodl73@gmail.com>
2026-05-26 21:31:58 +01:00
martingarramon
ef86d8c95c fix(agents): preserve sessions_spawn transcript payloads (#82203)
Remove the transcript redaction path for sessions_spawn arguments and inline attachments. OpenClaw transcripts are local trusted-operator state, and streamTo/resumeSessionId are runtime routing fields that must not be rewritten before replay or dispatch.

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-05-26 21:30:01 +01:00
Josh Avant
60bec8c020 fix(agents): guard duplicate tool display metadata (#87025) 2026-05-26 13:28:38 -07:00
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