Commit Graph

4775 Commits

Author SHA1 Message Date
Vincent Koc
6a5219765c chore(i18n): refresh native source inventory 2026-07-31 03:53:42 +08:00
Vincent Koc
d028a73639 style(macos): align scheduled task helpers 2026-07-31 03:53:42 +08:00
Vincent Koc
6876ae752a fix(macos): recheck scheduled task cancellation 2026-07-31 03:53:42 +08:00
Vincent Koc
6c8363f7b9 fix(macos): cancel stale store refresh work 2026-07-31 03:53:42 +08:00
Vincent Koc
50a3c4df8a fix(macos): stop periodic work on cancellation 2026-07-31 03:53:42 +08:00
Vincent Koc
b907309b35 perf(macos): reuse Tailscale discovery session (#116465)
* fix(macos): reuse tailscale discovery session

* test(macos): stabilize voice ears expiry assertion
2026-07-31 02:51:23 +08:00
Vincent Koc
8a12343efe fix(ios): stabilize Apple UI validation across runtimes (#116487)
* test(ios): align source guards with current contracts

* test(ios): stabilize cross-version UI automation

* test(ios): harden typography boundary audit

* test(ios): synchronize deterministic UI launches
2026-07-31 01:30:46 +08: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