Commit graph

4769 commits

Author SHA1 Message Date
Vincent Koc
1636b8d82b
test(android): cover common live node commands 2026-07-30 18:37:34 +02:00
Vincent Koc
668721bcfc
fix(macos): coalesce tailscale status checks (#116321) 2026-07-31 00:19:51 +08:00
Peter Steinberger
d962a3d9c1
fix(ios): avoid duplicate URLs in shared drafts (#116430)
* fix(ios): deduplicate shared URLs

* test(ios): prove share provider extraction
2026-07-30 09:09:35 -07:00
Vincent Koc
9e8cc6fe8a
fix(macos): avoid identity reads during menu rendering (#116435)
* fix(macos): avoid identity reads during menu rendering

* chore(i18n): refresh native source inventory
2026-07-30 23:56:19 +08:00
Vincent Koc
3cf98a8708
test(ios): cover auth cleanup during gateway forget (#116425) 2026-07-30 15:46:59 +00:00
Vincent Koc
6959a3e390
fix(macos): avoid repeated endpoint source reads (#116421) 2026-07-30 23:19:06 +08:00
Peter Steinberger
7fa95e2656
feat(ui): add composable skill references (#116330)
* feat(ui): add composable skill references

* fix(ui): align skill reference CI contracts

* fix(ui): scope skill references to WebChat
2026-07-30 04:07:02 -07:00
joshavant
cc570a7453 chore(ios): refresh native i18n inventory 2026-07-30 03:04:42 -05:00
joshavant
28f73d93c1 fix(ios): isolate capability router handlers 2026-07-30 03:04:42 -05:00
joshavant
e6f7a400e2 docs(ios): cut 2026.7.22 release notes 2026-07-30 03:04:42 -05:00
Vincent Koc
1daea4c898
fix(macos): preserve replacement notification overlays (#116226) 2026-07-30 15:27:40 +08:00
openclaw-mantis[bot]
81d165c612
chore(i18n): refresh native locales (#116213)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-07-30 15:17:38 +08:00
joshavant
e4e7f37d24
chore(android): record 2026.7.4 Play metadata 2026-07-30 01:49:07 -05:00
joshavant
eb263c5104
chore(android): prepare 2026.7.4 Play release 2026-07-30 01:19:40 -05:00
Vincent Koc
cb75290edb
fix(macos): serialize voice wake trigger sync (#116202) 2026-07-30 12:01:26 +08:00
Vincent Koc
fa0bced544
fix(macos): preserve voice ear boost expiry (#116196) 2026-07-30 11:19:25 +08:00
Vincent Koc
86d300a3cb
fix(macos): stop canceled voice wake timers (#116189) 2026-07-30 10:55:34 +08:00
Vincent Koc
859280ee11
fix(macos): coalesce location permission requests (#116183) 2026-07-30 10:41:51 +08:00
Vincent Koc
5128df0cdd
fix(macos): guard remote tunnel restart ownership (#116172) 2026-07-30 10:29:33 +08:00
licheer-zte
6288a750ca
fix(android): move Wear capability keep rules to raw keep files to prevent resource shrinking (#116068)
* fix(android): move Wear capability keep rules to raw keep files

Resource-shrinker keep directives in res/values/*.xml are not honored
by Android's resource shrinker during release builds. Move the
tools:keep declarations into dedicated res/raw/*.keep.xml files as
documented by Android:
https://developer.android.com/topic/performance/app-optimization/customize-which-resources-to-keep

Fixes openclaw/openclaw#116049

* fix(android): rename keep files - use underscores instead of dots

Android resource names must contain only lowercase a-z, 0-9, and underscores.
Dots in file names cause build failure with AAPT2 resource merger.

- ai.openclaw.app.phone.keep.xml -> ai_openclaw_app_phone_keep.xml
- ai.openclaw.app.wear.keep.xml -> ai_openclaw_app_wear_keep.xml

---------

Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
2026-07-30 08:55:45 +08:00
Vincent Koc
514ab48d17
fix(macos): back off approval socket retries (#116125) 2026-07-30 07:52:01 +08:00
Vincent Koc
de67565cda
fix(macos): back off failed Gateway connects (#116114)
* fix(macos): back off failed gateway connects

* fix(macos): skip backoff for transport cancellation
2026-07-30 07:23:22 +08:00
Vincent Koc
246d878580
fix(macos): pause inactive canvas polling (#116106) 2026-07-30 06:32:46 +08:00
Vincent Koc
ee7b23dfe6
fix(macos): reduce permission polling allocation churn (#116092)
* fix(macos): reuse location manager for permission polling

* chore: remove release-owned changelog note

* test(macos): avoid volatile location status comparison
2026-07-30 06:10:25 +08:00
Vincent Koc
fc3f114a93
fix(macos): recover dashboard after gateway auth reconnect (#116080) 2026-07-30 05:22:38 +08:00
Vincent Koc
861b35ed44
fix(macos): allow dev source installs to finish (#116072) 2026-07-30 04:38:38 +08:00
Peter Steinberger
11de91ad03
fix(qa): forward-port beta 6 validation fixes (#116065)
* test(macos): avoid busy-spin timeout fixtures

* fix(qa): forward-port beta 6 validation fixes

* test(qa): complete Telegram run options fixture
2026-07-29 16:21:04 -04:00
Vincent Koc
b0a091644f
fix(macos): prevent app stalls from stuck subprocess probes (#115938)
* refactor(macos): pin subprocess groups through cleanup

* refactor(macos): keep bounded process probes async

* test(macos): cover async process probe limits

* fix(macos): preserve local gateway version fallback

* test(macos): cover gateway version probe fallback

* fix(macos): handle subprocesses that exit before monitoring

* test(macos): stress instant bounded process exits

* fix(macos): close bounded process exit registration race

* fix(macos): preserve bounded probe output ordering

* fix(macos): propagate bounded process cancellation

* fix(macos): recover missed subprocess exit events

* chore(macos): refresh native i18n inventory

* fix(macos): reject invalid process argument bytes
2026-07-29 20:12:35 +00:00
Peter Steinberger
0021e51f22
feat(apple): media renditions, Now Playing, video upload (#116051)
* feat(apple): complete media playback and uploads

* fix(apple): preserve movie picker metadata

* fix(apple): harden rendition and picker routing

* style(apple): fix macOS media formatting
2026-07-29 15:50:18 -04:00
Peter Steinberger
e1cc617f86
feat(android): media renditions, MediaSession, video upload (#116037)
* feat(android): add media rendition and video support

* chore(android): refresh native i18n inventory

* fix(android): opt in to Media3 command API

* chore(android): sync native i18n source locations
2026-07-29 15:44:04 -04:00
Peter Steinberger
e0ab154e5e
fix(ui): explain unavailable MCP tool catalogs (#115994)
* fix(ui): explain undiscovered MCP tools

* fix(ui): scope MCP discovery notices to the viewed connector
2026-07-29 15:12:08 -04:00
Peter Steinberger
777cfed85a
feat(mac): hand off gateway-owned settings panes to the dashboard (#115999)
* feat(mac): hand off gateway-owned settings panes to the dashboard

Gateway-config Settings tabs (Channels, Skills, Cron Jobs, Threads,
Instances) now default to a native handoff page with an Open in Dashboard
deep link; a Debug toggle re-enables the legacy native panes. Adds an
openclaw:native-navigate host->shell event with generation-guarded URL
fallback, and lifts the dashboard route map + same-app path validation
into OpenClawKit for future iOS reuse. Exec Approvals stays native: the
Dashboard's host-native policy editor is read-only by contract.

* fix(mac): satisfy native-i18n inventory and type budget

* fix(mac): refresh native i18n source locations
2026-07-29 14:12:42 -04:00
Peter Steinberger
ff72f287c3
fix(gateway): declare viewer presence explicitly instead of deriving it from subscriptions (#116001)
* fix(gateway): declare viewer presence explicitly instead of deriving it from subscriptions

* refactor(ui): isolate viewer presence lifecycle ownership

* chore(protocol): register viewer presence schema owner

* fix(ui): keep viewer presence cleared after detach

* chore: drop changelog edits from this PR

CHANGELOG.md is release-owned; release generation derives entries from merged
PRs. Release-note context stays in the PR body.
2026-07-29 13:56:54 -04:00
Peter Steinberger
a914fcd1f7
fix(mac): hide duplicate Gateway in dashboard picker over SSH (#115963)
* fix(mac): dedupe active SSH gateway profile

* fix(mac): dedupe gateway before tunnel readiness

* chore(mac): defer release note to release process
2026-07-29 12:27:32 -04:00
Vincent Koc
e94693aa52
fix(macos): enable keyboard navigation in web views 2026-07-29 22:59:39 +08:00
Peter Steinberger
afae681085
feat(apple): add inline media players (#115903) 2026-07-29 10:36:38 -04:00
Peter Steinberger
80176dab8d
feat(android): inline audio/video players with Media3 (#115916)
* feat(android): add inline media players

* fix(android): release inactive media players

* fix(android): preserve paused media playback

* test(android): include Media3 license notice

* chore(android): refresh native i18n inventory
2026-07-29 10:26:45 -04:00
Peter Steinberger
68a3d28906
fix: keep content after HTML-backed disclosures visible (#115877)
* fix(chat): close disclosures in coalesced HTML

Keep model-authored details closers visible to the shared disclosure contract when CommonMark absorbs them into type-6 HTML blocks across the Control UI and native apps.

* refactor(apps): isolate disclosure unfolding

Keep the native disclosure segmenter below its lint complexity and type-size limits, and refresh the source-owned native i18n inventory after the move.

* fix(apps): align disclosure helper visibility

Keep the extracted same-file helper compatible with Swift access control while leaving its implementation types hidden outside the source file.

* fix(apps): align source replacement visibility

Keep the source replacement helper at the same file-private boundary as the extracted disclosure unfolding types.
2026-07-29 10:24:46 -04:00
Vincent Koc
0686676ebd
perf(macos): reduce onboarding mascot redraw cadence (#115896) 2026-07-29 21:50:05 +08:00
Vincent Koc
592f81ca33
fix(macos): eliminate subprocess polling for SSH tunnel readiness (#115846)
* fix(macos): inspect tunnel listener sockets in process

* test(macos): cover exact process listener inspection

* fix(macos): scan listeners to the child fd limit

* refactor(macos): normalize libproc byte counts

* chore(macos): keep release notes in the PR
2026-07-29 21:48:52 +08:00
Vincent Koc
1c3e669f30
fix(macos): bound SSH tunnel teardown (#115861)
* fix(macos): bound SSH tunnel teardown

* test(macos): cover resistant tunnel process groups

* fix(macos): escalate surviving tunnel process groups

* chore(i18n): refresh macOS tunnel source offsets

* chore(macos): keep release notes in the PR

* refactor(macos): own SSH tunnel process lifecycle

* test(macos): stress tunnel teardown lifecycle

* fix(macos): unpublish tunnels before async teardown

* chore(i18n): refresh macOS tunnel source offsets

* test(macos): remove unused tunnel process accessor

* fix(macos): preserve tunnel launch diagnostics

* test(macos): cover tunnel launch failures

* chore(i18n): refresh tunnel diagnostic offsets
2026-07-29 21:47:25 +08:00
Vincent Koc
7d00787e20
fix(macos): skip unchanged config forensics (#115886)
* perf(macos): skip unchanged config forensics

* test(macos): cover config forensic read caching

* test(macos): make config metadata changes deterministic
2026-07-29 21:42:36 +08:00
Vincent Koc
cba59e4674
fix(macos): prevent remote discovery hangs during Tailscale checks (#115852)
* fix(macos): bound discovery subprocess execution

* refactor(macos): migrate tailscale discovery runner

* refactor(macos): make wide-area discovery asynchronous

* test(macos): prove discovery subprocess cleanup

* chore(macos): keep release notes in the PR
2026-07-29 21:38:57 +08:00
Colin Johnson
306c02af57
feat(ui): preview session workspace images (#95956)
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-29 09:22:46 -04:00
Peter Steinberger
adf3178ae6
feat(gateway): expose MCP tool identity in effective tools (#115870)
* feat(gateway): expose MCP tool identity in effective-tools catalog

* docs(agents): comment utility-tool pass gate invariant
2026-07-29 08:41:04 -04:00
Vincent Koc
6e046daf82
fix(macos): reap timed-out shell process groups (#115859)
* fix(macos): reap timed-out shell process groups

* test(macos): cover shell timeout process cleanup

* fix(macos): finish timeout process-group escalation

* fix(macos): preserve inherited shell input

* chore(macos): keep release notes in the PR
2026-07-29 20:28:16 +08:00
Peter Steinberger
1ab4e08d62
fix: expanded disclosures render their content on Apple platforms (#115863)
* fix(apps): render disclosure body content on Apple platforms

* chore(apps): refresh native i18n inventory
2026-07-29 08:14:17 -04:00
Peter Steinberger
8915f9c337
fix(gateway): prevent overlapping setup after wizard cancellation (#115856)
* fix(wizard): retain cancelled sessions until runner settles

* fix(wizard): purge cancelled sessions after settlement

* test(gateway): cover settled wizard replacement

* test(gateway): split wizard cancellation e2e

* test(gateway): fix wizard e2e env key types

* fix(gateway): forward daemon choice through wizard RPC

Co-authored-by: TheAngryPit <16145902+TheAngryPit@users.noreply.github.com>

* test(gateway): harden wizard cancellation cleanup

Co-authored-by: TheAngryPit <16145902+TheAngryPit@users.noreply.github.com>

* chore: drop changelog edit (release generation owns it)

---------

Co-authored-by: TheAngryPit <16145902+TheAngryPit@users.noreply.github.com>
2026-07-29 07:49:25 -04:00
Peter Steinberger
4c4aa2ed12
feat(gateway): manage audio and video attachments end to end (#115842)
* feat(gateway): manage audio and video attachments

* feat(gateway): preserve generated media metadata

* fix(gateway): align seeded managed media

* fix(gateway): scope pending media trust by URL

* fix(gateway): split managed media by trust

* fix(gateway): require terminal media trust unanimity

* fix(gateway): align managed media metadata types

* fix(gateway): refresh managed media contracts

* chore(ci): model managed media test seams

* test(sessions): expect canonical media kinds
2026-07-29 07:27:36 -04:00
Peter Steinberger
662abec754
feat(gateway): push session PR indicators to subscribed clients (#115643)
* feat(gateway): push session PR indicators to subscribed clients

* test(gateway): fix PR indicator drift

* chore(protocol): allowlist PR-indicator event for native apps (Control UI surface)

* test: align PR indicator lifecycle coverage

* fix(ui): scope session PR store listeners to active watchers
2026-07-29 06:30:01 -04:00