Peter Steinberger
091584b197
chore(swift): restore compact conditional bodies ( #103832 )
...
* style(swift): restore compact conditional bodies
* fix(ios): remove redundant startup timeout await
* chore(swift): sync native i18n inventory
2026-07-10 18:12:00 +01:00
Peter Steinberger
62bd760c0e
chore(swift): enforce current formatting and lint rules ( #103313 )
...
* style: apply SwiftFormat 0.62.1 rules
Refs #103202
* ci: enforce deterministic Swift lint
Refs #103202
* refactor: keep gateway connect lint-clean
Refs #103202
* style: keep iOS typography checks warning-free
* ci: route MLX Swift changes through pre-push
* fix: preserve native i18n extraction after Swift cleanup
* refactor: keep rebased Swift surfaces lint-clean
* style: format latest Swift additions
* chore: refresh native i18n inventory
* style: keep generated Swift formatter-clean
* fix: preserve node route invalidation callbacks
* fix: keep native translation IDs stable
* fix: retain native translation identifiers
* fix: preserve translations across Swift source moves
2026-07-10 11:54:08 +01:00
Peter Steinberger
20816f676f
feat(voice): universal talk waveform driven by real audio levels ( #102901 )
...
* feat(voice): universal talk waveform driven by real audio levels
One shared Siri-style talk animation across iOS, watchOS, macOS, and
Android (TalkWaveformView + exact Compose port), replacing per-platform
fakes: synthetic speaking pulses, constant speech-detected power, static
Android bar rows, flat realtime listening. Listening/recording follow
live mic levels on every route; agent speech follows the real playback
envelope (AVAudioPlayer metering + playback-aligned PCM envelope +
WebRTC stats); voice-note recording shows a live capture wave.
* fix(android): order waveform imports and sync native i18n inventory
* chore(i18n): resync native inventory after rebase
2026-07-09 16:33:25 +01:00
Peter Steinberger
54f45a950b
feat(watchos): connect directly to Gateway as a node ( #102893 )
...
* feat(watchos): add direct gateway node
* docs: refresh watch node docs map
* chore: leave release notes to release workflow
* chore(ios): refresh native localization inventory
* fix(watchos): keep direct node policy bounded
2026-07-09 15:53:02 +01:00
Peter Steinberger
8d1668c441
fix(ios): harden Apple Watch pairing activation ( #100732 )
2026-07-06 09:16:02 +01:00
PollyBot13
a320f775f0
fix(ios): defer QR pairing after scanner dismissal ( #99572 )
...
* fix(ios): defer QR pairing after scanner dismissal
* fix(ios): process QR pairing after scanner dismissal
* fix(ios): harden QR scanner handoff
* fix(ios): give QR scanner dismissal more time
* fix(ios): keep onboarding open for QR trust prompt
* fix(ios): keep QR trust prompt owned by onboarding
* fix(ios): recover operator pairing after QR bootstrap
* fix(ios): cancel stale QR scanner handoffs
Co-authored-by: PollyBot13 <pollybot13@gmail.com >
* fix(ios): defer QR setup until onboarding closes
* fix(ios): keep QR setup links with visible settings
* fix(ios): consume setup links during onboarding
* fix(ios): handle setup links during onboarding launch
* fix(ios): route setup links through active onboarding
* fix(ios): harden QR gateway handoff
* fix(ios): cancel superseded gateway attempts
* fix(ios): serialize scanner result delivery
* fix(ios): prevent stale gateway reconnects
* fix(ios): serialize gateway target handoff
* fix(ios): disable stale gateway relaunch route
* fix(ios): await staged bootstrap reset
* test(ios): bound gateway reset handoff
* fix(ios): preserve explicit gateway handoff
* fix(ios): harden gateway lifecycle ownership
* chore(ios): sync native i18n inventory
* test(ios): align gateway ownership assertions
* refactor(ios): remove superseded gateway helpers
* fix(ios): keep gateway auth route scoped
* fix(ios): restore gateway target review state
* fix(protocol): refresh Swift plugin approval model
* test(ios): isolate state directory overrides
* fix(ios): preserve watch alerts across gateway switches
* fix(ios): bind deferred work to gateway ownership
* docs(changelog): credit iOS gateway handoff fix
* chore(i18n): sync native app inventory
* test(ios): remove unused Watch approval hooks
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-05 12:31:53 -07:00
Peter Steinberger
70f2bef6b4
fix(ios): persist queued Watch replies ( #100372 )
...
* fix(ios): persist queued watch replies
Route Apple Watch quick replies through the durable, gateway-scoped Watch message outbox with restart-safe routing and deduplication.
Co-authored-by: NianJiuZst <180004567+NianJiuZst@users.noreply.github.com >
* fix(ios): preserve pre-upgrade Watch replies
Bind shipped notification prompts without routing metadata to the current Gateway once, while keeping explicit and persisted Gateway owners fail-closed.
---------
Co-authored-by: NianJiuZst <180004567+NianJiuZst@users.noreply.github.com >
2026-07-05 09:14:49 -07:00
Peter Steinberger
245092dc3a
feat(ios): add Apple Watch voice turns ( #100283 )
...
* feat(ios): add Apple Watch voice turns
* chore(ios): sync native i18n inventory
* fix(ios): preserve Watch message label
2026-07-05 06:40:03 -07:00
joshavant
52ed5eca49
Fix iOS branded typography dynamic type refresh
2026-07-03 18:45:45 -05:00
joshavant
7a1f3d7183
Fix iOS typography CI checks
2026-07-03 18:45:45 -05:00
joshavant
d483cc1f72
fix(ios): cover remaining branded typography surfaces
2026-07-03 18:45:45 -05:00
Vincent Koc
5e4d71686a
fix(apple): preserve localized static labels
2026-07-01 05:19:12 -07:00
Peter Steinberger
8d9eba3f4f
fix(ios): complete single-target watch migration
...
Use the watchOS application API for text input, remove simulator-only Debug architecture restrictions, and document the standard Watch bundle location. Refs #92477 .
Co-authored-by: Sash Zats <sash@zats.io >
2026-06-19 06:18:43 -04:00
Sash Zats
b39a932112
fix: migrate watch app to single-target app (Xcode 27+ compat) ( #92477 )
...
* fix: migrate watch app to single-target app
* fix: build watch screenshots generically
* docs(ios): clarify watch embed invariant
* docs(ios): clarify watch embed invariant
---------
Co-authored-by: joshavant <830519+joshavant@users.noreply.github.com >
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-06-19 11:34:34 +02:00