Vincent Koc
88876f780b
fix(android): preserve device work across lifecycle changes ( #116593 )
...
* fix(android): use configured SDK for screenshot AVDs
* fix(android): keep chat jump control clear of messages
* fix(wear): ignore stale control completions
* fix(android): advertise node permission changes
* fix(android): select play flavor for benchmarks
* test(android): decouple cron benchmark from copy
* fix(android): install play variant in perf scripts
* fix(wear): clear gateway control busy state
* fix(android): surface voice e2e connection errors
* test(android): cover common live node commands
* fix(android): retain share parsing across recreation
* fix(android): retain permission requests across recreation
* fix(wear): bind realtime audio to talk attempts
* fix(android): track active permission host
* fix(wear): own gateway control busy state
* fix(wear): admit realtime channels by attempt
* fix(android): refresh permissions on top resume
* fix(wear): serialize reconnect retirement with writes
* chore(i18n): refresh native source inventory
* fix(wear): retain pending audio through start RPC
* fix(wear): negotiate realtime channel compatibility
* test(wear): assert reconnect outcome without owner churn
* fix(android): move settings prompt with active host
* fix(wear): reject stale relay starts
* chore(changelog): leave notes to release generation
2026-07-31 09:49:11 +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
c0a472f0b2
chore(i18n): refresh native locales ( #115532 )
2026-07-29 13:11:40 +08:00
Vincent Koc
d92062b970
fix(android): respect locale in compact labels
2026-07-28 23:49:44 +08:00
Chris M.
37bddc75cc
fix(android): finish Wear OS release readiness [AI-assisted] ( #110425 )
...
* fix(android): harden Wear release quality
* fix(android): use Wear minimum touch targets
Co-authored-by: Chris Mish <chrism@promethean-dynamic.com >
* fix(android): localize Wear accessibility actions
Co-authored-by: Chris Mish <chrism@promethean-dynamic.com >
* fix(android): preserve dictation without live voice
Co-authored-by: Chris Mish <chrism@promethean-dynamic.com >
* fix(android): isolate Wear locale source changes
Co-authored-by: Chris Mish <chrism@promethean-dynamic.com >
* fix(android): keep Wear dictate preview exclusive
Co-authored-by: Chris Mish <chrism@promethean-dynamic.com >
* fix(android): separate large-font Wear hit targets
Co-authored-by: Chris Mish <chrism@promethean-dynamic.com >
* test(pr): isolate review artifact ripgrep fixture
* ci: extend embedded-agent fork watchdog
* refactor(android): clarify Wear voice action availability
* style(android): preserve Wear locale source lines
* chore(i18n): refresh native source inventory
* style(android): restore Wear label indentation
---------
Co-authored-by: Chris Mish <chrism@promethean-dynamic.com >
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-28 05:41:53 -04:00
Vincent Koc
9000da0451
refactor(android): remove unused Wear voice button ( #115061 )
2026-07-28 16:19:34 +08:00
Vincent Koc
7838c6a6fd
fix(apps): fence stale mobile delivery state
2026-07-28 08:15:52 +02:00
NianJiu
aa26ecfac1
fix(android): Wear Talk works after exiting and reopening ( #112383 )
...
* fix(android): scope Wear Talk client to ViewModel
* test(android): exercise Wear ViewModel factory lifecycle
Co-authored-by: NianJiuZst <180004567+NianJiuZst@users.noreply.github.com >
---------
Co-authored-by: NianJiuZst <180004567+NianJiuZst@users.noreply.github.com >
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-27 23:35:10 -04:00
Peter Steinberger
935ee7fedf
fix(wear): keep active watch replies when older turns finish ( #113804 )
...
* fix(wear): preserve active replies when older turns end
* fix(wear): isolate terminal events at the watch
---------
Co-authored-by: Peter Steinberger <steipete@golden-gate.local >
2026-07-25 12:42:42 -07:00
WhatsSkiLL
b3752e375d
feat(android): add Wear instant talk tile ( #112721 )
...
* feat(android): add Wear instant talk tile
* fix(android): preserve Wear screenshot warm launches
* fix(android): preserve Wear state on warm launch
---------
Co-authored-by: Colin <colin@solvely.net >
2026-07-22 19:28:41 -04:00
WhatsSkiLL
80aaaeea3e
fix(android): respect reduced motion in Wear avatar ( #112245 )
...
* fix(android): respect reduced motion in Wear avatar
* fix(android): observe effective Wear animation scale
* fix(android): refresh legacy Wear motion scale
* fix(android): initialize Wear motion scale before snapshot observation
---------
Co-authored-by: Colin <colin@solvely.net >
2026-07-22 09:22:29 -04:00
Peter Steinberger
bd03b4d658
fix(i18n): regenerate native locale artifacts after Android inventory drift
2026-07-21 14:15:31 -07:00
Vincent Koc
c6c1151c3a
build(i18n): generate Wear locale resources
2026-07-21 17:36:49 +08:00
Vincent Koc
6a26f9f383
fix(android): localize Wear connection failures
2026-07-21 17:36:49 +08:00
joshavant
9089e33a1a
Android: add Wear OS screenshot pipeline
2026-07-21 00:06:15 -05:00
WhatsSkiLL
ec9bc46e80
Wear: animate Talk avatar from playback audio ( #111516 )
...
* Wear: animate Talk avatar from playback audio
* fix(wear): preserve PCM mouth frame continuity
---------
Co-authored-by: Colin <colin@solvely.net >
2026-07-20 12:33:09 -04:00
WhatsSkiLL
50ce5dedea
fix(android): improve Wear thread follow behavior ( #111459 )
...
* improve(android): move Wear agent, session, and model pickers to Home
* fix(android): improve Wear thread follow behavior
* fix(android): stabilize Wear thread follow lifecycle
* fix(android): keep streamed Wear tail visible
Co-authored-by: JARVIS-Glasses <whatsskilll@gmail.com >
---------
Co-authored-by: Colin <colin@solvely.net >
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-19 10:54:10 -07:00
WhatsSkiLL
e24420bc1c
fix(android): stabilize Wear realtime Talk audio and tool calls ( #111033 )
...
* fix(android): relay Wear realtime Talk tool calls
* fix(android): preserve Wear realtime audio streams
* refactor(android): share realtime agent coordination
Co-authored-by: JARVIS-Glasses <whatsskilll@gmail.com >
* fix(android): bound Wear realtime audio pipelines
Co-authored-by: JARVIS-Glasses <whatsskilll@gmail.com >
* fix(android): close realtime correlation races
Co-authored-by: JARVIS-Glasses <whatsskilll@gmail.com >
* fix(android): scope realtime correlation jobs
Co-authored-by: JARVIS-Glasses <whatsskilll@gmail.com >
* fix(android): bound Wear realtime audio work
Co-authored-by: JARVIS-Glasses <whatsskilll@gmail.com >
* fix(android): bound realtime run correlation
Co-authored-by: JARVIS-Glasses <whatsskilll@gmail.com >
* fix(android): stop stale Wear audio delivery
Co-authored-by: JARVIS-Glasses <whatsskilll@gmail.com >
* fix(android): track Wear playback per chunk
Co-authored-by: JARVIS-Glasses <whatsskilll@gmail.com >
* chore(android): refresh native i18n inventory
Co-authored-by: JARVIS-Glasses <whatsskilll@gmail.com >
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-19 05:21:38 -07:00
WhatsSkiLL
19184a9fc6
improve(android): move Wear agent, session, and model pickers to Home ( #110661 )
...
* improve(android): move Wear agent, session, and model pickers to Home
* fix(android): harden Wear home context controls
Co-authored-by: JARVIS-Glasses <whatsskilll@gmail.com >
* fix(android): preserve Wear session model in capped lists
Co-authored-by: JARVIS-Glasses <whatsskilll@gmail.com >
* fix(android): scope Wear model catalogs to sessions
Co-authored-by: JARVIS-Glasses <whatsskilll@gmail.com >
* fix(android): harden Wear context request ordering
Co-authored-by: JARVIS-Glasses <whatsskilll@gmail.com >
* fix(android): scope Wear model responses to event cursors
Co-authored-by: JARVIS-Glasses <whatsskilll@gmail.com >
* fix(android): reload Wear catalog after model selection
Co-authored-by: JARVIS-Glasses <whatsskilll@gmail.com >
* fix(android): keep bounded Wear models navigable
Co-authored-by: JARVIS-Glasses <whatsskilll@gmail.com >
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-18 23:57:25 +01:00
Chris M.
cc920838bc
fix(android): recover Wear requests from stale phone routes ( #110423 )
...
* fix(android): harden Wear phone routing
* fix(android): preserve proven Wear phone routes
Co-authored-by: Chris Mish <chrism@promethean-dynamic.com >
* fix(android): guard Wear discovery invalidation
Co-authored-by: Chris Mish <chrism@promethean-dynamic.com >
---------
Co-authored-by: Chris Mish <chrism@promethean-dynamic.com >
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-18 11:33:57 +01:00
WhatsSkiLL
9f25b0dc12
fix(android): polish Wear light and dark surfaces ( #110314 )
2026-07-18 03:32:43 +01:00
WhatsSkiLL
9dedacf577
fix(android): restore the complete Wear companion experience ( #110130 )
...
* fix(android): restore full Wear companion UI
* chore(android): sync native i18n inventory
* fix(android): negotiate Wear companion capabilities
* chore(android): sync generated Japanese localization
* fix(android): preserve Wear reply notification setup
Co-authored-by: JARVIS-Glasses <whatsskilll@gmail.com >
* fix(android): harden Wear conversation controls
Co-authored-by: JARVIS-Glasses <whatsskilll@gmail.com >
* fix(android): preserve Wear control context
Co-authored-by: JARVIS-Glasses <whatsskilll@gmail.com >
* fix(android): keep Wear sessions agent-scoped
Co-authored-by: JARVIS-Glasses <whatsskilll@gmail.com >
* fix(android): isolate Wear conversation context
Co-authored-by: JARVIS-Glasses <whatsskilll@gmail.com >
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-18 00:03:45 +01:00
WhatsSkiLL
4d3b18811e
feat(android): add Wear real-time Talk controls ( #109483 )
...
* feat(android): add Wear real-time Talk controls
* fix(android): satisfy Wear Talk CI checks
* fix(talk): remove unused client language parameter
* fix(android): harden Wear realtime Talk routing
Co-authored-by: IWhatsskill <284122573+IWhatsskill@users.noreply.github.com >
* chore(android): refresh Wear Talk metadata
* chore(android): align native i18n baseline
---------
Co-authored-by: IWhatsskill <284122573+IWhatsskill@users.noreply.github.com >
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-17 13:46:05 +01:00
Peter Steinberger
8d5e39afcd
feat(android): add Wear OS companion ( #109433 )
...
* feat(android): add Wear OS companion
Co-authored-by: Sebastian Schubotz <git@sibbl.net >
Co-authored-by: IWhatsskill <284122573+IWhatsskill@users.noreply.github.com >
* style(android): format Wear release gate test
* test(android): cover Wear release CI contracts
* test(android): import Wear JSON fixture type
* fix(android): harden Wear proxy event actor
* test(android): stabilize Wear proxy actor tests
* test(android): isolate Wear proxy actor lifecycles
* test(android): own Wear actor dispatchers
* test(android): use real time for Wear actor tests
* test(android): own Wear actors in test scope
* test(android): stop Wear actors explicitly
* test(android): drain Wear actor cancellation
* test(android): isolate Wear actors from test scheduler
* test(android): inject Wear test clock
---------
Co-authored-by: IWhatsskill <284122573+IWhatsskill@users.noreply.github.com >
2026-07-16 20:59:29 -07:00