Nimrod Gutman
1eb7198bad
fix(ios): skip quick setup when a gateway is configured ( #38964 )
...
* fix(ios): hide quick setup when gateway is configured
* fix: note ios quick setup gating for configured gateways (#38964 ) (thanks @ngutman)
2026-03-07 17:46:16 +02:00
Nimrod Gutman
43ab4f33ad
feat(ios): prepare app store connect release assets
2026-03-07 17:21:07 +02:00
Ayaan Zaidi
d25b493c7f
fix: address markdown image review feedback
2026-03-07 19:46:41 +05:30
Ayaan Zaidi
4bf902de58
fix: flatten remote markdown images
2026-03-07 19:46:41 +05:30
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
Altay
ee6f7b1bf0
fix(ci): restore protocol and schema checks ( #37470 )
2026-03-06 11:46:17 +03:00
Mariano
bd25182d5a
feat(ios): add Live Activity connection status + stale cleanup ( #33591 )
...
* feat(ios): add live activity connection status and cleanup
Add lock-screen/Dynamic Island connection health states and prune duplicate/stale activities before reuse. This intentionally excludes AI/title generation and heavier UX rewrites from #27488 .
Co-authored-by: leepokai <1663017+leepokai@users.noreply.github.com>
* fix(ios): treat ended live activities as inactive
* chore(changelog): add PR reference and author thanks
---------
Co-authored-by: leepokai <1663017+leepokai@users.noreply.github.com>
2026-03-04 07:44:42 +00:00
Mariano
2a733a8444
fix(ios): harden watch messaging activation concurrency ( #33306 )
...
Merged via squash.
Prepared head SHA: d40f8c4afb
Co-authored-by: mbelinky <132747814+mbelinky@users.noreply.github.com>
Co-authored-by: mbelinky <132747814+mbelinky@users.noreply.github.com>
Reviewed-by: @mbelinky
2026-03-03 22:38:54 +00:00
Mariano
a36ccf4156
fix(ios): start incremental speech at soft boundaries ( #33305 )
...
Merged via squash.
Prepared head SHA: d1acf72317
Co-authored-by: mbelinky <132747814+mbelinky@users.noreply.github.com>
Co-authored-by: mbelinky <132747814+mbelinky@users.noreply.github.com>
Reviewed-by: @mbelinky
2026-03-03 22:36:40 +00:00
Mariano
22e33ddda9
fix(ios): guard talk TTS callbacks to active utterance ( #33304 )
...
Merged via squash.
Prepared head SHA: dd88886e41
Co-authored-by: mbelinky <132747814+mbelinky@users.noreply.github.com>
Co-authored-by: mbelinky <132747814+mbelinky@users.noreply.github.com>
Reviewed-by: @mbelinky
2026-03-03 22:34:09 +00:00
Mariano
bf7061092a
iOS Security Stack 4/5: TTS PCM->MP3 Fallback ( #30885 ) ( #33032 )
...
Merged via /review-pr -> /prepare-pr -> /merge-pr.
Prepared head SHA: f77e3d7644
Co-authored-by: mbelinky <132747814+mbelinky@users.noreply.github.com>
Co-authored-by: mbelinky <132747814+mbelinky@users.noreply.github.com>
Reviewed-by: @mbelinky
2026-03-03 16:33:55 +00:00
Mariano
a3112d6c5f
iOS Security Stack 3/5: Runtime Security Guards ( #33031 )
...
Merged via /review-pr -> /prepare-pr -> /merge-pr.
Prepared head SHA: 9917165401
Co-authored-by: mbelinky <132747814+mbelinky@users.noreply.github.com>
Co-authored-by: mbelinky <132747814+mbelinky@users.noreply.github.com>
Reviewed-by: @mbelinky
2026-03-03 16:30:27 +00:00
Mariano
6df57d9633
iOS Security Stack 2/5: Concurrency Locks ( #33241 )
...
Merged via /review-pr -> /prepare-pr -> /merge-pr.
Prepared head SHA: b99ad804fb
Co-authored-by: mbelinky <132747814+mbelinky@users.noreply.github.com>
Co-authored-by: mbelinky <132747814+mbelinky@users.noreply.github.com>
Reviewed-by: @mbelinky
2026-03-03 16:28:27 +00:00
Mariano
ec0eb9f8c3
iOS Security Stack 1/5: Keychain Migrations + Tests ( #33029 )
...
Merged via /review-pr -> /prepare-pr -> /merge-pr.
Prepared head SHA: da2f8f6141
Co-authored-by: mbelinky <132747814+mbelinky@users.noreply.github.com>
Co-authored-by: mbelinky <132747814+mbelinky@users.noreply.github.com>
Reviewed-by: @mbelinky
2026-03-03 16:15:20 +00:00
Nimrod Gutman
4aa548cf7d
macOS: add tailscale serve discovery fallback for remote gateways ( #32860 )
...
* feat(macos): add tailscale serve gateway discovery fallback
* fix: add changelog note for tailscale serve discovery fallback (#32860 ) (thanks @ngutman)
2026-03-03 13:25:36 +02:00
Peter Steinberger
46b62c53f0
fix(ci): restore scope-test require import and sync host policy
2026-03-03 03:18:45 +00:00
Peter Steinberger
80efcb75c7
style(swift): apply lint and format cleanup
2026-03-03 03:07:55 +00:00
Peter Steinberger
ba50dfaae3
refactor(macos): simplify pairing alert and host helper paths
2026-03-03 03:07:54 +00:00
Peter Steinberger
04a8f97c57
fix(swift): align async helper callsites across iOS and macOS
2026-03-03 03:07:54 +00:00
Josh Avant
806803b7ef
feat(secrets): expand SecretRef coverage across user-supplied credentials ( #29580 )
...
* feat(secrets): expand secret target coverage and gateway tooling
* docs(secrets): align gateway and CLI secret docs
* chore(protocol): regenerate swift gateway models for secrets methods
* fix(config): restore talk apiKey fallback and stabilize runner test
* ci(windows): reduce test worker count for shard stability
* ci(windows): raise node heap for test shard stability
* test(feishu): make proxy env precedence assertion windows-safe
* fix(gateway): resolve auth password SecretInput refs for clients
* fix(gateway): resolve remote SecretInput credentials for clients
* fix(secrets): skip inactive refs in command snapshot assignments
* fix(secrets): scope gateway.remote refs to effective auth surfaces
* fix(secrets): ignore memory defaults when enabled agents disable search
* fix(secrets): honor Google Chat serviceAccountRef inheritance
* fix(secrets): address tsgo errors in command and gateway collectors
* fix(secrets): avoid auth-store load in providers-only configure
* fix(gateway): defer local password ref resolution by precedence
* fix(secrets): gate telegram webhook secret refs by webhook mode
* fix(secrets): gate slack signing secret refs to http mode
* fix(secrets): skip telegram botToken refs when tokenFile is set
* fix(secrets): gate discord pluralkit refs by enabled flag
* fix(secrets): gate discord voice tts refs by voice enabled
* test(secrets): make runtime fixture modes explicit
* fix(cli): resolve local qr password secret refs
* fix(cli): fail when gateway leaves command refs unresolved
* fix(gateway): fail when local password SecretRef is unresolved
* fix(gateway): fail when required remote SecretRefs are unresolved
* fix(gateway): resolve local password refs only when password can win
* fix(cli): skip local password SecretRef resolution on qr token override
* test(gateway): cast SecretRef fixtures to OpenClawConfig
* test(secrets): activate mode-gated targets in runtime coverage fixture
* fix(cron): support SecretInput webhook tokens safely
* fix(bluebubbles): support SecretInput passwords across config paths
* fix(msteams): make appPassword SecretInput-safe in onboarding/token paths
* fix(bluebubbles): align SecretInput schema helper typing
* fix(cli): clarify secrets.resolve version-skew errors
* refactor(secrets): return structured inactive paths from secrets.resolve
* refactor(gateway): type onboarding secret writes as SecretInput
* chore(protocol): regenerate swift models for secrets.resolve
* feat(secrets): expand extension credential secretref support
* fix(secrets): gate web-search refs by active provider
* fix(onboarding): detect SecretRef credentials in extension status
* fix(onboarding): allow keeping existing ref in secret prompt
* fix(onboarding): resolve gateway password SecretRefs for probe and tui
* fix(onboarding): honor secret-input-mode for local gateway auth
* fix(acp): resolve gateway SecretInput credentials
* fix(secrets): gate gateway.remote refs to remote surfaces
* test(secrets): cover pattern matching and inactive array refs
* docs(secrets): clarify secrets.resolve and remote active surfaces
* fix(bluebubbles): keep existing SecretRef during onboarding
* fix(tests): resolve CI type errors in new SecretRef coverage
* fix(extensions): replace raw fetch with SSRF-guarded fetch
* test(secrets): mark gateway remote targets active in runtime coverage
* test(infra): normalize home-prefix expectation across platforms
* fix(cli): only resolve local qr password refs in password mode
* test(cli): cover local qr token mode with unresolved password ref
* docs(cli): clarify local qr password ref resolution behavior
* refactor(extensions): reuse sdk SecretInput helpers
* fix(wizard): resolve onboarding env-template secrets before plaintext
* fix(cli): surface secrets.resolve diagnostics in memory and qr
* test(secrets): repair post-rebase runtime and fixtures
* fix(gateway): skip remote password ref resolution when token wins
* fix(secrets): treat tailscale remote gateway refs as active
* fix(gateway): allow remote password fallback when token ref is unresolved
* fix(gateway): ignore stale local password refs for none and trusted-proxy
* fix(gateway): skip remote secret ref resolution on local call paths
* test(cli): cover qr remote tailscale secret ref resolution
* fix(secrets): align gateway password active-surface with auth inference
* fix(cli): resolve inferred local gateway password refs in qr
* fix(gateway): prefer resolvable remote password over token ref pre-resolution
* test(gateway): cover none and trusted-proxy stale password refs
* docs(secrets): sync qr and gateway active-surface behavior
* fix: restore stability blockers from pre-release audit
* Secrets: fix collector/runtime precedence contradictions
* docs: align secrets and web credential docs
* fix(rebase): resolve integration regressions after main rebase
* fix(node-host): resolve gateway secret refs for auth
* fix(secrets): harden secretinput runtime readers
* gateway: skip inactive auth secretref resolution
* cli: avoid gateway preflight for inactive secret refs
* extensions: allow unresolved refs in onboarding status
* tests: fix qr-cli module mock hoist ordering
* Security: align audit checks with SecretInput resolution
* Gateway: resolve local-mode remote fallback secret refs
* Node host: avoid resolving inactive password secret refs
* Secrets runtime: mark Slack appToken inactive for HTTP mode
* secrets: keep inactive gateway remote refs non-blocking
* cli: include agent memory secret targets in runtime resolution
* docs(secrets): sync docs with active-surface and web search behavior
* fix(secrets): keep telegram top-level token refs active for blank account tokens
* fix(daemon): resolve gateway password secret refs for probe auth
* fix(secrets): skip IRC NickServ ref resolution when NickServ is disabled
* fix(secrets): align token inheritance and exec timeout defaults
* docs(secrets): clarify active-surface notes in cli docs
* cli: require secrets.resolve gateway capability
* gateway: log auth secret surface diagnostics
* secrets: remove dead provider resolver module
* fix(secrets): restore gateway auth precedence and fallback resolution
* fix(tests): align plugin runtime mock typings
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-03-03 02:58:20 +00:00
Peter Steinberger
e08ba063d8
test(android): fix GatewaySessionInvokeTest coroutine job typing ( #31594 )
2026-03-02 15:47:21 +00:00
Felix Lu
f1cd3ea531
fix(app:macos): 【 OpenClaw ⇄ clawdbot 】- Peekaboo Bridge discovery after the OpenClaw rename ( #6033 )
...
* fix(mac): keep OpenClaw bridge socket and harden legacy symlink
* fix(mac): add clawdis legacy Peekaboo bridge symlink
* macos: include moltbot in PeekabooBridge legacy socket paths
* changelog: note peekaboo legacy socket compatibility paths
---------
Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
2026-03-02 07:00:30 -08: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
87316e07d8
refactor(macos): share pairing and ui dedupe utilities
2026-03-02 12:13:45 +00:00
Peter Steinberger
7533015532
refactor(android): extract shared dedupe helpers for node and chat
2026-03-02 12:13:45 +00:00
Peter Steinberger
cf67e374c0
refactor(macos): dedupe UI, pairing, and runtime helpers
2026-03-02 11:32:20 +00:00
Peter Steinberger
cd011897d0
refactor(ios): dedupe status, gateway, and service flows
2026-03-02 11:32:20 +00:00
Peter Steinberger
2ca5722221
refactor(shared): dedupe common OpenClawKit helpers
2026-03-02 11:32:20 +00:00
Peter Steinberger
fc692d82fd
refactor(tests): dedupe macos ipc smoke setup blocks
2026-03-02 09:55:46 +00:00
Peter Steinberger
8553d22428
refactor(tests): dedupe ios gateway and deeplink fixtures
2026-03-02 09:55:46 +00:00
Peter Steinberger
7d44b753ff
refactor(tests): dedupe openclawkit chat test helpers
2026-03-02 09:55:46 +00:00
Peter Steinberger
500883775b
refactor(tests): dedupe ios defaults and setup-code helpers
2026-03-02 09:39:45 +00:00
Peter Steinberger
fd7774a79e
refactor(tests): dedupe swift gateway and chat fixtures
2026-03-02 09:39: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
0a1eac6b0b
fix(ios): eliminate voice wake and xcode build warnings
2026-03-02 04:36:49 +00:00
Peter Steinberger
7073f63610
fix(ios): enforce main-actor device status APIs
2026-03-02 04:36:49 +00:00
Peter Steinberger
1c0d36eed0
fix(ci): resolve i18n typing and generated-policy drift
2026-03-02 04:29:18 +00:00
Peter Steinberger
fa9148400e
fix(android): align lint gates and photo permission handling
2026-03-02 04:28:17 +00:00
Peter Steinberger
7b3f506e64
style(swift): apply swiftformat and swiftlint fixes
2026-03-02 04:15:43 +00:00
Peter Steinberger
155118751f
refactor!: remove versioned system-run approval contract
2026-03-02 01:12:53 +00:00
Frank Yang
ed86252aa5
fix: handle CLI session expired errors gracefully instead of crashing gateway ( #31090 )
...
* fix: handle CLI session expired errors gracefully
- Add session_expired to FailoverReason type
- Add isCliSessionExpiredErrorMessage to detect expired CLI sessions
- Modify runCliAgent to retry with new session when session expires
- Update agentCommand to clear expired session IDs from session store
- Add proper error handling to prevent gateway crashes on expired sessions
Fixes #30986
* fix: add session_expired to AuthProfileFailureReason and missing log import
* fix: type cli-runner usage field to match EmbeddedPiAgentMeta
* fix: harden CLI session-expiry recovery handling
* build: regenerate host env security policy swift
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-03-02 01:11:05 +00:00
Vincent Koc
ac3e1e769b
chore(format): swiftformat host env and exec approvals ( #31115 )
2026-03-01 17:00:17 -08:00
Shakker
81d600d55e
fix(protocol): regenerate swift gateway models for internalEvents
2026-03-02 00:55:35 +00:00
Peter Steinberger
912ddba81e
fix(macos): harden exec approvals socket path and permissions
2026-03-01 23:37:11 +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
0d672e43b9
chore(protocol): sync generated swift models
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
Peter Steinberger
5b62d5603d
fix: unblock CI minimatch audit and host policy check
2026-02-26 22:48:09 +00:00
Peter Steinberger
c35368c6dd
fix(ios): eliminate Swift warnings and clean build logs
2026-02-26 22:42:23 +00:00
Philipp Spiess
a29b18c003
Protocol: regenerate Swift models for systemRunPlanV2
2026-02-26 23:05:23 +01:00
Peter Steinberger
10481097f8
refactor(security): enforce v1 node exec approval binding
2026-02-26 18:09:01 +01:00
Shakker
15e3e63705
protocol: regenerate Swift models for exec env field
2026-02-26 16:19:44 +00:00
Peter Steinberger
4894d907fa
refactor(exec-approvals): unify system.run binding and generate host env policy
2026-02-26 16:58:01 +01:00
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
9a4b2266cc
fix(security): bind node system.run approvals to env
2026-02-26 16:38:07 +01:00
Harold Hunt
62a248eb99
core(protocol): pnpm protocol:check
2026-02-26 20:03:25 +05:30
Peter Steinberger
081b1aa1ed
refactor(gateway): unify v3 auth payload builders and vectors
2026-02-26 15:08:50 +01:00
Nimrod Gutman
185c393459
fix(ios): remove talk voice directive hint
2026-02-26 15:19:07 +02:00
Peter Steinberger
490cb5174d
fix(apps): sign gateway device auth with v3 payload
2026-02-26 14:16:49 +01:00
Harold Hunt
f53e4e9ffb
chore: Fix broken build protocol:check
2026-02-26 18:22:38 +05:30
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
Peter Steinberger
5500000492
chore(protocol): regenerate Swift gateway models
2026-02-26 04:43:27 +01:00
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
Peter Steinberger
2011edc9e5
fix(gateway): preserve agentId through gateway send path
...
Landed from #23249 by @Sid-Qin.
Includes extra regression tests for agentId precedence + blank fallback.
Co-authored-by: Sid <201593046+Sid-Qin@users.noreply.github.com>
2026-02-25 23:31:35 +00:00
Peter Steinberger
8f3310000a
refactor(macos): remove anthropic oauth onboarding flow
2026-02-26 00:17:03 +01:00
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