Commit Graph

32 Commits

Author SHA1 Message Date
openclaw-mantis[bot] 0978e27f9d chore(i18n): refresh native locales (#127681)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-08-21 20:00:27 -07:00
WhatsSkiLL 407930cb6a feat(wear): add direct agent, session, and model pickers (#126863)
* feat(wear): add searchable context pickers

* fix(wear): simplify context picker rows

* fix(wear): prioritize chat actions over context

* fix(wear): keep chat follow above context controls

* fix(wear): keep context labels localized

* fix(wear): refine context picker layout and close

* fix(wear): sync picker locale resources

* fix(wear): negotiate picker search support

---------

Co-authored-by: IWhatsskill <284122573+IWhatsskill@users.noreply.github.com>
2026-08-21 11:54:47 -04:00
Peter Steinberger 3010318ba3 fix(android): isolate debug app installs (#125099) 2026-08-16 23:36:57 -07:00
openclaw-mantis[bot] 2d322d1ae7 chore(i18n): refresh native locales (#124089)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-08-15 01:54:57 -07:00
WhatsSkiLL e37e63ceb6 feat(android): add Wear Agent Pulse (#122123)
* feat(android): add Wear agent pulse

* fix-android-wear-pulse-selected-session

* fix(android): count direct Wear Pulse subagents

* fix(android): gate Wear Pulse page by capability

* fix:bound-wear-pulse-gateway-reads

* fix: keep native locale artifacts generated

---------

Co-authored-by: IWhatsskill <284122573+IWhatsskill@users.noreply.github.com>
Co-authored-by: Colin Johnson <colin@solvely.net>
Co-authored-by: Solvely-Colin <159171061+Solvely-Colin@users.noreply.github.com>
Co-authored-by: Colin Johnson <211764741+Solvely-Colin@users.noreply.github.com>
2026-08-14 12:22:26 -04:00
Peter Steinberger edf1777ddb refactor(i18n): re-key native i18n artifacts to content-hash identity (v2) (#123347)
* refactor(i18n): re-key native i18n artifacts to content-hash identity (v2)

The native inventory stored a write-only 'line' field per entry, so any
unrelated edit above a string rewrote apps/.i18n/native-source.json
(~half of all commits touching it were pure line-number churn). Identity
was (surface, path, source), duplicating the same string per file
(5385 entries for 4187 unique pairs) and churning IDs on file moves.
Locale artifacts were positional arrays repeating full English source
text, so one inserted string rewrote diff spans in all 21 files.

v2 artifacts: inventory entries keyed by (surface, source) with merged
per-site {path, kind} lists and pure sha256 content-hash IDs; locale
files become id-keyed sorted translation maps. Existing translations
carry over by source match with a deterministic duplicate pick; the
sticky-ID reuse machinery and positional validation are deleted.
Everything under apps/.i18n plus generated platform locale artifacts is
marked linguist-generated. ci-changed-scope gains a one-time
owner-complete migration escape mirroring the control-ui precedent.

CLI surface (baseline/check/sync/verify) and the locale-refresh
workflow are unchanged.

* ci: register run-attempt-state test in its Vitest lane

Commit e04dfd26e2 added extensions/codex/src/app-server/run-attempt-state.test.ts
without a lane owner, so the full-suite ownership audit
(test/vitest-projects-config.test.ts) fails on main. Register it in the
attempt-light shard alongside its run-attempt siblings.
2026-08-13 19:39:32 -07:00
WhatsSkiLL 62937ea6fc fix(android): keep Wear chat on the latest reply (#120307)
Co-authored-by: IWhatsskill <284122573+IWhatsskill@users.noreply.github.com>
2026-08-07 16:32:30 -04:00
Peter Steinberger 860b4ee4a7 test(android): share Wear transport fixtures (#118177) 2026-08-02 14:01:28 -07:00
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