Commit Graph

3234 Commits

Author SHA1 Message Date
scoootscooob
1382a5e639 fix: prefer IPv4 for pinned SSRF lookups (#80162) 2026-05-10 04:20:26 -04:00
Vincent Koc
be2f333e6f fix(cli): clarify terminal recovery errors 2026-05-10 14:23:15 +08:00
Gabriel Piss
5e874ed138 docs(outbound): add CLAUDE.md sibling symlink for AGENTS.md
Root AGENTS.md states: 'New AGENTS.md: add sibling CLAUDE.md symlink.'
src/infra/outbound/ had the guide but not the sibling symlink. Every
other scoped AGENTS.md in the repo already has one; this closes the
only real gap (the one remaining hit is an intentional test fixture in
extensions/oc-path/src/oc-path/tests/fixtures/real/).

Also adds CLAUDE.md to .semgrepignore so opengrep's PR-diff scan stops
trying to open the symlink as a regular file. Scanning the symlink is
redundant with scanning the underlying AGENTS.md.
2026-05-10 01:40:56 -04:00
Val Alexander
dafbdb6f20 fix: preserve shared macOS and CLI device identities
Fixes #76815.

- Teach the Swift macOS identity store to load TypeScript PEM identity files without regenerating device IDs.
- Teach the TypeScript identity store to migrate legacy Swift raw-key identities to PEM after validating key material.
- Preserve recognized invalid identity files instead of clobbering them, preventing repeated pairing churn while retaining diagnostic evidence.
- Align the macOS wizard CLI with the generated protocol model.

Reported by @aboundTechOlogy.
Thanks @BunsDev.
2026-05-09 23:32:33 -05:00
Peter Steinberger
cd58e46223 test: tighten command explainer assertions 2026-05-10 05:12:47 +01:00
Jordan Baker
86c1622a3a fix(acp): propagate AcpRuntimeError detail through lifecycle boundary
Summary:
- Preserve AcpRuntimeError detail across the ACP lifecycle boundary.
- Redact non-Error lifecycle failure strings and add gateway/agent propagation coverage.
- Align rebased CLI command-hint formatting with current main.

Verification:
- pnpm check:test-types
- pnpm test src/acp/runtime/errors.test.ts src/agents/command/attempt-execution.error-propagation.test.ts src/gateway/server.agent.gateway-server-agent-b.test.ts
- CI exact head c96d63298b green

Co-authored-by: Jordan Baker <23538+hexsprite@users.noreply.github.com>
2026-05-09 23:08:30 -04:00
Peter Steinberger
fa2ffa6fbe test: tighten outbound hook error assertions 2026-05-10 03:57:19 +01:00
Peter Steinberger
9cf0651e46 test: tighten outbound queue persistence assertions 2026-05-10 03:54:12 +01:00
Peter Steinberger
b3f4fb8f8f test: tighten outbound chunk config assertions 2026-05-10 03:52:24 +01:00
Peter Steinberger
e8b3ff7891 test: tighten outbound media delivery assertions 2026-05-10 03:51:10 +01:00
Peter Steinberger
d644798d67 test: tighten outbound runtime payload assertions 2026-05-10 03:48:46 +01:00
Peter Steinberger
467b0f87ff test: tighten outbound media policy assertions 2026-05-10 03:47:09 +01:00
Peter Steinberger
972b3c673a test: tighten outbound diagnostic assertions 2026-05-10 03:45:05 +01:00
Peter Steinberger
7d38acbbbf test: tighten outbound adapter assertions 2026-05-10 03:43:25 +01:00
Ruben Cuevas
fd5c5467e0 fix(exec-approvals): lazy-load command explainer 2026-05-09 22:05:09 -04:00
Peter Steinberger
5131c3d677 build: clean tsdown declaration warnings 2026-05-10 02:14:40 +01:00
samzong
d832ad214c [Feat] Add upload archive install RPC (#74430)
* feat(skills): add upload archive install RPC

- src/agents/skills-archive-install.ts:83 [BOT-SCOPE]: `withExtractedArchiveRoot()` still returns unstructured extract failures, so exact transient-vs-terminal classification should be moved into the shared install-flow layer in a follow-up rather than expanding this PR.

Signed-off-by: samzong <samzong.lu@gmail.com>

* fix(skills): address archive upload review findings

Signed-off-by: samzong <samzong.lu@gmail.com>

* fix(skills): regen protocol bindings and classify transient archive errors

* feat: gate uploaded skill installs by config

* test: add docker skill install proof

* docs: clarify uploaded skill archive gate

* chore: refresh config docs baseline

* style: format docker e2e plan test

* fix: use fs-safe path checks for skill archives

* fix: classify skill publish failures as unavailable

* test: update skill clawhub path mock

* fix: pass mutable archive root markers

* fix: use current json dir mode option

* test: satisfy skill upload lint

* test: refresh core support expectations

---------

Signed-off-by: samzong <samzong.lu@gmail.com>
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-05-09 20:44:18 -04:00
brokemac79
e71589a14b test(ports): accept expected gateway bind 2026-05-09 20:24:41 -04:00
brokemac79
3dec1b3267 fix(status): accept expected gateway bind listeners 2026-05-09 20:24:41 -04:00
Ruben Cuevas
e40ddf9b02 fix(gateway): cover restored watch artifacts 2026-05-09 19:31:51 -04:00
Ruben Cuevas
9ce359b370 fix(gateway): check restored runtime overlays 2026-05-09 19:31:51 -04:00
Ruben Cuevas
d605efc17f fix(gateway): include legacy runtime output checks 2026-05-09 19:31:51 -04:00
Ruben Cuevas
31f74259cb fix(gateway): respect missing runtime outputs in watch 2026-05-09 19:31:51 -04:00
Ruben Cuevas
8a9f142942 fix(gateway): verify all runtime postbuild outputs 2026-05-09 19:31:51 -04:00
Ruben Cuevas
795dd2d02e fix(gateway): share runtime asset list 2026-05-09 19:31:51 -04:00
Ruben Cuevas
28de7cc2e3 fix(gateway): require static runtime assets 2026-05-09 19:31:51 -04:00
Ruben Cuevas
ee7f2da0b7 fix(gateway): check runtime SDK alias outputs 2026-05-09 19:31:51 -04:00
Ruben Cuevas
17643e549f fix(gateway): restore runtime postbuild freshness 2026-05-09 19:31:51 -04:00
Omar Shahine
200eb62ef4 fix(imessage): wire reply attachments through send-rich --file (with feature gate) (#79864)
Merged via squash.

Prepared head SHA: 5e5cdfed79
Co-authored-by: omarshahine <10343873+omarshahine@users.noreply.github.com>
Co-authored-by: omarshahine <10343873+omarshahine@users.noreply.github.com>
Reviewed-by: @omarshahine
2026-05-09 14:59:04 -04:00
Ayaan Zaidi
0b8857d653 fix(gateway): honor restart continuation retry budget 2026-05-09 20:58:12 +05:30
VACInc
0c8c620d6f fix: retry restart continuations during shutdown 2026-05-09 20:58:12 +05:30
Peter Steinberger
2a00bd6209 test: tighten install package dir assertions 2026-05-09 13:23:30 +01:00
Peter Steinberger
e5a102249f test: tighten provider usage plugin assertions 2026-05-09 13:11:48 +01:00
Soham Patankar
3f5dce29e9 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.

(cherry picked from commit 00ec151f68)
2026-05-09 08:10:18 -04:00
Peter Steinberger
1ab7c7e248 test: tighten heartbeat typing assertions 2026-05-09 13:06:19 +01:00
Peter Steinberger
0a505563d6 test: tighten durable json error assertion 2026-05-09 12:22:36 +01:00
Peter Steinberger
0a8beba3c8 test: tighten supervisor marker assertions 2026-05-09 12:21:18 +01:00
Peter Steinberger
0f00244f10 test: tighten heartbeat wake assertions 2026-05-09 12:15:18 +01:00
Peter Steinberger
8f56484b12 chore: remove stale unused imports 2026-05-09 06:51:20 -04:00
Shakker
01741f81f8 test: remove stale unused imports 2026-05-09 11:26:43 +01:00
Peter Steinberger
1f4f51e8e2 feat: add plugin install overrides 2026-05-09 06:06:08 -04: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
0c50957dbb fix(cli): clarify plugin tool command mistakes
Summary:
- clarify CLI diagnostics when an unknown subcommand is actually a plugin agent tool
- route early proxy-preflight misses through the same policy helper
- refresh bundled sidecar update fixtures for current package ownership

Verification:
- pnpm test src/cli/run-main.test.ts src/cli/run-main.exit.test.ts src/plugins/manifest-command-aliases.test.ts
- pnpm test src/infra/update-global.test.ts src/infra/update-runner.test.ts
- pnpm exec oxfmt --check --threads=1 CHANGELOG.md src/cli/run-main-policy.ts src/cli/run-main.ts src/cli/run-main.test.ts src/cli/run-main.exit.test.ts src/plugins/manifest-command-aliases.ts src/plugins/manifest-command-aliases.runtime.ts src/plugins/manifest-command-aliases.test.ts
- pnpm build
- live temp lossless-claw manifest: pnpm openclaw lcm_recent emits the agent-tool diagnostic and no plugins.allow suggestion

Co-authored-by: 100yenadmin <100yenadmin+agent-77214@100yen.org>
2026-05-09 03:11:44 -04:00
Peter Steinberger
a4b17d65a8 refactor: consolidate message delivery API 2026-05-09 07:04:04 +01:00
Peter Steinberger
84273aebdb test: tighten approval handler runtime assertion 2026-05-09 05:58:40 +01:00
Shakker
e2d8b78b69 test: tighten daemon infra array assertions 2026-05-09 05:56:26 +01:00
Shakker
8f786b25a2 test: tighten infra array assertions 2026-05-09 05:48:53 +01:00
Shakker
7d5cfd157a test: tighten infra sdk empty array assertions 2026-05-09 05:36:12 +01:00
Peter Steinberger
d4b20e8904 test: tighten npm pack temp dir assertion 2026-05-09 05:34:39 +01:00
Peter Steinberger
da6abf1b09 test: tighten approval gateway resolver assertion 2026-05-09 05:33:42 +01:00