Commit Graph

26193 Commits

Author SHA1 Message Date
Soham Patankar
00ec151f68 fix(backup): keep temp manifest outside source paths
The backup temp manifest is created via os.tmpdir() and passed to tar.c
alongside the included asset paths. When TMPDIR resolves inside a backed-up
asset (for example a sandboxed cron run with TMPDIR=~/.openclaw/tmp), the
recursive walk of that asset visits the same manifest a second time and both
copies are remapped to <archiveRoot>/manifest.json. backup-verify then fails
with 'Expected exactly one backup manifest entry, found 2'.

Add chooseBackupTempRoot() that prefers os.tmpdir() and falls back to the
output directory (already validated as outside every asset and writable by
the caller) when the system tempdir overlaps a source path. A defensive
guard re-checks the fallback. A tar filter alone cannot fix this because
the filter fires for both the explicit-arg and the traversed entry, so
excluding by path drops the manifest entirely.

Add regression tests for tmpdir nested in the state dir and tmpdir equal
to the state dir.
2026-05-09 16:35:09 +05:30
xialonglee
f305499da3 fix(agents): ignore ACP-only streamTo and treat default model as unset 2026-05-09 06:36:20 -04:00
Peter Steinberger
d80f20057e fix: align realtime voice consult tool flow 2026-05-09 11:33:56 +01:00
Shakker
01741f81f8 test: remove stale unused imports 2026-05-09 11:26:43 +01:00
Val Alexander
fa79e9754e fix(gateway): harden macOS update restart lifecycle
Summary:
- Clear stale SIGUSR1 restart state before rejected or externally allowed restart handling can leave an in-flight token stuck.
- Verify the live gateway version after macOS package-update service refreshes and skip redundant restarts when the refreshed LaunchAgent already serves the expected version.
- Set generated LaunchAgents to a 10s throttle plus 20s shutdown window and widen gateway bind retries around supervisor-owned restarts.

Fixes #79577. Refs #78699 and #60885.

Verification:
- pnpm test src/cli/gateway-cli/run-loop.test.ts src/infra/infra-runtime.test.ts
- pnpm test src/cli/update-cli.test.ts src/daemon/launchd.test.ts src/gateway/server/http-listen.test.ts
- pnpm exec oxfmt --check --threads=1 src/cli/gateway-cli/run-loop.ts src/cli/gateway-cli/run-loop.test.ts
- pnpm check:changed
- Crabbox/Blacksmith wrapper smoke passed focused tests plus pnpm check:changed: https://github.com/openclaw/openclaw/actions/runs/25595985603
- PR CI was green before upstream main advanced; the latest rebased heads hit unrelated broad lint failures also reproduced on current main CI (for example https://github.com/openclaw/openclaw/actions/runs/25598671666). No failing lint diagnostics referenced this gateway/update diff.
2026-05-09 05:21:17 -05:00
hekunwang
7236d6487e fix(agents): classify stream_read_error as transient (#79692)
* fix(agents): classify stream_read_error as transient

* fix: classify stream read errors as transient (#79692)

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-05-09 06:18:04 -04:00
Peter Steinberger
cc4a596be2 fix(discord): make realtime barge-in guard tunable 2026-05-09 11:11:54 +01:00
Peter Steinberger
1f4f51e8e2 feat: add plugin install overrides 2026-05-09 06:06:08 -04:00
Peter Steinberger
d479216d92 fix: honor effective model auth health 2026-05-09 05:44:02 -04:00
nimbleenigma
aab7756859 fix(models): use effective auth health for status 2026-05-09 05:44:02 -04:00
Peter Steinberger
beaecbcad4 refactor: use PI Codex Responses transport (#79726)
Routes explicit OpenAI Codex Responses runs through PI's native WebSocket-capable transport and removes the custom OpenClaw WebSocket implementation.
2026-05-09 05:40:30 -04:00
Peter Steinberger
560c7440fb fix: serialize CLI preview bridge (#76914) (thanks @jack-stormentswe) 2026-05-09 05:34:47 -04:00
jack-stormentswe
2afffccee3 fix(agents/cli): bridge CLI assistant deltas into channel preview (#76869) 2026-05-09 05:34:47 -04:00
Peter Steinberger
0071f67fe6 feat(plugin-sdk): share presentation control helpers 2026-05-09 10:11:56 +01:00
Abner Shang
9eaca28ef7 fix(backup): retry tar EOF races and skip live volatile files
Fixes #72249.\n\nSummary:\n- retry live backup tar EOF races\n- skip current live session, cron, log, and delivery-queue state files\n- preserve workspace lock/temp files and keep backup --json parseable\n\nVerification:\n- Crabbox pre-fix repro: tbx_01kr5xt9vf5pas5ee4aefrp3am\n- Crabbox post-fix proof: tbx_01kr5y3e1kbtt6chbypfdydbgs\n- pnpm check:test-types\n- pnpm lint:core\n- pnpm test src/commands/backup.test.ts src/infra/backup-volatile-filter.test.ts src/infra/backup-create.test.ts\n- CI on 37664570c7: green\n\nThanks @abnershang.
2026-05-09 05:11:43 -04:00
Peter Steinberger
2807981669 fix: suppress DeepSeek DSML stream artifacts (#78331) 2026-05-09 05:03:10 -04:00
samzong
145cb6d35a fix(agents): suppress DeepSeek DSML stream artifacts 2026-05-09 05:03:10 -04:00
Shakker
8c3a0c1296 test: align plain tool block parser spacing 2026-05-09 09:54:43 +01:00
Peter Steinberger
7822c35339 test: align plain tool block stripping expectations 2026-05-09 04:41:45 -04:00
Peter Steinberger
e582cebf2d fix(matrix): wire presentation metadata delivery 2026-05-09 04:41:45 -04:00
Shakker
76df5aaac0 test: preserve bracketed tool block spacing 2026-05-09 09:38:25 +01:00
Peter Steinberger
65fab4eb68 fix(agents): reuse context engine checkpoint 2026-05-09 09:25:19 +01:00
Peter Steinberger
5550d0ecf5 fix(ui): refresh model cache from session status 2026-05-09 09:25:19 +01:00
Peter Steinberger
ba2b033774 fix(plugin-sdk): parse harmony text tool calls 2026-05-09 09:25:19 +01:00
Peter Steinberger
089d777413 fix(markdown): trim blockquote separator spans 2026-05-09 09:25:19 +01:00
Peter Steinberger
b62166301e fix: annotate message-tool-only replies in Codex tool spec
Thread sourceReplyDeliveryMode into Codex/OpenClaw tool construction and annotate the message tool description for message-tool-only turns so visible replies use message(action=send).\n\nAlso adds focused regression coverage and a changelog entry.
2026-05-09 04:24:40 -04:00
NVIDIAN
2db6bde617 fix(plugins): fail unresolved openclaw peer installs (#79494) 2026-05-09 17:19:54 +09:00
Peter Steinberger
1ab814e66f test: tighten web media rejection assertions 2026-05-09 09:04:50 +01:00
Peter Steinberger
1997ac449d test: tighten local media roots assertions 2026-05-09 09:00:48 +01:00
Peter Steinberger
b2bc45424d test: tighten media fetch assertions 2026-05-09 08:58:44 +01:00
Peter Steinberger
5849c32402 fix: install Codex for OpenAI onboarding (#79709)
* fix: install codex for openai onboarding

* docs: require crabbox e2e bug proof
2026-05-09 16:57:40 +09:00
Peter Steinberger
8ff6707e85 test: tighten media store error assertions 2026-05-09 08:55:57 +01:00
Peter Steinberger
f11ac1a734 test: tighten audio transcode ffmpeg assertion 2026-05-09 08:52:50 +01:00
Peter Steinberger
7cfa12fd2b feat: inject runtime model identity into prompts 2026-05-09 08:51:41 +01:00
Peter Steinberger
d52ecd353d test: tighten document extractor runtime assertions 2026-05-09 08:51:15 +01:00
Peter Steinberger
602c59a092 test: tighten media read capability assertions 2026-05-09 08:49:54 +01:00
Peter Steinberger
a2e719bcee test: tighten media reference assertions 2026-05-09 08:48:01 +01:00
Peter Steinberger
854159fe1c test: tighten local media access error assertion 2026-05-09 08:46:00 +01:00
Peter Steinberger
74e930870e test: tighten media outside-workspace error assertion 2026-05-09 08:44:56 +01:00
Peter Steinberger
3cf5b8f7f5 test: tighten image tempdir cleanup assertion 2026-05-09 08:43:12 +01:00
Peter Steinberger
e4bae42d63 feat(plugin-sdk): derive tool target paths for hooks
Summary:
- derive apply_patch target paths for before_tool_call and trusted policy events
- route native Codex PreToolUse cwd/sandbox path facts through the host parser
- document the additive derivedPaths hook field and refresh the SDK API baseline

Verification:
- pnpm test src/agents/apply-patch-paths.test.ts src/plugins/host-tool-param-parsers.test.ts src/agents/pi-tools.before-tool-call.e2e.test.ts src/agents/harness/native-hook-relay.test.ts src/plugins/contracts/host-hooks.contract.test.ts
- pnpm check:test-types
- pnpm lint:core
- pnpm plugin-sdk:api:gen
- pnpm plugin-sdk:api:check
- pnpm run check:no-conflict-markers
- pnpm exec oxfmt --check --threads=1 CHANGELOG.md docs/plugins/hooks.md docs/.generated/plugin-sdk-api-baseline.sha256 src/agents/apply-patch-paths.test.ts src/agents/apply-patch-paths.ts src/agents/harness/native-hook-relay.test.ts src/agents/harness/native-hook-relay.ts src/agents/pi-tools.before-tool-call.e2e.test.ts src/agents/pi-tools.before-tool-call.ts src/agents/pi-tools.ts src/auto-reply/reply/dispatch-from-config.test.ts src/plugins/contracts/host-hooks.contract.test.ts src/plugins/hook-types.ts src/plugins/host-tool-param-parsers.test.ts src/plugins/host-tool-param-parsers.ts src/plugins/trusted-tool-policy.ts
- git diff --check origin/main...HEAD && git diff --check
- pnpm build

Co-authored-by: Eva <eva@100yen.org>
Co-authored-by: Josh Lehman <josh@martian.engineering>
2026-05-09 03:31:42 -04:00
Peter Steinberger
f8e15d52d8 test: tighten realtime voice consult runtime assertions 2026-05-09 08:30:55 +01:00
Peter Steinberger
86cc247d4d test: tighten realtime voice consult tool assertions 2026-05-09 08:27:46 +01:00
Peter Steinberger
d410289e7a test: tighten talk logging assertions 2026-05-09 08:25:35 +01:00
Peter Steinberger
63b8013b44 test: tighten realtime voice talkback assertions 2026-05-09 08:22:04 +01:00
Peter Steinberger
d00d4e5517 test: tighten realtime voice provider resolver assertions 2026-05-09 08:20:31 +01:00
Peter Steinberger
4f58bb38ec test: tighten talk session controller assertions 2026-05-09 08:19:12 +01:00
Peter Steinberger
54f32451f5 test: tighten talk event envelope assertion 2026-05-09 08:16:39 +01:00
Peter Steinberger
87665a435c test: tighten talk session log assertions 2026-05-09 08:15:05 +01:00
Peter Steinberger
d5f8860306 test: tighten talk diagnostics assertion 2026-05-09 08:13:58 +01:00