Commit Graph

66940 Commits

Author SHA1 Message Date
github-actions[bot]
6ea407d462 chore(i18n): refresh native it locale 2026-07-02 16:29:31 +00:00
Ayaan Zaidi
dad7768da8 docs(telegram): document group history removal 2026-07-02 09:22:59 -07:00
Ayaan Zaidi
b07fd6f1b4 fix(telegram): keep group history always on 2026-07-02 09:22:59 -07:00
github-actions[bot]
e8e96bf7ee chore(i18n): refresh native hi locale 2026-07-02 16:19:06 +00:00
github-actions[bot]
0c82908f78 chore(i18n): refresh native ar locale 2026-07-02 16:16:54 +00:00
Shakker
c032f9809d fix: preserve built-in channel auto-enable fallback 2026-07-02 17:13:38 +01:00
Shakker
d2d20b5fed test: cover repaired channel plugin allowlist 2026-07-02 17:13:38 +01:00
Jacob Tomlinson
48f4a09e1f fix: enable repaired Mattermost plugin on startup 2026-07-02 17:13:38 +01:00
Ayaan Zaidi
e08102820e fix(agents): generalize group message-tool etiquette 2026-07-02 09:12:35 -07:00
Ayaan Zaidi
59a6240dae fix(auto-reply): default room events to silence 2026-07-02 09:12:35 -07:00
github-actions[bot]
28a8414726 chore(i18n): refresh native fr locale 2026-07-02 16:02:10 +00:00
github-actions[bot]
db27d2ecfa chore(i18n): refresh native ko locale 2026-07-02 15:57:47 +00:00
Ayaan Zaidi
4d5dac1836 fix(auto-reply): preserve ambient overflow summary kind 2026-07-02 08:53:10 -07:00
Ayaan Zaidi
519158c576 fix(auto-reply): suppress room-event followup notices 2026-07-02 08:53:10 -07:00
Ayaan Zaidi
dbccddbf34 fix(auto-reply): suppress room-event fast progress dispatch 2026-07-02 08:53:10 -07:00
Ayaan Zaidi
5fc9b20d24 fix(gemini): stage CLI auth inside run queue
Fixes #98945
2026-07-02 08:49:40 -07:00
Ayaan Zaidi
cc5804868f fix(cli-runner): handle variadic Claude MCP configs
Fixes #98944
2026-07-02 08:49:40 -07:00
github-actions[bot]
f8e1e0c5bf chore(i18n): refresh native pt-BR locale 2026-07-02 15:45:23 +00:00
Shakker
e4194df270 fix: skip native Swift conditional interpolations 2026-07-02 16:32:22 +01:00
github-actions[bot]
3020f7817e chore(i18n): refresh native es locale 2026-07-02 15:20:18 +00:00
github-actions[bot]
a39b07bb15 chore(i18n): refresh native de locale 2026-07-02 15:09:28 +00:00
github-actions[bot]
f0d2066787 chore(i18n): refresh native zh-TW locale 2026-07-02 14:54:43 +00:00
github-actions[bot]
e7e98f6399 chore(i18n): refresh native zh-CN locale 2026-07-02 14:52:40 +00:00
Shakker
28fee00559 fix: retry repository OpenAI key for locale refresh 2026-07-02 15:40:44 +01:00
Shakker
4614449d98 fix: fall back to OpenAI for locale refresh 2026-07-02 15:25:14 +01:00
NeatGuyCoding
76ccd17ac3 test(android): poll for stale TLS probe cleanup in auth test (#83826)
* test(android): poll for stale TLS probe cleanup in auth test

Signed-off-by: NeatGuyCoding <15627489+NeatGuyCoding@users.noreply.github.com>

* test(android): await stale TLS probe job

Co-authored-by: NeatGuyCoding <15627489+NeatGuyCoding@users.noreply.github.com>

---------

Signed-off-by: NeatGuyCoding <15627489+NeatGuyCoding@users.noreply.github.com>
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-02 07:18:27 -07:00
Masato Hoshino
40d4e32110 fix(android): show specific gateway auth-recovery reason instead of generic label (#98698)
* fix(android): distinguish gateway auth-recovery reasons instead of one generic label

gatewaySummary()/gatewayStatusLabel() collapsed every auth failure (expired
setup QR, missing/invalid token, missing/invalid password, stale device
identity) into "Authentication needed", discarding the already-computed
MainViewModel.gatewayConnectionProblem signal consumed elsewhere in the app
(OnboardingFlow's recoveryGatewayAuthDetail). Thread it into both status
labels via a shared gatewayAuthNeededSummary() helper so the Overview and
Settings screens tell the user which recovery action applies.

Fixes #98046

* test(android): lock gateway auth-needed labels to the real unauthorized message format

Verified against src/gateway/server/ws-connection/auth-messages.ts:
formatGatewayAuthFailureMessage always returns strings starting with
"unauthorized", which contains the "auth" substring the status-text gate
checks for. Add tests using the exact real-world message text (not just
synthetic "auth failed" strings) so this stays regression-locked.

* fix(android): widen the auth-needed status gate to cover device-identity failures

CONTROL_UI_DEVICE_IDENTITY_REQUIRED/DEVICE_IDENTITY_REQUIRED real gateway
messages ("device identity required", "control ui requires device
identity...") don't contain "auth", so the status.contains("auth") gate
never reached their specific label. Add "device identity" as an additional
substring the gate checks for those two codes, with regression tests using
the exact real message text (message-handler.ts).

Verified via GitHub-style codex review round 2 (round 1's "unauthorized
doesn't contain auth" claim was checked against source and rejected as
false — "unauthorized" does contain "auth" — but this second, narrower
finding about device-identity codes held up under the same source check).

* fix(android): centralize gateway auth status labels

* fix(android): correlate gateway connection diagnostics

* chore(android): align native i18n inventory after rebase

* fix(android): preserve retryable pairing guidance

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-02 06:50:26 -07:00
NianJiu
0ccdef5dcf [codex] Cancel Android gateway pending RPCs on close (#98067)
* fix: cancel Android gateway pending RPCs on close

* fix(android): isolate pending RPCs per connection

* style(android): separate RPC waiter invariant

* chore(android): align native i18n inventory

---------

Co-authored-by: NianJiuZst <180004567+users.noreply.github.com>
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-02 06:39:44 -07:00
NianJiu
e3f46d0926 [codex] Gate Android Talk capture starts in background (#98055)
* fix: gate Android talk capture starts

* refactor(android): make Talk capture policy explicit

---------

Co-authored-by: NianJiuZst <180004567+users.noreply.github.com>
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-02 06:22:26 -07:00
Mason Huang
b60e8c4838 ci: add process exec CodeQL security shard (#92667)
Summary:
- The PR adds a `process-exec-boundary` CodeQL high-security shard, wires it into the CodeQL workflow, expands PR path triggers for process-owning plugin/script paths, and updates CI docs.
- PR surface: Docs +1, Config +87. Total +88 across 3 files.
- Reproducibility: not applicable. this is CI/security-scanner configuration rather than a runtime bug. The behavior is source-reviewable and the exact-head `Security High (process-exec-boundary)` check passed.

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

Validation:
- ClawSweeper review passed for head 066d54b633.
- Required merge gates passed before the squash merge.

Prepared head SHA: 066d54b633
Review: https://github.com/openclaw/openclaw/pull/92667#issuecomment-4698545987

Co-authored-by: Mason Huang <masonxhuang@tencent.com>
Approved-by: hxy91819
2026-07-02 12:50:45 +00:00
Momo
3ae5e98bf6 fix(macos): stop runtime config-health sidecar access (#99039)
Summary:
- The PR removes macOS runtime reads and writes of `logs/config-health.json`, keeps config-health observation in process memory, and adds Swift tests for ignoring and not recreating the retired sidecar.
- PR surface: Other +22. Total +22 across 2 files.
- Reproducibility: yes. Current main still writes `logs/config-health.json` from the macOS config observation path, and the PR body includes before/after terminal output for that same Swift path.

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

Validation:
- ClawSweeper review passed for head 8cbc4e10d3.
- Required merge gates passed before the squash merge.

Prepared head SHA: 8cbc4e10d3
Review: https://github.com/openclaw/openclaw/pull/99039#issuecomment-4864550335

Co-authored-by: momothemage <niuzhengnan@163.com>
Approved-by: momothemage
2026-07-02 12:22:21 +00:00
NianJiu
98e97661da [codex] Fix Android camera snap cleanup (#98040)
* fix: release Android camera snap use case

* fix(android): release one-shot camera capture promptly

---------

Co-authored-by: NianJiuZst <180004567+users.noreply.github.com>
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-02 05:10:02 -07:00
Sahil Satralkar
496ce0e05d fix: Control row icons use inconsistent row styling (iOS) (#98936)
* fix: align iOS Control row icon styling

Closes #98916.

* chore(ios): sync native i18n inventory

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-02 05:07:02 -07:00
Lokimorty
4f933ccf7b fix(ios): gateway error shows twice on the Settings Gateway page (#98856)
* fix(ios): show gateway errors once as a swipeable animated toast

Gateway connection errors on the Settings > Gateway page appeared twice:
as the app-wide toast and again as an embedded banner section. Remove the
embedded banner (and its now-dead sheet/action helpers) so problems surface
only via the root toast, animate the toast in smoothly from the top, and
support swipe-up to dismiss with re-arm on new problems.

* fix(ios): re-surface gateway toast on repeated problem reports

A swiped-away toast stayed hidden when a retry failed with an identical
problem, because value equality alone produces no observable change. The
model now counts every problem report; a report while hidden re-shows the
toast, and a report while visible shakes it instead of stacking a new one.

* fix(ios): keep reset-onboarding action on the gateway toast and sync i18n inventory

The root toast is now the only gateway problem surface outside covers, so it
must keep the reset-onboarding primary action the removed settings banner had:
auth-token-mismatch problems now show Reset onboarding and run the full
GatewayOnboardingReset flow. Also refreshes the native i18n inventory for the
changed Swift strings.

* fix(ios): preserve gateway problem recovery state

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-02 04:50:12 -07:00
Sahil Satralkar
574604e3da fix: clean up iOS About page copy (#98985)
* fix: clean up iOS About page copy

* fix(ios): sync About copy inventory

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-02 04:09:29 -07:00
Pavan Kumar Gondhi
5bcd25f0fb fix(discord): gate guild metadata reads [AI] (#98966)
* fix(discord): gate guild metadata reads

* fix(discord): require guild-wide active thread reads
2026-07-02 15:26:36 +05:30
areslp
22d686d13e fix(feishu): include video upload duration (#98235) 2026-07-02 02:28:21 -07:00
Lokimorty
9d3e263365 fix(ios): back from settings details returns to the originating screen (#98898)
* fix(ios): back from settings details returns to the originating screen

Detail views reachable from multiple places (gateway, voice, notifications
settings) previously opened by switching to the canonical Settings tab, so
Back landed on the Settings root instead of the screen the user came from.
Phone tabs now push SettingsRoute details on their own NavigationStack via
PhoneTabSettingsHost, the Control hub pushes the gateway detail onto its own
stack, and the Approvals->Notifications shortcut appends instead of replacing
the path (phone and iPad). Global flows (deep links, onboarding, problem
banner, notification dialog) still jump to the canonical Settings tab.

* chore(i18n): sync native app i18n inventory line references

* test(ios): prove settings back navigation

* test(ios): prove settings back navigation

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-02 10:08:39 +01:00
Lokimorty
a8c7657cd7 fix(android): return settings details to their originating tab on Back (#98914)
* fix(android): return settings details to their originating tab on Back

* chore(i18n): refresh native string inventory for shell back label
2026-07-02 09:52:59 +01:00
NianJiu
04e4c3719d [codex] Support Android selected photo access (#98059)
* fix: support Android selected photo access

* fix(android): expose selected photo access in settings

---------

Co-authored-by: NianJiuZst <180004567+users.noreply.github.com>
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-02 09:36:58 +01:00
Momo
d45b8be939 fix(agents): preserve fresh tool result text under aggregate cap (#98955)
Summary:
- The branch updates agent tool-result truncation so live prompt projection protects trailing fresh tool-resul ... ges under the aggregate cap, adds a bounded aggregate elision marker, and extends focused truncation tests.
- PR surface: Source +54, Tests +124. Total +178 across 2 files.
- Reproducibility: yes. source-level: the linked issues give a deterministic saturated-history prompt projecti ...  clear tool-result text to empty. I did not run a live WebChat or Discord session in this read-only review.

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

Validation:
- ClawSweeper review passed for head 50069fdd6f.
- Required merge gates passed before the squash merge.

Prepared head SHA: 50069fdd6f
Review: https://github.com/openclaw/openclaw/pull/98955#issuecomment-4862947669

Co-authored-by: momothemage <niuzhengnan@163.com>
Approved-by: momothemage
2026-07-02 08:35:20 +00:00
Voscko
f2abf57d32 fix(android): make offline chat actionable (#94566)
* fix(android): make offline chat actionable

* fix(android): use structured offline recovery state

* chore(i18n): sync native string inventory

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-02 09:25:12 +01:00
OfflynAI
133ce01e4a feat(ios): PR1 brand color palette overhaul (#98930)
* feat(ios): align brand color tokens with design guide (PR1)

* fix(ios): preserve brand contrast

* fix(ios): cover tinted palette surfaces

* chore(ios): sync native i18n inventory

* chore(ios): sync native i18n inventory

* chore(ios): sync native i18n inventory

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-02 09:12:19 +01:00
qingminlong
c170e91529 fix(terminal): preserve sibling home-prefix paths (#98876)
* fix(terminal): preserve sibling home-prefix paths

* fix(terminal): avoid embedded home path rewrites

* fix(terminal): preserve punctuated sibling paths

* fix(terminal): tighten home path boundaries
2026-07-02 01:11:51 -07:00
Peter Steinberger
c4102f5d67 feat(ios): refine the chat experience (#98953)
* feat(ios): refine the chat experience

* feat(ios): refine the chat experience
2026-07-02 08:40:53 +01:00
qingminlong
a741956448 fix(mattermost): paginate peer directory members (#98877) 2026-07-02 00:40:24 -07:00
Dallin Romney
d32c4cf300 perf(build): canonicalize plugin SDK declarations (#98758) 2026-07-02 00:21:41 -07:00
Ben.Li
cb44f40474 fix(agents): preserve embedded completions usage (#96523)
Co-authored-by: Vincent Koc <25068+vincentkoc@users.noreply.github.com>
2026-07-02 00:07:21 -07:00
Peter Steinberger
be5906e19d fix(cron): restore persistent session targets (#98947)
Cron jobs run in the session they were created from unless the job explicitly requests an isolated fresh session.

Co-authored-by: Peter Steinberger <58493+steipete@users.noreply.github.com>
2026-07-02 07:48:50 +01:00
Peter Steinberger
2913d3aee9 fix(anthropic): restore Fable 5 Vertex simple completions (#98932)
* fix(anthropic): restore Fable 5 Vertex simple completions

* test(agents): satisfy custom API model types

* test(ci): route reliability test from temp helper

* test(agents): satisfy custom API model types
2026-07-02 07:16:39 +01:00