Vincent Koc
a842f482d5
fix(ios): keep attachments in composer when route is unavailable ( #116787 )
...
* fix(ios): retain attachments when delivery route is unavailable
Refs #116724
* chore(i18n): refresh native source inventory
2026-08-03 12:53:48 +08:00
Peter Steinberger
0021e51f22
feat(apple): media renditions, Now Playing, video upload ( #116051 )
...
* feat(apple): complete media playback and uploads
* fix(apple): preserve movie picker metadata
* fix(apple): harden rendition and picker routing
* style(apple): fix macOS media formatting
2026-07-29 15:50:18 -04:00
Peter Steinberger
bdf71d7d98
refactor(apple): unify offline client databases ( #111598 )
...
* refactor(apple): unify offline client databases
* refactor(apple): remove dead cache APIs
* fix(apple): satisfy native storage gates
* fix(apple): sync generated localization catalog
* Revert "fix(apple): sync generated localization catalog"
This reverts commit d0f5e7b74932e98ccc5f1984840e8f9d545edc2d.
* fix(i18n): keep source validation pre-merge
* test(macos): isolate flaky suite state
* test(macos): isolate log locator on main actor
2026-07-19 22:14:12 -07:00
Peter Steinberger
837db49ebb
test(macos): remove ChatViewModel timing races ( #110798 )
2026-07-18 17:47:51 +01:00
Peter Steinberger
28069db63a
feat(macos): render system chat option cards ( #110584 )
...
* feat(macos): render system chat option cards
* fix(macos): localize question card controls
* test(macos): stabilize main actor attachment tests
2026-07-18 13:23:59 +01:00
Peter Steinberger
bf754b8a34
feat: align native macOS chat with the web chat capability set ( #109712 )
...
* feat(macos): wire sessions manager, assistant trace, talk, voice notes, and Listen into native chat
* feat(clients): add input history, reply quoting, and per-session drafts to native chat composer
* fix(clients): capture TTS server lease before gateway check and dedupe restored input-history entries
* docs(clients): document reply-chip consume parity with web accepted-send semantics
* fix(clients): retire sent-text recall stash and keep recall markers stable under prepends
* test(clients): wait for outbox restore before asserting live-send paths
* docs(clients): note cross-session outbox flush scheduling contract
* chore(clients): split oversized chat files to satisfy SwiftLint length caps
* chore(i18n): sync native app i18n inventory for new chat strings
* chore: retrigger ci
* chore(i18n): translate new chat strings and regenerate Apple catalogs
* chore(i18n): regenerate Android localization resources for new chat strings
* test(clients): await lifecycle cleanup before modeling replacement gateway traffic
* chore(clients): split invoke timeout helper to satisfy SwiftLint length cap
* chore(clients): drop unused OpenClawProtocol import from invoke timeout split
2026-07-17 13:44:48 +01:00
Peter Steinberger
b42cd82217
test(apple): stabilize OpenClawKit suite ( #109688 )
2026-07-16 23:52:40 -07:00
Peter Steinberger
d628e35574
fix(apple): prevent stale thinking after model switches and reconnects ( #103767 )
...
* fix(apple): prevent stale model thinking state
* test(apple): complete attachment transport fixture
* fix(apple): scope model patch ordering by route identity
* chore(apple): sync native CI metadata
2026-07-10 16:48:11 +01:00
Peter Steinberger
f95ca90378
fix(ios): persist voice notes through offline delivery ( #101236 )
...
* fix(ios): persist voice note delivery state
* fix(ios): pin chats during attachment staging
* fix(ios): keep voice notes on captured chat
* fix(ios): keep voice notes durable through staging
* fix(ios): harden voice note lifecycle
* test(ios): satisfy strict concurrency in voice note proof
* fix(ios): keep legacy attachment sends live
* fix(ios): retain legacy drafts during outbox restore
* fix(ios): pin voice note recipient presentation
* fix(ios): preserve confirmed voice note duration
* chore(i18n): refresh voice note source inventory
* chore: leave release notes to release automation
2026-07-07 01:21:16 +01:00
Peter Steinberger
b978dcc63b
feat(ios): record and send voice notes from the chat composer ( #100946 )
...
* feat(ios): record and send voice notes from the chat composer
Adds tap-to-record voice notes to the shared chat composer: m4a/AAC mono
capture with a 3-minute cap, lazy mic permission, cancel/finish controls,
audio attachment chips with duration, and a voice-note transcript row.
Voice-wake suppression becomes reason-scoped so recording and Talk cannot
clobber each other. Attachments stay online-only per the outbox contract.
Related: #100709
* fix(ios): harden voice note attachment staging
* chore(ios): keep voice note changelog release-owned
* fix(ios): gate voice notes with attachment availability
* chore(ios): refresh native localization inventory
2026-07-07 00:14:05 +01:00
Val Alexander
faa443a452
fix(chat/ios): downscale image attachments before send
...
Resize iOS chat PhotosPicker image attachments through the shared JPEG transcoder before staging/sending. Cap long edge and payload bytes, strip source metadata, preserve previews from processed data, and add focused processor/view-model regression tests.\n\nFixes #68524.\nSupersedes #73710 .
2026-05-13 21:44:05 -05:00