Commit Graph

4977 Commits

Author SHA1 Message Date
github-actions[bot] b280aea5db chore(i18n): refresh native vi locale 2026-07-02 20:01:43 +00:00
github-actions[bot] f92dd889a5 chore(i18n): refresh native th locale 2026-07-02 20:00:52 +00:00
github-actions[bot] 0603fec29d chore(i18n): refresh native pl locale 2026-07-02 19:59:47 +00:00
github-actions[bot] a971783563 chore(i18n): refresh native id locale 2026-07-02 19:58:55 +00:00
github-actions[bot] 04e1645cb5 chore(i18n): refresh native uk locale 2026-07-02 19:57:56 +00:00
github-actions[bot] a0fd6287a4 chore(i18n): refresh native tr locale 2026-07-02 19:57:00 +00:00
github-actions[bot] 1b3e78a52a chore(i18n): refresh native it locale 2026-07-02 19:56:01 +00:00
github-actions[bot] 76931e45bb chore(i18n): refresh native ar locale 2026-07-02 19:55:04 +00:00
github-actions[bot] e41d8e3345 chore(i18n): refresh native hi locale 2026-07-02 19:54:13 +00:00
github-actions[bot] 1bbcb5ecdb chore(i18n): refresh native fr locale 2026-07-02 19:53:27 +00:00
github-actions[bot] 0e2fdd1b03 chore(i18n): refresh native ko locale 2026-07-02 19:52:40 +00:00
github-actions[bot] b2554c8ce9 chore(i18n): refresh native es locale 2026-07-02 19:51:51 +00:00
github-actions[bot] 6cb4468a50 chore(i18n): refresh native de locale 2026-07-02 19:51:19 +00:00
github-actions[bot] 8648ec4494 chore(i18n): refresh native pt-BR locale 2026-07-02 19:51:02 +00:00
github-actions[bot] fa9ec20aa4 chore(i18n): refresh native zh-TW locale 2026-07-02 19:50:21 +00:00
github-actions[bot] de9a6bad95 chore(i18n): refresh native zh-CN locale 2026-07-02 19:50:14 +00:00
PollyBot13 8b99c45bbb fix: route iOS OpenAI realtime Talk through WebRTC (#98563)
* fix: route iOS OpenAI realtime talk through WebRTC

* fix(ios): harden native realtime routing

* fix(ios): preserve realtime route ownership

* fix(ios): balance realtime audio sessions

* chore(ios): sync native i18n inventory

* fix(ios): preserve Azure realtime relay

* fix(ios): harden realtime session recovery

* chore(ios): sync native i18n inventory

* fix(ios): preserve selected Azure realtime routing

* fix(ios): rotate terminal realtime sessions

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-02 12:49:23 -07:00
Ben.Li a51b06fd4d fix(android): strip ws scheme prefix from manual gateway host input (#99110)
* fix(android): strip ws scheme prefix from manual gateway host input

Reject bare ws:// in the Host field and normalize pasted ws:// LAN URLs
so manual onboarding resolves the real hostname instead of host ws.
Fixes #87216.

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

* fix(android): preserve complete manual gateway endpoints

* fix(android): preserve gateway i18n inventory

---------

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-02 11:43:31 -07:00
NianJiu db7bfc618d fix: require Android contact and calendar write permissions in onboarding (#99158)
* fix: require Android contact and calendar write permissions in onboarding

* refactor(android): share required onboarding permission groups

---------

Co-authored-by: NianJiuZst <180004567+users.noreply.github.com>
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-02 11:36:56 -07:00
Ben.Li 97ad0b7c21 fix(android): bracket IPv6 hosts in manual gateway URL composition (#99107)
* fix(android): bracket IPv6 hosts in manual gateway URL composition

Reuse formatGatewayAuthority when building manual gateway URLs so IPv6
loopback and LAN hosts parse correctly during onboarding connect setup.

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

* test(android): cover bracketed IPv6 gateway hosts

* fix(android): avoid gateway i18n inventory churn

---------

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-02 11:28:18 -07:00
NianJiu 36361fc2a0 fix(android): preserve split SMS permission grants (#99147)
* fix: preserve split SMS permission grants

* refactor(android): generalize split permission grant merging

---------

Co-authored-by: NianJiuZst <180004567+users.noreply.github.com>
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-02 11:21:00 -07:00
Ben.Li f2a708468a fix(android): ignore chat events with missing assistant role in voice text extraction (#99123)
* fix(android): ignore chat events with missing assistant role in voice text extraction

Voice chat event parsing now rejects messages without an explicit assistant role,
matching ChatController fail-closed behavior and preventing accidental TTS playback.

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

* fix(android): require canonical assistant role for voice events

---------

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-02 11:18:12 -07:00
github-actions[bot] 55ed57a4e3 chore(i18n): refresh native sv locale 2026-07-02 17:37:19 +00:00
github-actions[bot] 6afef15100 chore(i18n): refresh native fa locale 2026-07-02 17:24:41 +00:00
github-actions[bot] 267898cddb chore(i18n): refresh native ru locale 2026-07-02 17:23:44 +00:00
github-actions[bot] 203a896b27 chore(i18n): refresh native nl locale 2026-07-02 17:11:59 +00:00
github-actions[bot] d3d7282a8c chore(i18n): refresh native vi locale 2026-07-02 17:07:14 +00:00
github-actions[bot] 3f289fdb40 chore(i18n): refresh native th locale 2026-07-02 16:59:04 +00:00
github-actions[bot] 8a3935fe0b chore(i18n): refresh native pl locale 2026-07-02 16:54:54 +00:00
github-actions[bot] 019603d336 chore(i18n): refresh native id locale 2026-07-02 16:44:34 +00:00
github-actions[bot] 8c5adbfe3e chore(i18n): refresh native uk locale 2026-07-02 16:42:44 +00:00
github-actions[bot] 0011a18478 chore(i18n): refresh native tr locale 2026-07-02 16:32:59 +00:00
github-actions[bot] 6ea407d462 chore(i18n): refresh native it locale 2026-07-02 16:29:31 +00: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
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
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
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
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