Ayaan Zaidi
2ae8837987
fix: keep android canvas home visible after restart
2026-03-14 11:03:02 +05:30
Ayaan Zaidi
1f9cc647f8
build: upload Android native debug symbols
2026-03-14 09:44:31 +05:30
Ayaan Zaidi
f251e7e2c2
build: shrink Android app release bundle
2026-03-14 09:39:33 +05:30
Ayaan Zaidi
f1d9fcd407
build(android): strip unused dnsjava resolver service before R8
2026-03-14 09:25:17 +05:30
Ayaan Zaidi
3fb629219e
build(android): add auto-bump signed aab release script
2026-03-14 09:25:17 +05:30
Ayaan Zaidi
df765f602b
fix: default Android TLS setup codes to port 443
2026-03-14 08:54:01 +05:30
Ayaan Zaidi
45721d5dec
fix: polish Android QR scanner onboarding ( #45021 )
2026-03-13 17:13:54 +05:30
Ayaan Zaidi
b934cb49c7
fix(android): use Google Code Scanner for onboarding QR
2026-03-13 17:13:54 +05:30
Kaneki
84428bbba6
Android: fix HttpURLConnection leak in TalkModeVoiceResolver ( #43780 )
...
* Android: fix HttpURLConnection leak in TalkModeVoiceResolver.listVoices
* fix null errorStream NPE and preserve HTTP keep-alive
* fix: restore voice resolver disconnect cleanup
---------
Co-authored-by: Ayaan Zaidi <hi@obviy.us>
2026-03-13 14:59:21 +05:30
Ayaan Zaidi
c04544891d
feat(android): consolidate Settings into grouped card sections
...
Remove header bloat, merge Node info into a single Device card,
group permissions into Media/Notifications/Data Access cards with
internal dividers, and combine Screen+Debug into Preferences.
Sections reduced from 9 to 6.
2026-03-13 14:31:39 +05:30
Ayaan Zaidi
8b0e16a1c8
feat(android): soften chat role labels and deduplicate session header
...
Rename role labels to You/OpenClaw/System, update streaming label to
OpenClaw · Live, and remove the redundant SESSION row + Connected pill
since the top bar and chip row already convey both.
2026-03-13 14:31:39 +05:30
Ayaan Zaidi
c761b5b8a8
feat(android): compact chat composer layout
...
Remove MESSAGE label and divider, let text field auto-size instead
of fixed 92dp, and merge Detail/Attach into the bottom action row.
2026-03-13 14:31:39 +05:30
Ayaan Zaidi
720b9d2c45
feat(android): add speaker label and status pill to Voice tab
...
Add text label under speaker toggle, balance layout with matching
spacer column, and wrap status text in a colored pill.
2026-03-13 14:31:39 +05:30
Ayaan Zaidi
beff0cf02c
feat(android): redesign Connect tab with unified status cards
...
Merge endpoint and status into a single grouped card with icons.
Split connect/disconnect into context-aware buttons.
2026-03-13 14:31:39 +05:30
Ayaan Zaidi
aae75b5e57
feat(android): redesign onboarding flow UI
...
- Welcome: replace bullet list with icon+subtitle feature cards
- Gateway: simplify to single instruction line, collapse advanced by default, remove verbose developer text
- Permissions: group into System/Media/Personal Data sections, rewrite subtitles to plain English, style "Not granted" with warning color
- Review: replace plain text fields with icon cards matching Welcome style, add colored status cards for connect/pairing states
- Remove redundant "FIRST RUN" label, "Step X of 4" text, and StepRailWrap dividers
2026-03-13 12:25:39 +05:30
Ayaan Zaidi
402f2556b9
fix(android): clip CommandBlock accent bar to rounded container bounds
2026-03-13 11:39:23 +05:30
Peter Steinberger
16ececf0a6
chore: bump version to 2026.3.13
2026-03-13 04:38:32 +00:00
Peter Steinberger
c25e46a433
chore: prepare 2026.3.12 release
2026-03-13 01:38:20 +00:00
Peter Steinberger
589aca0e6d
refactor: unify gateway connect auth selection
2026-03-12 22:46:28 +00:00
Peter Steinberger
bf89947a8e
fix: switch pairing setup codes to bootstrap tokens
2026-03-12 22:23:07 +00:00
Peter Steinberger
29dc65403f
build: prepare 2026.3.11 release
2026-03-12 05:01:07 +00:00
Peter Steinberger
b125c3ba06
build: bump openclaw to 2026.3.11-beta.1
2026-03-12 04:08:19 +00:00
Peter Steinberger
ce5dd742f8
build: sync versions to 2026.3.11
2026-03-12 04:01:57 +00:00
Peter Steinberger
0e397e62b7
chore: bump version to 2026.3.10
2026-03-11 23:29:53 +00:00
Peter Steinberger
f9706fde6a
build: bump unreleased version to 2026.3.9
2026-03-09 08:33:58 +00:00
Peter Steinberger
fa580e33c1
refactor: split android talk voice resolution
2026-03-08 18:40:14 +00:00
Peter Steinberger
371c53b282
test: expand talk config contract fixtures
2026-03-08 18:40:14 +00:00
Peter Steinberger
cee2f3e8b4
refactor: dedupe android talk config parsing
2026-03-08 18:40:14 +00:00
Peter Steinberger
16a5f0b006
refactor: split talk gateway config loaders
2026-03-08 16:22:48 +00:00
Peter Steinberger
dc5645d459
test: add talk config contract fixtures
2026-03-08 16:22:48 +00:00
Peter Steinberger
8d3d742c6a
refactor: require canonical talk resolved payload
2026-03-08 16:22:48 +00:00
Peter Steinberger
b7ad8fd661
fix: fail closed talk provider selection
2026-03-08 16:22:48 +00:00
Peter Steinberger
b4c8950417
refactor: centralize talk silence timeout defaults
2026-03-08 14:58:29 +00:00
Peter Steinberger
4e2290b841
refactor: add canonical talk config payload
2026-03-08 14:58:29 +00:00
Peter Steinberger
0af3118d08
fix: harden talk silence timeout parsing ( #39607 ) (thanks @danodoesdesign)
...
Co-authored-by: dano does design <dano.does.design@gmail.com>
2026-03-08 14:30:25 +00:00
dano does design
6ff7e8f42e
talk: add configurable silence timeout
2026-03-08 14:30:25 +00:00
Ayaan Zaidi
04b4b48077
fix(android): persist legacy location mode migration
2026-03-08 16:25:49 +05:30
Ayaan Zaidi
709e11ea70
build(android): bump release version code
2026-03-08 16:25:49 +05:30
Ayaan Zaidi
46145fde19
fix(android): remove mic and screen foreground services
2026-03-08 16:25:49 +05:30
Ayaan Zaidi
1230cefe25
fix(android): remove background location mode
2026-03-08 16:25:49 +05:30
Ayaan Zaidi
0f9566b0b5
fix(android): remove self-update install flow
2026-03-08 16:25:49 +05:30
Ayaan Zaidi
d3c3d0e730
style(android): update app icon
2026-03-08 13:25:01 +05:30
Peter Steinberger
05217845a7
build: bump version to 2026.3.8
2026-03-08 05:59:04 +00:00
Vincent Koc
e4d80ed556
CI: restore main detect-secrets scan ( #38438 )
...
* Tests: stabilize detect-secrets fixtures
* Tests: fix rebased detect-secrets false positives
* Docs: keep snippets valid under detect-secrets
* Tests: finalize detect-secrets false-positive fixes
* Tests: reduce detect-secrets false positives
* Tests: keep detect-secrets pragmas inline
* Tests: remediate next detect-secrets batch
* Tests: tighten detect-secrets allowlists
* Tests: stabilize detect-secrets formatter drift
2026-03-07 10:06:35 -08:00
Peter Steinberger
997a9f5b9e
chore: bump version to 2026.3.7
2026-03-07 10:09:02 +00:00
Ayaan Zaidi
5568b393a8
fix(android): rename app package to ai.openclaw.app
2026-03-07 14:51:03 +05:30
Vincent Koc
42e3d8d693
Secrets: add inline allowlist review set ( #38314 )
...
* Secrets: add inline allowlist review set
* Secrets: narrow detect-secrets file exclusions
* Secrets: exclude Docker fingerprint false positive
* Secrets: allowlist test and docs false positives
* Secrets: refresh baseline after allowlist updates
* Secrets: fix gateway chat fixture pragma
* Secrets: format pre-commit config
* Android: keep talk mode fixture JSON valid
* Feishu: rely on client timeout injection
* Secrets: allowlist provider auth test fixtures
* Secrets: allowlist onboard search fixtures
* Secrets: allowlist onboard mode fixture
* Secrets: allowlist gateway auth mode fixture
* Secrets: allowlist APNS wake test key
* Secrets: allowlist gateway reload fixtures
* Secrets: allowlist moonshot video fixture
* Secrets: allowlist auto audio fixture
* Secrets: allowlist tiny audio fixture
* Secrets: allowlist embeddings fixtures
* Secrets: allowlist resolve fixtures
* Secrets: allowlist target registry pattern fixtures
* Secrets: allowlist gateway chat env fixture
* Secrets: refresh baseline after fixture allowlists
* Secrets: reapply gateway chat env allowlist
* Secrets: reapply gateway chat env allowlist
* Secrets: stabilize gateway chat env allowlist
* Secrets: allowlist runtime snapshot save fixture
* Secrets: allowlist oauth profile fixtures
* Secrets: allowlist compaction identifier fixture
* Secrets: allowlist model auth fixture
* Secrets: allowlist model status fixtures
* Secrets: allowlist custom onboarding fixture
* Secrets: allowlist mattermost token summary fixtures
* Secrets: allowlist gateway auth suite fixtures
* Secrets: allowlist channel summary fixture
* Secrets: allowlist provider usage auth fixtures
* Secrets: allowlist media proxy fixture
* Secrets: allowlist secrets audit fixtures
* Secrets: refresh baseline after final fixture allowlists
* Feishu: prefer explicit client timeout
* Feishu: test direct timeout precedence
2026-03-06 19:35:26 -05:00
Peter Steinberger
e08ba063d8
test(android): fix GatewaySessionInvokeTest coroutine job typing ( #31594 )
2026-03-02 15:47:21 +00:00
Peter Steinberger
b85facfb5d
refactor(android): share node JSON param parsing helpers
2026-03-02 14:36:41 +00:00
Peter Steinberger
2d8b8a17ab
test(android): dedupe node and gateway invoke tests
2026-03-02 13:52:36 +00:00
Peter Steinberger
0b762e9a02
fix(android): import remember for pending tools bubble
2026-03-02 13:11:08 +00:00
Peter Steinberger
7533015532
refactor(android): extract shared dedupe helpers for node and chat
2026-03-02 12:13:45 +00:00
Ayaan Zaidi
548a502c69
docs: sync android node docs with current pairing and capabilities
2026-03-02 11:08:51 +05:30
Peter Steinberger
6ba7238ac6
build: bump versions to 2026.3.2
2026-03-02 04:55:53 +00:00
Peter Steinberger
fa9148400e
fix(android): align lint gates and photo permission handling
2026-03-02 04:28:17 +00:00
Agent
e7cafed424
chore(release): bump version to 2026.3.1
2026-03-01 21:14:17 +00:00
Ayaan Zaidi
6f63fc288a
fix(android): return NOT_AUTHORIZED when notify permission is lost
2026-03-01 20:32:14 +05:30
Ayaan Zaidi
759a0fc1b2
chore(android): remove deprecated AGP gradle flags
2026-03-01 20:32:14 +05:30
Ayaan Zaidi
9c2f7e2a9d
style(android): format gradle kotlin scripts
2026-03-01 20:32:14 +05:30
Ayaan Zaidi
348a7dd5b3
fix(android): guard notification post permission
2026-03-01 20:32:14 +05:30
Ayaan Zaidi
7f9274b71d
chore(android): add kotlin lint/format tooling
2026-03-01 20:32:14 +05:30
Greg Mousseau
ba430cc65b
fix(android): drainingTts identity check, mark stopped on WebSocket failure
...
- Codex P2: drain coroutine now only clears drainingTts if it's the
same instance (=== check), preventing a newer drain from being
unreachable by stopTts.
- Codex P2: set stopped=true on WebSocket onFailure so subsequent
sendText calls are rejected and stale state doesn't persist.
2026-03-01 20:03:26 +05:30
Greg Mousseau
ccca99c472
fix(android): ignore stale out-of-order agent events in streaming TTS
...
Agent events arrive on multiple threads concurrently. A stale event
with shorter accumulated text was falsely triggering 'text diverged',
causing the streaming TTS to restart with a new WebSocket — resulting
in multiple simultaneous ElevenLabs connections (2-3 voices) and
eventual system TTS fallback when hasReceivedAudio was false.
Fix: if sentFullText.startsWith(fullText), the event is stale (we
already have this text), not diverged. Accept and ignore it.
2026-03-01 20:03:26 +05:30
Greg Mousseau
a583261775
fix(android): wire speaker mute to TalkMode, release audio focus on stop
...
- Codex P1: setSpeakerEnabled now syncs talkMode.setPlaybackEnabled
so muting the speaker works when ttsOnAllResponses is active.
- Codex P2: abandonAudioFocus() called in stopSpeaking to prevent
audio focus leak after TTS completes or is interrupted.
2026-03-01 20:03:26 +05:30
Greg Mousseau
930841cd7c
fix(android): wire MP3 fallback call, prevent double-speaking
...
- Codex P1: streamAndPlayMp3 was computed but never called after PCM
failure. Now properly invoked as fallback.
- Codex P2: MicCaptureManager.speakAssistantReply now skipped when
TalkModeManager.ttsOnAllResponses is active, preventing both
pipelines from speaking the same assistant reply.
2026-03-01 20:03:26 +05:30
Greg Mousseau
587790e84a
fix(android): talk mode stability — thread safety, TTS fallback, mic cooldown
...
Bug fixes:
- @Synchronized on ElevenLabsStreamingTts.sendText/finish to prevent
sentFullText/sentTextLength races across OkHttp and caller threads
- Pre-set pendingRunId via onRunIdKnown callback before chat.send to
eliminate race where gateway events arrive before runId is stored
- Track drain coroutine as Job; cancel prior on rapid mic toggle to
prevent duplicate TTS and stale transcript sends
- Mic button disabled during 2s drain cooldown (micCooldown StateFlow)
Codex review fixes:
- Gate agent streaming TTS on sessionKey to prevent cross-session
audio leaks (P1)
- Clear ElevenLabs credentials when talk.provider is not elevenlabs;
gate streaming TTS on activeProviderIsElevenLabs (P2)
System TTS fallback fixes:
- Null streamingTts immediately in finishStreamingTts so next response
gets a fresh TTS instance
- Add hasReceivedAudio flag to ElevenLabsStreamingTts to detect when
WebSocket connects but returns no audio (invalid key, network error)
- Fall back to playTtsForText when streaming TTS produced no audio
- Track ttsJob to cleanly cancel prior playTtsForText on new response
- Re-throw CancellationException instead of cascading into fallback
attempts that also get cancelled
2026-03-01 20:03:26 +05:30
Greg Mousseau
4748ba491d
fix(android): chat history refresh and mic capture improvements for voice
...
ChatController:
- final/aborted/error run events now trigger a history refresh regardless of
whether the runId is in pendingRuns; only delta events require the run to be
tracked (prevents voice-initiated responses from being silently dropped)
MicCaptureManager:
- Don't auto-send on onResults silence detection — accumulate transcript
segments and send when mic is toggled off, giving the recognizer time to
finish processing buffered audio
- Capture any partial live transcript if no final segments arrived (2s drain
window before stop)
- Join multi-segment transcripts with sentence-ending punctuation to avoid
run-on text sent to the gateway
2026-03-01 20:03:26 +05:30
Greg Mousseau
68db055f1a
feat(android): wire TalkModeManager into NodeRuntime for voice screen TTS
...
TalkModeManager is instantiated lazily in NodeRuntime and drives ElevenLabs
streaming TTS for all assistant responses when the voice screen is active.
MicCaptureManager continues to own STT and chat.send; TalkModeManager is
TTS-only (ttsOnAllResponses = true, setEnabled never called).
- talkMode.ttsOnAllResponses = true when mic is enabled or voice screen active
- Barge-in: tapping the mic button calls stopTts() before re-enabling mic
- Lifecycle: PostOnboardingTabs LaunchedEffect + VoiceTabScreen onDispose both
call setVoiceScreenActive(false) so TTS stops cleanly on tab switch or
app backgrounding
- applyMainSessionKey wires the session key into TalkModeManager so it
subscribes to the correct chat session for TTS
2026-03-01 20:03:26 +05:30
Greg Mousseau
f0fcecd7c1
feat(android): ElevenLabsStreamingTts — WebSocket streaming TTS with PCM playback
...
Streams text to the ElevenLabs WebSocket API and plays audio in real-time
via AudioTrack (PCM 24kHz). Key design points:
- sendText(fullText) takes the full accumulated text and only transmits the
new suffix, detecting divergence for restart
- Chunks are queued if the WebSocket isn't yet connected; flushed in onOpen
- finish() sends EOS to ElevenLabs; deferred if called before onOpen fires
- sendText returns true (not false) when finished=true to avoid treating a
normal end-of-stream as a diverge restart
- finishStreamingTts coroutine uses identity check before nulling streamingTts
to prevent a mid-drain restart from orphaning a live TTS session
- eleven_v3 does NOT support WebSocket streaming; use eleven_flash_v2_5
2026-03-01 20:03:26 +05:30
Ayaan Zaidi
1d7b76a90e
fix(android-voice): rotate playback token per assistant reply
2026-02-28 20:05:59 +05:30
Ayaan Zaidi
addc619087
fix(android-voice): retry talk config after transient failures
2026-02-28 20:05:59 +05:30
Ayaan Zaidi
930e94024a
fix(android-voice): cancel in-flight speech when speaker muted
2026-02-28 20:05:59 +05:30
Ayaan Zaidi
727ae469cf
perf(android): reduce mic conversation update churn
2026-02-28 20:05:59 +05:30
Ayaan Zaidi
3daed77ba9
fix(android): unify voice speaker gating and config refresh
2026-02-28 20:05:59 +05:30
Ayaan Zaidi
72e135083a
feat(android-voice): add speaker toggle in voice tab
2026-02-28 20:05:59 +05:30
Ayaan Zaidi
fb92a91ef7
fix(android): speak final voice replies in mic capture flow
2026-02-28 20:05:59 +05:30
Ayaan Zaidi
fcf3e5b0a0
fix(android): expose talk-mode assistant speech entrypoint
2026-02-28 20:05:59 +05:30
Ayaan Zaidi
eea081c709
fix(android): update onboarding pairing commands
2026-02-28 20:05:59 +05:30
Ayaan Zaidi
548a28a13f
fix(android): request onboarding permissions per toggle
2026-02-28 20:05:59 +05:30
Ayaan Zaidi
3f056a7294
fix(android): block onboarding advance until special setup is complete
2026-02-28 12:29:52 +05:30
Ayaan Zaidi
cd61edb0f3
fix(android): add missing capability setup surfaces
2026-02-28 12:29:52 +05:30
Ayaan Zaidi
f1bb26642c
fix(gateway): scope notification wakeups to session
2026-02-28 11:18:01 +05:30
Ayaan Zaidi
9d3ccf4754
feat(gateway): enable Android notify + notification events
2026-02-28 11:18:01 +05:30
Ayaan Zaidi
1bc9da8f9e
fix(android): stabilize motion sampling and gate pedometer command
2026-02-28 09:27:54 +05:30
Ayaan Zaidi
18e7938dfd
refactor(android): remove unreachable motion classify branch
2026-02-28 09:27:54 +05:30
Ayaan Zaidi
943dce37be
feat(android): wire new device capabilities into runtime
2026-02-28 09:27:54 +05:30
Ayaan Zaidi
b9e474deb4
feat(android): add motion activity and pedometer handlers
2026-02-28 09:27:54 +05:30
Ayaan Zaidi
f75385981a
feat(android): add calendar capability handlers
2026-02-28 09:27:54 +05:30
Ayaan Zaidi
81ebe7de46
feat(android): add contacts capability handlers
2026-02-28 09:27:54 +05:30
Ayaan Zaidi
c8ad229776
feat(android): add photos latest handler
2026-02-28 09:27:54 +05:30
Ayaan Zaidi
f637cbd246
feat(android): add system notification handler
2026-02-28 09:27:54 +05:30
Ayaan Zaidi
3f06693e7d
refactor(android): share node capability and command manifest
2026-02-28 08:46:50 +05:30
Peter Steinberger
fe807e4bed
chore(release): bump 2026.2.27 and split changelog
2026-02-27 16:09:28 +01:00
Ayaan Zaidi
3a35035512
fix(android): send object params for canvas capability refresh
2026-02-27 13:26:42 +05:30
Ayaan Zaidi
6222d6650b
fix(android): avoid duplicate A2UI readiness probe on happy path
2026-02-27 12:16:36 +05:30
Ayaan Zaidi
8187fbc571
fix(android): refresh scoped canvas URLs without trailing slash
2026-02-27 12:16:36 +05:30
Ayaan Zaidi
d53b24d185
fix(android): return valid debug.ed25519 diagnostics JSON
2026-02-27 12:16:36 +05:30
Ayaan Zaidi
34486f8c10
fix(android): retry A2UI after canvas capability refresh
2026-02-27 12:16:36 +05:30
Ayaan Zaidi
9b64ad30c4
docs(android): add integration test preconditions and pitfalls
2026-02-27 12:16:36 +05:30
Ayaan Zaidi
0896bb09b0
feat(android): wire runtime canvas capability refresh
2026-02-27 12:16:36 +05:30
Ayaan Zaidi
22d422a792
refactor(android-node): share battery snapshot parsing across device handlers
2026-02-27 10:15:21 +05:30
Ayaan Zaidi
284f75500c
refactor(android-node): unify notifications snapshot rebind preflight
2026-02-27 10:15:21 +05:30
Ayaan Zaidi
bbab0b005e
fix(android): rebind listener before notification actions
2026-02-27 10:15:21 +05:30
Ayaan Zaidi
8807267bfd
fix(android): allow open and reply on non-clearable notifications
2026-02-27 10:15:21 +05:30
Ayaan Zaidi
d0ec3de588
feat(android): implement device diagnostics and notification actions
2026-02-27 10:15:21 +05:30
Ayaan Zaidi
e99b323a6b
feat(node): add device diagnostics and notification action commands
2026-02-27 10:15:21 +05:30
Ayaan Zaidi
e48513d512
fix(android): scale invoke result ack timeout to invoke budget
2026-02-27 10:15:21 +05:30
Ayaan Zaidi
1f7b3c613d
feat(android): add camera list and device selection
2026-02-27 10:15:21 +05:30
Ayaan Zaidi
0f7664fda3
fix(android): reject non-positive camera maxWidth
2026-02-27 09:10:10 +05:30
Ayaan Zaidi
adb41e48ae
test(android): cover camera clip payload size guard
2026-02-27 09:10:10 +05:30
Ayaan Zaidi
fb34c46074
refactor(android): make camera clip transport deterministic
2026-02-27 09:10:10 +05:30
Ayaan Zaidi
120a7abbab
test(android): cover camera clip upload URL JSON parsing
2026-02-27 09:10:10 +05:30
Ayaan Zaidi
67609cc16f
fix(android): parse camera and screen invoke params as JSON
2026-02-27 09:10:10 +05:30
Ayaan Zaidi
cf327f60ba
fix(android): require validated network for device status
2026-02-26 21:26:11 +05:30
Ayaan Zaidi
d14e734e9c
refactor(android): remove dead thermal sdk branch
2026-02-26 21:26:11 +05:30
Ayaan Zaidi
d768c1f81c
feat(android): wire device commands into runtime
2026-02-26 21:26:11 +05:30
Ayaan Zaidi
67f6a13c5a
feat(android): add device status and info handler
2026-02-26 21:26:11 +05:30
Ayaan Zaidi
551647aa96
feat(android): add device invoke protocol commands
2026-02-26 21:26:11 +05:30
Peter Steinberger
081b1aa1ed
refactor(gateway): unify v3 auth payload builders and vectors
2026-02-26 15:08:50 +01:00
Peter Steinberger
490cb5174d
fix(apps): sign gateway device auth with v3 payload
2026-02-26 14:16:49 +01:00
Peter Steinberger
caace61ba1
chore: bump versions to 2026.2.26
2026-02-26 12:11:02 +01:00
Ayaan Zaidi
05817187fe
refactor(android): unify notifications.list status flow
2026-02-26 14:33:14 +05:30
Ayaan Zaidi
cf4fe41957
feat(android): add notifications.list node command
2026-02-26 14:33:14 +05:30
Ayaan Zaidi
ac6539ed03
refactor(android): unify invoke availability gating
2026-02-26 12:17:32 +05:30
Ayaan Zaidi
a87d961ebc
fix(android): require gateway device auth store
2026-02-26 12:17:32 +05:30
Ayaan Zaidi
f7865527af
fix(android): omit websocket Origin for native gateway connect
2026-02-26 12:17:32 +05:30
Ayaan Zaidi
c3f54fcddd
refactor(android): unify invoke error parsing
2026-02-26 12:17:32 +05:30
Ayaan Zaidi
39d362aeff
refactor(android): distill invoke dispatcher command flow
2026-02-26 12:17:32 +05:30
Ayaan Zaidi
18fc4c113b
refactor(android): centralize invoke command registry
2026-02-26 12:17:32 +05:30
Ayaan Zaidi
d4ae8a8d34
test(android): cover invoke paramsJSON and error mapping
2026-02-26 12:17:32 +05:30
Ayaan Zaidi
8117a13dd6
fix(nodes): default camera snap to front high-quality image
2026-02-26 12:17:32 +05:30
Ayaan Zaidi
bee0c564cf
test(android): add GatewaySession invoke roundtrip test
2026-02-26 12:17:32 +05:30
Ayaan Zaidi
410ba918fb
fix(android): hydrate gateway token state on init
2026-02-26 07:50:09 +05:30
Ayaan Zaidi
3175640ea2
docs(android): add perf CLI workflow docs
2026-02-26 07:50:09 +05:30
Ayaan Zaidi
b49c2cbdd9
perf(android): tighten startup path and add perf tooling
2026-02-26 07:50:09 +05:30
Ayaan Zaidi
4a07c89816
perf(android): make gateway token writes async
2026-02-26 07:50:09 +05:30
Ayaan Zaidi
8d68199793
perf(android): cache device identity and speed hex encoding
2026-02-26 07:50:09 +05:30
Ayaan Zaidi
00fc1f56f1
perf(android): remove startup bc provider registration
2026-02-26 07:50:09 +05:30
Ayaan Zaidi
b12216af93
fix(android): refresh settings permissions on resume
2026-02-25 18:23:50 +05:30
Ayaan Zaidi
2b7db53d06
fix(android): recover stuck voice sends after missing finals
2026-02-25 18:23:50 +05:30
Ayaan Zaidi
285a0f48e5
fix(android): sync mic manager on toggle
2026-02-25 18:23:50 +05:30
Ayaan Zaidi
f729cc7b07
fix(android): stop auto canvas rehydrate on node connect
2026-02-25 18:23:50 +05:30
Ayaan Zaidi
10a1593e0c
feat(android): redesign voice mode layout for full-height conversation
2026-02-25 18:23:50 +05:30
Ayaan Zaidi
f9c3fdba45
refactor(android): expose voice conversation state to viewmodel
2026-02-25 18:23:50 +05:30
Ayaan Zaidi
434dc46531
feat(android): stream voice turns from mic manager events
2026-02-25 18:23:50 +05:30
Ayaan Zaidi
73677f2707
refactor(android): remove legacy voice wake controls from settings
2026-02-25 18:23:50 +05:30
Ayaan Zaidi
6798330c24
feat(android): replace voice placeholder with mic transcript UI
2026-02-25 18:23:50 +05:30
Ayaan Zaidi
3d29233bab
feat(android): add single-path mic capture runtime manager
2026-02-25 18:23:50 +05:30
Ayaan Zaidi
90ddb3f271
fix(android): stabilize gateway operator reconnect
2026-02-25 18:23:50 +05:30
Ayaan Zaidi
ed34129637
test(android): cover non-string setupCode QR payload
2026-02-25 14:05:56 +05:30