Peter Steinberger
8c3c8a2ab0
feat(android): show live subagent activity in chat ( #121813 )
...
* feat(android): show live subagent activity
* chore(android): mark task event handled
* fix(android): localize activity diff chips
* fix(android): reconcile dropped task activity
2026-08-10 21:08:44 -07:00
Peter Steinberger
d4fd9cc96a
fix(ui): restore settings search, media previews, clipboard, and native chat ( #116654 )
...
* fix(ui): restore search media and native text
* fix(native): unify visible chat text projection
* fix(ui): search composed array schemas
* fix(ui): keep config search off startup constraints
* fix(ui): honor schema and media path boundaries
2026-08-09 22:07:28 -07:00
Peter Steinberger
c3a0d3e58a
test(android): enforce shared talk config contract ( #121333 )
2026-08-09 18:55:04 -07:00
Peter Steinberger
0ef798d28d
fix(gateway): keep hello authorization aligned with RPC access ( #120888 )
...
* fix(gateway): separate socket and device token scopes
* chore(i18n): refresh native source baseline
* style(ios): keep gateway channel within lint limit
* refactor(gateway): simplify scope metadata decoding
* ci(ui): isolate real-gateway e2e suites
* docs(ci): align runner table formatting
* chore(plugin-sdk): refresh api baseline
* ci(ui): route real-gateway retries to hosted runners
* chore(plugin-sdk): repair generated api baseline
* test(ui): select Labs toggles by title
* fix(gateway): preserve stored scopes without wire metadata
2026-08-09 14:50:07 -07:00
WhatsSkiLL
d506f604d6
feat(android): add conversation reply notifications ( #120389 )
...
* feat(android): add conversation reply notifications
* fix(android): refresh native i18n inventory
* fix(android): harden conversation notification replies
* fix:android-conversation-notification-intent-hardening
* chore:i18n-refresh-native-source-inventory
* fix(android): notify completed background sessions
* fix/android-notification-reply-gateway-readiness
---------
Co-authored-by: IWhatsskill <284122573+IWhatsskill@users.noreply.github.com >
2026-08-09 11:37:16 -04:00
Peter Steinberger
a74738c16e
feat(chat): add four rare working-claw stances and raise surprise odds ( #120826 )
...
* feat(chat): add four rare working-claw stances and raise surprise odds
* test(ui): assert claw surprises against the exported allowlist
* fix(ci): refresh native i18n inventory and drop test-only surprise export
2026-08-08 19:56:31 -07:00
joshavant
026f4045b7
Revert "fix(protocol): preserve gateway session attribution across node runs"
...
This reverts commit 735f176b01 .
2026-08-07 18:40:17 -05:00
WhatsSkiLL
a23444fc74
fix(android): gate Wear model controls by operator scope ( #120016 )
...
* fix(android): gate Wear model controls by operator scope
* chore(android): refresh native i18n inventory
---------
Co-authored-by: IWhatsskill <284122573+IWhatsskill@users.noreply.github.com >
Co-authored-by: Colin Johnson <colin@solvely.net >
2026-08-07 11:00:41 -04:00
Dallin Romney
2a0bbd23f5
feat: expose session classification facts ( #106832 )
...
* feat: expose session presentation metadata
* fix: restrict session titles to safe display metadata
* fix: preserve saved session display names
* fix(protocol): tolerate future session presentation values
* fix(gateway): keep direct peer names out of presentation
* fix(protocol): connect session presentation to native rows
* fix(gateway): canonicalize session presentation metadata
* fix(gateway): satisfy session presentation CI checks
* feat(gateway): flatten session classification facts
* fix: repair session classification generated models
* fix(gateway): canonicalize session classification keys
* fix(gateway): classify spawned delivery sessions
* fix(android): retain session classification facts
* test(android): make scripted gateway calls concurrency-safe
* test(live-updater): isolate fixture git commands
2026-08-07 14:56:56 +08:00
Vincent Koc
735f176b01
fix(protocol): preserve gateway session attribution across node runs
2026-08-07 08:06:01 +08:00
WhatsSkiLL
238c8bfc23
fix(android): show active session status in sidebar ( #118624 )
2026-08-05 11:55:10 -04:00
Peter Steinberger
4511c9b71f
refactor(android): remove obsolete chat rendering paths ( #119615 )
2026-08-05 08:17:04 -07:00
Peter Steinberger
c49b68328e
test(android): consolidate Wear bridge fixtures ( #118559 )
2026-08-03 00:42:43 -07:00
Peter Steinberger
4b3d0b37be
test(android): consolidate connection TLS fixtures ( #118532 )
2026-08-02 23:29:37 -07:00
Peter Steinberger
d2ff210679
test(android): compact chat persistence fixtures ( #118456 )
2026-08-02 21:51:33 -07:00
Peter Steinberger
39c506bbf2
test(android): compact onboarding gateway fixtures ( #118383 )
2026-08-02 20:09:31 -07:00
Peter Steinberger
1d2fc98bf4
test(android): reduce voice fixture duplication ( #118270 )
2026-08-02 19:27:55 -07:00
WhatsSkiLL
4c136a7dea
fix-android-sidebar-search-results ( #117981 )
...
Co-authored-by: IWhatsskill <284122573+IWhatsskill@users.noreply.github.com >
2026-08-02 17:13:16 -07:00
Peter Steinberger
a1c2009b91
chore(android): stabilize branch coordination unit tests ( #118210 )
...
* test(android): stabilize branch coordination tests
* test(android): await outbox drain boundary
* test(android): isolate reconciliation drain fixture
2026-08-02 15:25:19 -07:00
Peter Steinberger
860b4ee4a7
test(android): share Wear transport fixtures ( #118177 )
2026-08-02 14:01:28 -07:00
Peter Steinberger
1787cbb9de
test(android): compact chat recovery fixtures ( #118166 )
2026-08-02 13:21:29 -07:00
Peter Steinberger
aae0342f7c
test(android): consolidate gateway security fixtures ( #118165 )
2026-08-02 13:17:01 -07:00
Peter Steinberger
4e4959b283
refactor(android): consolidate chat controller test setup ( #117862 )
2026-08-01 23:06:51 -07:00
Peter Steinberger
e49c8339b8
refactor(android): simplify durable outbox test scenarios ( #117667 )
2026-08-01 15:45:02 -07:00
Peter Steinberger
349cc33669
test(android): synchronize Wear channel transport close completion ( #116788 )
...
Co-authored-by: Peter Steinberger <steipete@macos.shared >
2026-07-31 04:36:37 -07:00
Vincent Koc
20e68e01df
fix(gateway): sign device proofs with challenge time ( #116679 )
2026-07-31 16:45:53 +08:00
Vincent Koc
9309a4fce9
test(android): remove duplicate setup-code coverage ( #116658 )
2026-07-31 12:12:35 +08: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
WhatsSkiLL
47f8c1d6b0
Android: add adaptive app navigation sidebar ( #113908 )
...
* feat(android): add adaptive navigation sidebar
* fix(android): satisfy native i18n checks
* fix(android): use adaptive Material navigation
* fix(android): preserve adaptive navigation state
* chore(i18n): refresh native source baseline
* fix(android): keep compact navigation labels on one line
* chore(android): refresh native i18n source lines
* fix(android): preserve sidebar gateway status
* fix(android): satisfy status label checks
---------
Co-authored-by: Colin <colin@solvely.net >
2026-07-30 17:27:45 -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
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
Peter Steinberger
138675aeeb
feat(apps): render collapsible details natively ( #115641 )
...
* feat(apps): render collapsible details natively in chat
* fix(apps): preserve reference definitions when folding disclosures
* fix(apps): keep authored details summaries unlocalized
* fix(apps): keep raw-HTML disclosure examples literal
* refactor(apps): isolate summaries and raw HTML contexts
* fix(apps): honor all CommonMark raw HTML contexts in disclosures
* chore(apps): refresh native i18n inventory for disclosure strings
2026-07-29 02:52:54 -04:00
Peter Steinberger
26bfa88bb2
fix: restore native Talk transcripts, fallback, and microphone access ( #115577 )
...
* fix(ios): decode frameless Talk events
* fix(android): keep browser-only Talk models native
* fix(macos): gate dashboard media capture
* docs(talk): clarify native platform fallbacks
* chore(i18n): refresh native source inventory
* fix(android): gate relay entry on provider-level browser-only models too
2026-07-29 01:55:47 -04:00
Peter Steinberger
df9a940872
feat(chat): show live run telemetry across clients ( #113084 )
...
* feat(chat): show live run telemetry across clients
* fix(chat): satisfy native validation gates
* fix(chat): settle advertised terminal runs
* fix(android): clear stale run usage on gaps
* chore(i18n): align native source inventory
* fix(chat): reconcile telemetry with current projections
* refactor(chat): keep run state in owner extensions
* chore(i18n): refresh native source inventory
* test(ui): expect persistent working telemetry through streaming
2026-07-29 01:27:58 -04:00
NianJiu
1a319f9a78
fix(android): keep welcome action reachable with large text ( #111747 )
...
* fix(android): keep welcome action reachable with large text
* test(android): isolate Compose host theme
* fix(android): keep gateway setup usable with large text
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-28 14:39:33 -04:00
Vincent Koc
d92062b970
fix(android): respect locale in compact labels
2026-07-28 23:49:44 +08:00
Vincent Koc
f8ed8ecf4f
fix(security): harden CodeQL-reported boundaries ( #115055 )
...
* fix(security): harden CodeQL-reported boundaries
* style(android): fix WebMessage listener indentation
2026-07-28 16:47:12 +08:00
Peter Steinberger
4b05d83035
fix: generated images do not appear in native chat ( #115042 )
...
* fix(chat): render managed images in native clients
Co-authored-by: Francesco Giannicola <francescogiannicola1@gmail.com >
* chore: keep release changelog owned
* refactor(macos): split managed image loading
* test(apple): prove managed image header policy
* test(native): stabilize managed image proof
* test(apple): satisfy strict concurrency checks
---------
Co-authored-by: Francesco Giannicola <francescogiannicola1@gmail.com >
2026-07-28 04:39:53 -04:00
Masato Hoshino
852120e724
fix(android): honor reduced motion reactively in mascot and talk waveform ( #112687 )
...
* fix(android): honor reduced motion reactively in mascot and talk waveform
OpenClawMascot and TalkWaveform read Settings.Global.ANIMATOR_DURATION_SCALE
with a one-shot remember(context){} that never reacts when the user toggles
"Remove animations" while the screen stays mounted. Extract the reactive
ContentObserver read that ChatWorkingIndicator already used into a shared
ui/SystemAnimations.kt helper and use it in all three surfaces. Follow-up to
#112245 (Wear avatar).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
* fix(android): resync the native i18n baseline after the animation refactor
The native-i18n check failed with "native app i18n inventory drift detected".
apps/.i18n/native-source.json pins a line number for each of its 5290 entries,
and 23 of them point into ChatWorkingIndicator.kt. Extracting the shared
rememberSystemAnimationsEnabled helper shortened that file by 26 lines, so every
recorded string below the edit moved and the inventory no longer matched.
Regenerated with `pnpm native:i18n:baseline`, as the failure message instructs.
The diff is 23 line-number updates (384 -> 358 and so on); no `source` value
changes, because this refactor adds and removes no user-facing strings.
`node --import tsx scripts/native-app-i18n.ts verify` now passes.
* fix(android): reuse Compose motion scale
Co-authored-by: Masato Hoshino <g515hoshino@gmail.com >
* fix(android): keep system motion scale authoritative
Co-authored-by: Masato Hoshino <g515hoshino@gmail.com >
* test(cli): raise root help deadlock guard
---------
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-28 00:38:50 -04:00
Peter Steinberger
56d9802f6e
fix(mobile): prevent stale reconnect, approval and voice cancellation ( #114549 )
...
* fix(mobile): fence reconnect, approval and voice cancellation
* fix(mobile): refresh native localization source inventory
* test(android): advance cancelled voice finalizer scheduler
* test(android): retain one approval during cancellation proof
2026-07-27 08:49:01 -04:00
Peter Steinberger
4aa96a118d
fix(sessions): prevent stale and cross-agent observer status after reconnect ( #114548 )
...
* fix(sessions): prevent stale and cross-agent observer status
* fix(sessions): sync native observer source inventory
* fix(android): satisfy observer ownership formatting gate
2026-07-27 08:39:29 -04:00
Peter Steinberger
64bf485ba2
fix(sessions): scope observer state by agent
2026-07-27 05:43:19 -04:00
Peter Steinberger
51f228f6fe
fix(ui): preserve agent-owned session navigation
...
Add agent ownership to observer digests, scope global observer delivery and reconciliation, and centralize application session selection across navigation and reconnects.
Co-authored-by: xbrxr03 <abrarhabib03@gmail.com >
2026-07-27 05:43:19 -04:00
Peter Steinberger
852a686a1b
feat(chat): restore prompt image attachments on rewind/fork ( #113945 )
...
* feat(chat): restore prompt image attachments on rewind/fork
* chore(i18n): refresh native source inventory anchors
* fix(gateway): restore media-store images on rewind/fork
* fix(gateway): bound and dedupe rewind media reads
* fix(sessions): bound inline editor attachments in message cut
* fix(ui): align restored attachment cap with gateway 5 MiB limit
* fix(gateway): dedupe rewind media refs by resolved id
* fix(sessions): lint-safe __openclaw access in message cut
2026-07-25 20:32:16 -07:00
Peter Steinberger
af44cb1a72
feat(native): show Swarm progress in chat ( #113850 )
...
* feat(native): show swarm progress
* fix(native): align swarm progress lifecycle
* chore(native): shorten swarm progress source name
* style(macos): pad swarm progress surfaces
* chore(native): use compact swarm source name
* fix(native): harden swarm route ownership
* fix(native): preserve swarm render ownership
* chore(i18n): refresh native swarm inventory
* fix(native): bound swarm refresh ownership
* fix(native): remove unused swarm capability initializer
2026-07-25 15:11:19 -07: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
Peter Steinberger
53be78269e
fix(android): connect to pasted manual gateway host and port ( #113722 )
...
* fix(android): preserve pasted manual gateway authorities
* fix(android): align gateway formatting and native i18n baseline
---------
Co-authored-by: Peter Steinberger <steipete@golden-gate.local >
2026-07-25 07:52:46 -07:00
Peter Steinberger
7e80f36723
fix(apps): restore live session updates after native reconnects ( #113634 )
...
* fix(apps): replay session visibility across native reconnects
* fix(apps): refresh shifted native i18n source lines
---------
Co-authored-by: Peter Steinberger <steipete@golden-gate.local >
2026-07-25 04:58:41 -07:00
Peter Steinberger
c26b0e0843
feat(android): add OpenClaw settings chat ( #112788 )
2026-07-22 19:29:51 -04:00