Peter Steinberger
448b90a594
feat(android): adopt per-device app sessions ( #105115 )
...
* feat(android): adopt per-device app sessions
Co-authored-by: snowzlmbot <293528334+snowzlmbot@users.noreply.github.com >
* test(android): assert latest session adoption wins
---------
Co-authored-by: snowzlmbot <293528334+snowzlmbot@users.noreply.github.com >
2026-07-12 09:06:45 +01:00
WhatsSkiLL
604c026409
fix(android): keep session search in context ( #104792 )
...
Co-authored-by: Peter Steinberger <steipete@gmail.com >
Co-authored-by: IWhatsskill <284122573+IWhatsskill@users.noreply.github.com >
2026-07-12 06:27:07 +01:00
Peter Steinberger
ac89350327
feat(apps): review durable approvals on mobile ( #104913 )
...
* feat(apps): Android, iPhone, and Watch approval clients
Squash-rebased #103912 segment onto the deep-links tip on current main.
Native approval surfaces: iOS approval presentation with gateway-switch
lease preservation and resolution fencing, watchOS inbox + approval
actions with shipped-shape payload codec, Android approval notices with
publication-tokened dismissal. Native i18n inventory regenerated.
(cherry picked from commit 428a76670ffeede54248b7bd7aa4438e2589851b)
(cherry picked from commit 80225d5707c3645eeea5435f266131037b50ede6)
(cherry picked from commit 2a23b714dc30d773a294aa45adc617e46b80732e)
(cherry picked from commit 9ff1153827769e2cbab7c11c153f0f8634662c28)
(cherry picked from commit 5b25723525bd562e5f97478af492f7b46ad30fd1)
(cherry picked from commit 8c80e8467b5fe89aad0d4c74a0573f1600ed3af9)
(cherry picked from commit ad4037bc9846bf6f082b41c129ee68aa344576c3)
(cherry picked from commit fdf767dd662cff3c8a5a6d571f38f153410651ca)
(cherry picked from commit 00c120376ffd992ea68ce29254a9bc0a25ed1740)
(cherry picked from commit f36a95213e )
(cherry picked from commit e2c25cbe2baacab44d21871d8cb6734704f065ac)
(cherry picked from commit 7c4fda519080486d341a9f4df36d63f9e24b1235)
(cherry picked from commit 1b3d4eda3dc5988012124597f9454ae21fb187a1)
(cherry picked from commit 2a60619722 )
(cherry picked from commit 6f0c386567 )
(cherry picked from commit 784a5857b7 )
(cherry picked from commit cbf294e026841c9bc2799da0fc7db666a69c52db)
* fix(apps): harden approval reconciliation and watch states
2026-07-11 19:59:07 -07:00
snowzlmbot
be373ea516
improve(android): show provider-configured model details ( #101912 )
...
* feat(android): show provider model inventory
Co-authored-by: snowzlmbot <293528334+snowzlmbot@users.noreply.github.com >
* fix(gateway): project provider inventory routes
* style(android): satisfy provider inventory ktlint
* chore(android): sync provider inventory i18n
* style(android): finish provider inventory formatting
* fix(android): harden provider inventory refresh
* test(gateway): type provider inventory fixture
* chore(protocol): regenerate Swift model choice
* chore(android): sync provider inventory i18n
* test(gateway): pin provider inventory discovery mode
* chore(android): sync provider inventory landing
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
Co-authored-by: snowzlmbot <293528334+snowzlmbot@users.noreply.github.com >
2026-07-11 17:22:16 -07:00
Igor Guarisma
4147345bcd
feat(android): show agent avatar instead of first-letter badge ( #103248 )
...
* feat(android): render configured agent avatars
Co-authored-by: Igor Guarisma <igor.guarisma@gmail.com >
* style(android): satisfy avatar ktlint
* style(android): fix avatar test formatting
* style(android): align avatar test indentation
* fix(android): initialize safe image client first
* chore(android): sync avatar i18n inventory
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-11 17:07:46 -07:00
NianJiu
d1f614c9e6
feat(android): add system share target ( #104571 )
...
* feat(android): receive system shares safely
Co-authored-by: NianJiuZst <3235467914@qq.com >
* fix(android): preserve share FIFO in composer
* fix(android): serialize cross-task share imports
* chore(android): sync share import i18n
* fix(android): retry shares in resumed composer
* chore(android): sync resumed share i18n
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-11 16:44:34 -07:00
Josh Avant
793fe4bfc7
fix(android): require installed-apps disclosure consent ( #97888 )
...
* fix(android): require installed-apps disclosure consent
Co-authored-by: Josh Avant <830519+joshavant@users.noreply.github.com >
* chore(android): sync native i18n inventory
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-11 15:56:12 -07:00
NianJiu
b5bea9073d
fix: recover Android permission request timeouts ( #103011 )
...
* fix(android): recover permission request timeouts
Co-authored-by: NianJiuZst <180004567+NianJiuZst@users.noreply.github.com >
* chore(android): sync native i18n inventory
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
Co-authored-by: NianJiuZst <180004567+NianJiuZst@users.noreply.github.com >
2026-07-11 15:35:41 -07:00
Peter Steinberger
7fe004d852
feat: show build identity in About screens ( #103595 )
...
* feat: show build identity in About screens
* chore: leave root changelog to release automation
* fix: translate Control UI About build details
2026-07-10 10:42:36 +01:00
joshavant
17fafcc901
chore(android): prepare 2026.7.1 Play release
2026-07-08 02:47:55 -05:00
WhatsSkiLL
4b3941c7f2
fix(android): tune screenshot mode visual sizing ( #100895 )
...
* fix(android): tune screenshot mode visual sizing
* chore(android): refresh screenshot i18n inventory
* refactor(android): simplify screenshot mode sizing
---------
Co-authored-by: IWhatsskill <284122573+IWhatsskill@users.noreply.github.com >
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-07 02:01:02 +01:00
WhatsSkiLL
bce414d8b8
improve(android): align command palette row affordances ( #101072 )
...
* android: tidy command palette row affordances
* docs(android): credit command palette polish
---------
Co-authored-by: IWhatsskill <284122573+IWhatsskill@users.noreply.github.com >
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-07 01:14:46 +01:00
Peter Steinberger
054e3675e1
feat(android): publish signed APKs with stable releases ( #101212 )
...
* feat(android): publish signed release APKs
* fix(android): preserve fallback corrections
* test(android): isolate APK signer fixtures
* docs: refresh generated docs map
2026-07-07 00:39:59 +01:00
Peter Steinberger
d931839e0c
feat(android): multi-gateway registry, per-gateway credentials, and switching ( #100947 )
2026-07-06 23:31:49 +01:00
Peter Steinberger
b05001a68b
fix(android): prevent native channel notification duplicates ( #101170 )
2026-07-06 21:12:08 +01:00
Peter Steinberger
2638113c68
feat(android): add Listen action speaking assistant messages via gateway TTS ( #100772 )
...
* docs(android): document the chat Listen action
* feat(android): add Listen action for assistant messages
2026-07-06 20:30:54 +01:00
Peter Steinberger
c4c4caadfe
fix(android): clarify SMS command authorization ( #100993 )
2026-07-06 18:36:05 +01:00
Peter Steinberger
d0dd18dd7f
feat(android): richer Settings About screen with mascot hero and project links ( #100994 )
2026-07-06 18:10:50 +01:00
Peter Steinberger
61a29a7836
feat(android): read-only workspace Files browser with preview and share ( #100776 )
...
* feat(android): add read-only workspace Files browser with preview and share
* fix(android): degrade malformed base64 image payloads to no-preview instead of crashing
* fix(android): keep workspace paths verbatim from the gateway
* test(android): cover the overview Files card in shell logic tests
* fix(android): reset workspace browser across agents
* fix(android): isolate workspace share exports
* docs(android): note workspace file browser
* chore(i18n): refresh Android Files inventory
* docs(android): refresh workspace files map
2026-07-06 17:14:38 +01:00
Peter Steinberger
063eeb69f3
feat(android): support opt-in background location ( #100967 )
...
* feat(android): support background location
Co-authored-by: Iori Kojima <iori@iori.dev >
* chore(android): refresh native i18n inventory
* docs(android): move release note to app changelog
---------
Co-authored-by: Iori Kojima <iori@iori.dev >
2026-07-06 16:36:58 +01:00
Peter Steinberger
8582895ca7
fix(android): finish onboarding after permission reapproval ( #100959 )
...
* fix(android): finish onboarding after permission reapproval
* chore(android): sync onboarding i18n inventory
2026-07-06 16:13:48 +01:00
Peter Steinberger
bc49cb41e9
fix(android): open system notifications on tap ( #100888 )
...
* fix(android): open system notifications on tap
* chore(android): sync notification i18n inventory
2026-07-06 14:14:29 +01:00
Peter Steinberger
876ab9bb0b
feat(android): add chat message actions ( #100879 )
...
* fix(android): add chat message actions
* chore(android): sync native i18n inventory
* fix(i18n): collect Android action labels
* fix(i18n): preserve Android placeholders
2026-07-06 13:50:16 +01:00
Peter Steinberger
90e1ef1768
fix(android): hide internal chat history rows ( #100826 )
...
* fix(android): hide internal chat history rows
* chore(android): sync native i18n inventory
2026-07-06 12:37:39 +01:00
Peter Steinberger
a467ceb523
fix(android): finish PTT relay handoff safely ( #100786 )
...
* fix(android): finish PTT relay handoff safely
* style(android): satisfy PTT ktlint
* test(android): make relay resume tests deterministic
* fix(android): recheck PTT finishing ownership
* chore(android): refresh native i18n inventory
2026-07-06 12:20:26 +01:00
Peter Steinberger
988c4d45dc
docs(android): credit landed app improvements ( #100702 )
...
* docs(android): credit landed app improvements
* docs: sync ClawHub map
2026-07-06 08:06:54 +01:00
Ben.Li
eda99cb8df
feat(android): reconnect gateway when validated network returns ( #100347 )
...
* feat(android): reconnect gateway when validated network returns
Co-authored-by: Cursor <cursoragent@cursor.com >
* fix(android): dedupe validated network reconnects
* fix(android): wake gateway reconnect backoff safely
* fix(android): close network monitor startup race
* chore(android): refresh native i18n inventory
---------
Co-authored-by: Cursor <cursoragent@cursor.com >
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-06 07:20:39 +01:00
Voscko
d924ddc428
feat(android): show cron job details ( #95107 )
...
* feat(android): add cron job detail view
* fix(android): harden cron job detail loading
* chore(android): refresh native i18n inventory
* test(plugins): register workboard typed hook
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-06 06:25:37 +01:00
Peter Steinberger
851156af3b
feat: animate the OpenClaw mascot across web, iOS, and Android
...
Ports the openclaw.ai hero mascot animation (body float 4s, eye blink 3s,
antenna wiggle 2s, staggered claw snaps 4s) to every product surface that
shows the logo:
- web: ui/public/favicon.svg now carries SMIL animations, so every <img>
usage (login gate, sidebar brand, agent avatar fallback) animates with
no markup changes; CSS animations do not run in <img>-loaded SVGs.
- iOS: new OpenClawMascotView renders the canonical 120x120 vector via
Canvas + TimelineView (30fps, honors Reduce Motion); OpenClawProMark
uses it in onboarding, sidebar, and command center. Static PNG imageset
deleted (watch app keeps its own copy).
- Android: new OpenClawMascot composable (PathParser + infinite
transitions, honors the OS animator scale) replaces the static vector
drawable in onboarding and the chat/shell/voice headers, with tint
support for the monochrome header silhouettes. Drawable deleted.
2026-07-04 20:14:34 -07:00
joshavant
341231831b
chore(android): prepare 2026.6.11 Play release
2026-07-01 17:26:11 -05:00
Vincent Koc
0671c08900
chore(release): close out 2026.6.10 on main ( #96271 )
...
* chore(release): close out 2026.6.10 on main
* chore(release): align native app metadata for 2026.6.10
* chore(release): sync Android 2026.6.10 notes
* docs(changelog): preserve 2026.6.9 history
* docs(changelog): preserve 2026.6.9 history
2026-06-24 11:51:14 +08:00
joshavant
9405b8f075
chore(android): prepare 2026.6.9 Play release
2026-06-23 14:23:52 -05:00
joshavant
529150868c
android: derive release notes from changelog
2026-06-17 11:05:53 +02:00