Commit Graph

63645 Commits

Author SHA1 Message Date
github-actions[bot]
ef1474dd3d chore(i18n): refresh native zh-TW locale 2026-07-03 21:18:24 +00:00
github-actions[bot]
261d79a9a4 chore(i18n): refresh native zh-CN locale 2026-07-03 21:18:10 +00:00
PollyBot13
671c315072 feat: clarify iOS Location Always permission flow (#99247)
* feat: clarify iOS Location Always permission flow

* fix(ios): avoid stale location permission summary

* fix(ios): clarify disabled location permission grants

* fix(ios): sync external location grants into settings

* chore(ios): refresh native i18n inventory

* fix(ios): preserve location off during permission sync

* fix(ios): preserve while using during location sync

* fix(ios): wait for location permission prompts

* fix(ios): reconcile significant location monitoring

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-03 14:16:20 -07:00
LZY3538
7d593bb9ae fix: log terminal session persistence failures (#97839)
* fix: log terminal session persistence failures

* fix: format terminal persistence error logs

* fix(gateway): identify failed terminal persistence

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-03 14:12:16 -07:00
pick-cat
09dc880f89 fix(media): guard ffprobe JSON parse against malformed output (#98613)
* fix(media): guard ffprobe JSON parse against malformed output

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

* chore: trigger CI re-run

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

* chore: trigger CI re-run

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

* fix(media): validate ffprobe JSON shape

---------

Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-03 14:11:14 -07:00
xingzhou
1755a9dc5b fix(daemon): launch env wrapper through shell (#89967) 2026-07-03 13:56:37 -07:00
Dallin Romney
010b617463 test: avoid cross-os socket close race (#99642) 2026-07-03 13:23:11 -07:00
Sahil Satralkar
d29a4f9c2f improve: tighten iOS Control row density (#99468)
* improve: tighten iOS Control row density

* test(ios): drop brittle control row source guards

* chore(i18n): sync iOS Control inventory

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-03 13:17:42 -07:00
Dallin Romney
5361e5a0b4 test(qa): share script evidence writer (#99374) 2026-07-03 12:59:23 -07:00
NianJiu
51859fe0e4 fix ios node invoke permission prompts (#99477)
Co-authored-by: NianJiuZst <180004567+NianJiuZst@users.noreply.github.com>
2026-07-03 12:49:20 -07:00
Ben.Li
b623ff738d fix(android): parse talk directive aliases case-insensitively (#99592) 2026-07-03 12:41:08 -07:00
Ben.Li
b6e6799755 fix(android): block self-package notification forwarding in allowlist mode (#99568)
Always reject the OpenClaw app package in allowsPackage, matching the
blocklist fail-closed behavior and preventing gateway/node forwarding loops.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-03 12:38:58 -07:00
Ben.Li
57d0747185 fix(android): filter device and internal sessions from thread picker (#99557)
* fix(android): filter device and internal sessions from thread picker

Align SessionFilters with iOS isRecentChatSession so agent device sessions,
internal main aliases, and onboarding keys do not appear in recent choices.

Co-authored-by: Cursor <cursoragent@cursor.com>

* fix(android): tighten chat session filtering

* fix(android): preserve access to stale chat sessions

* chore(android): sync native i18n inventory

---------

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-03 12:35:03 -07:00
github-actions[bot]
7cc3cb0d28 chore(i18n): refresh native sv locale 2026-07-03 19:30:49 +00:00
github-actions[bot]
cab81470d9 chore(i18n): refresh native ru locale 2026-07-03 19:29:24 +00:00
github-actions[bot]
cb9ac50f5b chore(i18n): refresh native fa locale 2026-07-03 19:29:03 +00:00
github-actions[bot]
a3ef37b991 chore(i18n): refresh native nl locale 2026-07-03 19:27:46 +00:00
github-actions[bot]
8cc1786f49 chore(i18n): refresh native vi locale 2026-07-03 19:27:19 +00:00
github-actions[bot]
355fa773f8 chore(i18n): refresh native th locale 2026-07-03 19:26:01 +00:00
github-actions[bot]
72a8098408 chore(i18n): refresh native pl locale 2026-07-03 19:25:43 +00:00
github-actions[bot]
eade8f1c1a chore(i18n): refresh native id locale 2026-07-03 19:24:13 +00:00
github-actions[bot]
dcc4fa8746 chore(i18n): refresh native uk locale 2026-07-03 19:23:52 +00:00
github-actions[bot]
b043adf192 chore(i18n): refresh native tr locale 2026-07-03 19:22:31 +00:00
github-actions[bot]
ca258fb945 chore(i18n): refresh native it locale 2026-07-03 19:22:12 +00:00
github-actions[bot]
141b2cf4d1 chore(i18n): refresh native ar locale 2026-07-03 19:20:46 +00:00
github-actions[bot]
57a3975ce1 chore(i18n): refresh native hi locale 2026-07-03 19:20:22 +00:00
github-actions[bot]
df659eca87 chore(i18n): refresh native fr locale 2026-07-03 19:18:58 +00:00
github-actions[bot]
3da73a77fe chore(i18n): refresh native ko locale 2026-07-03 19:18:42 +00:00
github-actions[bot]
66cb9a99b1 chore(i18n): refresh native ja-JP locale 2026-07-03 19:17:09 +00:00
github-actions[bot]
a0a5054b93 chore(i18n): refresh native es locale 2026-07-03 19:16:59 +00:00
github-actions[bot]
3385817658 chore(i18n): refresh native de locale 2026-07-03 19:15:33 +00:00
github-actions[bot]
bf35947eb2 chore(i18n): refresh native pt-BR locale 2026-07-03 19:15:25 +00:00
github-actions[bot]
066e6973b0 chore(i18n): refresh native zh-CN locale 2026-07-03 19:13:55 +00:00
github-actions[bot]
5793f731f5 chore(i18n): refresh native zh-TW locale 2026-07-03 19:13:50 +00:00
Ben.Li
6b253eb341 fix(android): reject IPv6 zone IDs in gateway endpoint URLs (#99570)
* fix(android): normalize IPv6 zone IDs in gateway endpoint hosts

Strip interface zones during endpoint parsing so link-local URLs like
ws://[fe80::1%25eth0] connect using socket-ready literals such as fe80::1.

Co-authored-by: Cursor <cursoragent@cursor.com>

* fix(android): reject IPv6 zone IDs in gateway endpoint URLs

Co-authored-by: Cursor <cursoragent@cursor.com>

* fix(android): reject scoped IPv6 gateway hosts

* chore(android): sync native i18n inventory

---------

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-03 12:12:03 -07:00
Gio Della-Libera
6011c9e16d Expose WhatsApp responsiveness doctor lint findings (#98406)
Adds a default-disabled Doctor lint check for WhatsApp responsiveness pressure while keeping real cleanup in the existing doctor --fix path.

Verification:
- Focused WhatsApp responsiveness/contribution Vitest passed (71 tests).
- Changed-file oxfmt passed.
- Changed-file oxlint with core tsconfig passed.
- SDK surface report passed.
- SDK export sync passed.
- git diff --check passed.
- Selected source CLI proof passed earlier on this head: doctor --lint --json --only core/doctor/whatsapp-responsiveness exited 0, ran 1 check, and did not create <state>/identity/device.json.
- Exact-head hosted checks passed/skipped on 39f003931ff8cd93f945e75bf7a480cf2271c910; older cancelled proof/auto-response runs were superseded by passing current runs.

Maintainer notes:
- ClawSweeper platinum hermit / ready for maintainer review.
- Accepted the opt-in lint check id and warning copy on the PR.
- No public config/plugin/SDK/persisted data contract change; default doctor --lint remains unchanged.
2026-07-03 11:55:10 -07:00
Ben.Li
df1452799b fix(android): preserve numeric invoke error codes (#99591)
* fix(android): preserve numeric invoke error codes

* fix(android): tighten invoke error code parsing

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-03 11:24:50 -07:00
Gio Della-Libera
43a7fd3839 Expose stale plugin runtime symlink doctor lint findings (#98729)
Adds a default-disabled Doctor lint check for stale plugin-runtime symlinks while keeping real deletion in the existing legacy doctor --fix cleanup path.

Verification:
- Focused plugin-runtime-symlink/contribution Vitest passed (65 tests).
- Changed-file oxfmt passed.
- Changed-file oxlint with core tsconfig passed.
- SDK surface report passed.
- git diff --check passed.
- Exact-head hosted checks passed/skipped on 287d2230ee.

Maintainer notes:
- ClawSweeper platinum hermit / ready for maintainer look.
- Accepted the new opt-in lint check id and warning copy on the PR.
- Local prepare wrapper pnpm check still fails on the npm shrinkwrap guard, and the same failure reproduces on current origin/main; treated as baseline local gate noise, not PR-caused.
2026-07-03 10:52:45 -07:00
zhang-guiping
0ad58848b3 fix(telegram): stop duplicate fallback when dispatch fails after final reply
Telegram no longer sends a generic "Something went wrong" fallback after a
final answer was already delivered and a later dispatch/cleanup step failed.
Failures with only partial or no visible output still send the error fallback
and stay retryable.

Related: #87299
Closes #90152
2026-07-03 09:37:48 -07:00
Ayaan Zaidi
48e8965b10 fix(agents): keep cli session binding facts session-stable
Keep CLI session reuse hashes keyed to stable session prompt facts while preserving per-turn room-event message-tool delivery for execution and MCP scoping.

Thread cliSessionBindingFacts from reply assembly through queued/followup CLI runs, make the stable CLI prompt delivery-neutral, and cover production-shaped room-event opts so forced message_tool_only delivery cannot poison binding identity.

Fixes #99372

Release note: Telegram/room-event CLI backends can resume sessions across interactive turns again instead of replaying full history after system-prompt invalidations.
2026-07-03 09:01:26 -07:00
Gio Della-Libera
6638a575d3 Expose legacy plugin dependency doctor lint findings (#98725)
Expose default-disabled Doctor lint findings for legacy plugin dependency state.

The check maps the existing safe cleanup-target detection into structured lint output while keeping real cleanup in the legacy doctor --fix path. Default doctor --lint remains unchanged; explicit --only and --all can include the new warning.

Validation:
- GitHub checks green on head 53c11a6f82
- ClawSweeper: proof sufficient, platinum hermit, ready for maintainer look
- Local post-rebase proof: focused Doctor Vitest, changed-file oxlint, changed-file oxfmt --check, and git diff --check all passed

Maintainer note: WSL maintainer wrapper path is unavailable on this host with Wsl/Service/CreateInstance/0x80072745, so this uses the steerable head-pinned squash path allowed by the current maintainer workflow docs.
2026-07-03 08:45:07 -07:00
Mason Huang
0d2aeb2a1e fix: harden docs map heading rendering (#99099)
Summary:
- The PR changes the docs map generator to escape HTML-significant heading text, regenerates `docs/docs_map.md`, and adds a Vitest regression for HTML-like headings.
- PR surface: Tests +13, Docs 0, Other +10. Total +23 across 3 files.
- Reproducibility: yes. Current main has source headings such as `docs/cli/agents.md:164` with `<id>`, while `docs/docs_map.md:1231` omits it and `scripts/generate-docs-map.mjs:90` strips `<...>` text.

Automerge notes:
- No ClawSweeper repair was needed after automerge opt-in.

Validation:
- ClawSweeper review passed for head 261466a2a8.
- Required merge gates passed before the squash merge.

Prepared head SHA: 261466a2a8
Review: https://github.com/openclaw/openclaw/pull/99099#issuecomment-4866739708

Co-authored-by: Mason Huang <masonxhuang@tencent.com>
Approved-by: hxy91819
2026-07-03 15:36:11 +00:00
Mason Huang
f3eccb0dfd fix: harden native i18n identifier filtering (#99098)
Summary:
- The PR replaces native i18n conditional-branch regex filtering with an exported linear ASCII scanner and adds focused coverage.
- PR surface: Tests +9, Other +36. Total +45 across 2 files.
- Reproducibility: yes. from source inspection: current main routes conditional-branch native literals through the backtracking-prone regex before inventory output. I did not run a timing benchmark against current main.

Automerge notes:
- No ClawSweeper repair was needed after automerge opt-in.

Validation:
- ClawSweeper review passed for head 97464c9635.
- Required merge gates passed before the squash merge.

Prepared head SHA: 97464c9635
Review: https://github.com/openclaw/openclaw/pull/99098#issuecomment-4866733462

Co-authored-by: Mason Huang <masonxhuang@tencent.com>
Approved-by: hxy91819
2026-07-03 15:28:17 +00:00
Matthew Delprado
235a5c4d74 fix(imessage): recognize bare hex group chat identifiers as chat targets (#99525)
* fix(imessage): recognize bare hex group chat identifiers as chat targets

A 32-char hex iMessage group chat identifier (as returned by `imsg` for
group chats) with no explicit `chat_identifier:` prefix fell through to
E.164 phone-number normalization. normalizeE164 strips non-digit
characters and prepends `+`, turning
`7d5297154d5f436d83dbbdf03fcc8fdd` into `+75297154543683038` -- a
bogus phone number. Cron/announce delivery then reported
`delivered: true` while silently sending to a nonexistent recipient.

Detect bare 32-char hex strings in both the send-path target parser
(extensions/imessage/src/targets.ts) and the outbound delivery-target
normalizer (extensions/imessage/src/normalize.ts) and route them as
chat_identifier targets, consistent with how an explicit
`chat_identifier:<id>` prefix already resolves.

Fixes #89235.

* refactor(imessage): centralize bare chat identifiers

* refactor(imessage): centralize bare chat identifiers

---------

Co-authored-by: Peter Steinberger <peter@steipete.me>
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-03 08:19:02 -07:00
snowzlm
ecc486bde2 fix(agents): preserve primitive tool result output (#99526)
* fix(agents): preserve primitive tool result output

* fix(agents): omit primitive inline payloads

* fix(agents): omit primitive inline payloads

---------

Co-authored-by: snowzlm <snowzlm@users.noreply.github.com>
Co-authored-by: Peter Steinberger <peter@steipete.me>
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-03 08:16:20 -07:00
pick-cat
b2620d7153 fix(infra): bound jsonl-socket response buffer to prevent OOM (#98130)
* fix(infra): bound jsonl-socket response buffer to prevent OOM

* fix(macos): cap exec host socket output

* fix(macos): satisfy swiftformat for exec limiter

* test(macos): prove exec host output cap on command output

* chore: keep jsonl socket cap scoped to infra

* fix(infra): raise jsonl socket buffer cap

* test(infra): prove jsonl socket cap beats timeout

* ci: rerun jsonl socket buffer bound checks

* fix(macos): cap exec host response output

* test(macos): avoid private exec response fixtures

* fix(macos): satisfy exec output limiter formatting

* fix(macos): avoid static self formatting conflict

* chore: keep jsonl socket guard infra-only

* fix(jsonl-socket): parse complete lines before enforcing the buffer cap

* chore: remove unnecessary return after finish(null)

* fix(infra): frame bounded JSONL socket lines

* fix(infra): frame bounded JSONL socket lines

* style(macos): keep exec limiter patch focused

* style(macos): keep exec limiter patch focused

* style(macos): satisfy exec limiter formatting

* style(infra): satisfy socket loop lint

---------

Co-authored-by: Peter Steinberger <peter@steipete.me>
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-03 08:15:47 -07:00
Chen Chia Yang
5342effebc fix(google-meet): force English Meet UI via hl=en so automation works on any locale (#89671)
Summary:
- The branch adds `forceMeetEnglishUi()` for Google Meet URLs, applies it to join/create browser opens, canonicalizes browser-created meeting links, and updates focused Google Meet tests.
- PR surface: Source +18, Tests +19. Total +37 across 6 files.
- Reproducibility: yes. Current main opens raw Meet URLs while the browser automation matches English-only lab ... R body provides after-fix CDP output showing non-English pages render expected English labels with `hl=en`.

Automerge notes:
- PR branch already contained follow-up commit before automerge: chore(tooling): add unused agent-cache-store files to knip optional a…
- PR branch already contained follow-up commit before automerge: fix(google-meet): repair non-Latin mic regex matching boundary
- PR branch already contained follow-up commit before automerge: revert(tooling): preserve current main deadcode allowlist guard
- PR branch already contained follow-up commit before automerge: revert(tooling): perfectly match origin/main deadcode list
- PR branch already contained follow-up commit before automerge: revert: match origin/main deadcode list exactly

Validation:
- ClawSweeper review passed for head 880a41b6f0.
- Required merge gates passed before the squash merge.

Prepared head SHA: 880a41b6f0
Review: https://github.com/openclaw/openclaw/pull/89671#issuecomment-4608725456

Co-authored-by: Chen Chia Yang <unayung@gmail.com>
Approved-by: hxy91819
2026-07-03 15:00:34 +00:00
LZY3538
e272da5c55 fix: keep always-on group fallback messages in dispatch (#99506)
* fix(auto-reply): honor always-on plugin fallback groups

* fix(channels): preserve mention policy across bindings

* test(discord): type mention policy dispatch context

* test(discord): type mention policy dispatch context

* fix(whatsapp): preserve effective mention policy

* fix(whatsapp): preserve effective mention policy

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
Co-authored-by: Peter Steinberger <peter@steipete.me>
2026-07-03 07:26:45 -07:00
github-actions[bot]
0924bee96b chore(i18n): refresh native sv locale 2026-07-03 14:15:37 +00:00
github-actions[bot]
a6a4792098 chore(i18n): refresh native ru locale 2026-07-03 14:14:39 +00:00