Colin Johnson
5cd184c91b
fix(ios): keyboard unavailable after tapping chat composer ( #120723 )
...
* fix(ios): restore composer keyboard focus
* test(ios): cover composer focus in screenshot CI
Co-authored-by: Colin <colin@solvely.net >
* test(ios): make composer focus proof device-aware
Co-authored-by: Colin <colin@solvely.net >
* fix(ios): stabilize sidebar layout under keyboard
Co-authored-by: Colin <colin@solvely.net >
* chore(ios): refresh native i18n inventory
Co-authored-by: Colin <colin@solvely.net >
* test(ios): keep focus proof in screenshot helper
Co-authored-by: Colin <colin@solvely.net >
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-08-08 21:56:46 -07:00
joshavant
ac2994a0e2
fix(ios): keep permission actions readable
2026-08-07 15:27:58 -05:00
joshavant
0bcbaf2eda
fix(ios): remove permission pre-prompts
2026-08-07 15:27:58 -05:00
metaforismo
102a5915ef
fix(ios): restore Magic Keyboard return in chat composer ( #116042 )
...
* fix(ios): restore hardware return in chat composer
* test(ios): cover hardware return composer flow
* fix(ios): route history keys through native editor
* fix(ios): satisfy composer lint gates
* test(ios): fix snapshot app lookup
* test(ios): keep snapshot helper nonthrowing
---------
Co-authored-by: Patrick Erichsen <patrick.a.erichsen@gmail.com >
2026-07-31 16:21:41 -07:00
Vincent Koc
8a12343efe
fix(ios): stabilize Apple UI validation across runtimes ( #116487 )
...
* test(ios): align source guards with current contracts
* test(ios): stabilize cross-version UI automation
* test(ios): harden typography boundary audit
* test(ios): synchronize deterministic UI launches
2026-07-31 01:30:46 +08:00
Peter Steinberger
85afb973e4
fix(ios): keep stop available for staged voice notes ( #115744 )
2026-07-29 04:31:07 -04:00
Peter Steinberger
c539c77057
fix(ios): expose expandable chat agent identity ( #113917 )
2026-07-25 17:42:17 -07:00
joshavant
0030a8c808
fix(ios): cache location authorization state
2026-07-23 20:45:33 -05:00
joshavant
ee317497d9
fix(ios): isolate release screenshot captures
2026-07-23 20:45:33 -05:00
joshavant
b85c0e2064
fix(ios): harden release screenshot capture
2026-07-23 11:09:06 -05:00
joshavant
ebbbfa4c30
fix(ios): stabilize release screenshot launches
2026-07-23 00:28:00 -05:00
joshavant
1af115d257
test(ios): retry stalled screenshot launches
2026-07-22 23:42:32 -05:00
joshavant
b3cdb49aca
test(ios): stabilize appearance screenshot
2026-07-21 13:44:11 -05:00
joshavant
12515ad182
fix(ios): harden App Store release flow
2026-07-21 13:44:11 -05:00
Peter Steinberger
26165bbe80
fix(ios): smooth sidebar drags and remove background seams ( #112299 )
...
* fix(ios): polish sidebar drawer interaction
* fix(ios): latch sidebar drag direction
2026-07-21 08:40:30 -07:00
Peter Steinberger
312e656138
fix(ios): show agent avatars and use more sidebar space ( #112082 )
...
* fix(ios): improve agent sidebar menu layout
* chore(i18n): refresh native source inventory
2026-07-21 03:05:18 -07:00
Colin Johnson
0d3cbae6a1
fix(ios): sidebar drags jitter and toolbar control flickers ( #111831 )
...
* fix(ios): smooth sidebar gestures and toolbar controls
* fix(ios): keep sidebar edge gesture below toolbar
* chore(ios): refresh native localization inventory
* fix(ios): preserve edge content interactions
* fix(ios): restore smooth sidebar tracking
* test(ios): align drawer source guards
2026-07-20 17:26:17 -04:00
Colin Johnson
2f967bc8f3
test(ios): refresh chat voice and sidebar UI coverage ( #111655 )
2026-07-20 08:02:16 -04:00
Peter Steinberger
0fff74c800
feat(ios): replace the tab bar with a black overlay sidebar (web parity + dashboard) ( #111339 )
...
* feat(ios): unify navigation on a black overlay sidebar and drop the phone tab bar
* test(ios): rework navigation tests and snapshot UITests for the sidebar shell
* chore(i18n): sync derived native catalogs for sidebar strings
* feat(ios): reveal the sidebar beneath a push-away rounded content card
* feat(ios): web-parity sidebar — agent switcher, pinned pages, sessions vocabulary, uniform content card
* chore(i18n): translate sidebar and session strings across native catalogs
* fix(ios): sidebar footer shows connection dot only when degraded, like the web
* feat(ios): sidebar toggle top-left with edge-swipe open; card surface owns the drawer chrome
* fix(ios): single sidebar refresh owner, alias-aware Home badges, RM tap-close, user pin order, drop vestigial idiom shims
* feat(ios): align sidebar with the mobile prototype — agent roster, theme-following palette, web session subtitles, row badges
* chore(i18n): translate agent roster and Recent strings across native catalogs
* feat(ios): frosted-glass agent picker with uniform drawer insets
* fix(ios): address sidebar review findings — settings toggle edge, per-agent scoping, alias-aware selection, cron paging, refresh cadence
* fix(ios): clear landing CI blockers
2026-07-19 14:50:39 -07:00
Peter Steinberger
019e42e013
fix(ios): auto-scroll to the reply when sending with the keyboard open ( #110944 )
2026-07-18 21:41:47 +01:00
Colin Johnson
1ca6b6ff67
feat(ios): unify chat and voice experience ( #107879 )
...
* feat(ios): unify chat and voice experience
* refactor(ios): finish unified chat ownership
* fix(ios): unify chat and voice capture ownership
* fix(ios): serialize Talk permission hydration
* fix(ios): clear voice CI regressions
* fix(ios): clear remaining unified chat CI failures
* chore(i18n): sync native source inventory
* refactor(ios): defer provider-only realtime voice
* fix(ios): clean unified chat voice PR
* fix(ios): localize unified voice controls
* fix(ios): serialize composer audio controls
* fix(ios): isolate dictation preparation lifecycle
* fix(ios): key chat tab icons by appearance
* fix(ios): preserve talk upgrade handshakes
* fix(ios): refresh native i18n inventory
* fix(ios): reconcile shared locale artifacts
* fix(ios): satisfy chat view lint limit
* fix(ios): reconcile shared composer implementation
* test(apple): avoid XCTest actor deinit crash
* fix(ios): satisfy SwiftFormat scope spacing
* fix(ios): remove duplicate merged helper declarations
2026-07-18 14:30:10 -04:00
Peter Steinberger
4d4099e608
fix(ios): prevent black edge bands in chat ( #110505 )
...
* fix(ios): restore translucent chat edges
* chore: keep release notes in pull request
* chore(ios): sync native i18n inventory
2026-07-18 09:01:37 +01:00
joshavant
1c16005cd7
fix(ios): identify Apple Health integration
2026-07-17 12:16:44 -07:00
Peter Steinberger
93c9d2a20c
fix(ios): stop fresh setup from failing after pairing ( #108779 )
...
* fix(ios): make setup keychain handoff atomic
* fix(ios): refresh native i18n inventory
2026-07-16 03:50:54 -07:00
Peter Steinberger
334e7f3f21
feat(apps): add native mobile Automations parity ( #106355 )
...
* fix(apps): address native Skills review feedback
* feat(apps): add native Automations parity
* fix(ios): preserve automation editor selection
* fix(android): page automation discovery
* chore(apps): refresh native source inventory
* fix(ios): refresh invalid automation diagnostics
* chore(apps): sync native localization
* fix(cron): stabilize paginated snapshots
* refactor(cron): split pagination helpers
* fix(apps): address final native review feedback
* chore(apps): refresh native source inventory
* fix(ios): dedupe automation list actions
* chore: keep release note in PR context
* fix(ci): repair current main architecture gates
* fix(ios): default new skill requirement fields
* fix(ios): retain queued automation reservations
2026-07-13 15:35:32 -07:00
Peter Steinberger
d2b382528e
feat(ios): guide first launch through pairing explainer and permissions ( #106129 )
...
* feat(ios): guide first launch through pairing explainer and permissions
* fix(ios): keep first-run flow resumable and surface limited grants in onboarding
* chore(ios): regenerate native i18n after rebase
* chore(android): project refreshed native translations into strings.xml
* fix(ios): move i18n wrapper contract to shared permission row and sync catalog
2026-07-13 00:35:31 -07:00
Vincent Koc
2e218fdc09
fix(ios): avoid stale send button in live gateway test
2026-07-12 15:22:19 +02:00
Peter Steinberger
dc42c893c3
improve(ios): redesign share extension compose sheet ( #104187 )
2026-07-10 22:22:15 -07:00
Josh Avant
6438c89f05
fix(mobile): clarify gateway connection security setup ( #101325 )
...
* fix(mobile): clarify gateway connection setup
* chore(i18n): sync native mobile strings
* fix(mobile): align manual gateway previews
* chore(i18n): refresh native source inventory
* chore(android): remove unused connect tab strings
* test(i18n): drop removed connect tab sentinel
* fix(ios): brand connection security picker labels
* fix(mobile): hide gateway endpoint previews
* chore(i18n): sync native source inventory
* fix(mobile): remove redundant TLS helper copy
2026-07-07 14:43:11 -05:00
Peter Steinberger
d2d5911c32
fix(ios): keep While Using selected after approval ( #100512 )
...
* fix(ios): preserve initial location permission selection
* chore: keep iOS location fix independent
2026-07-06 03:05:25 +01:00
Tyler Nishida
2db5bd3394
feat(ios): refresh onboarding setup flow ( #98868 )
2026-07-05 21:38:54 -04:00
Josh
e43c72954a
Polish iOS onboarding and chat critique fixes ( #99243 )
...
* fix(ios): polish onboarding and empty chat
Co-authored-by: Josh <17843332+jcooley8@users.noreply.github.com >
* fix(ios): correlate pending chat echoes
* fix(ios): ship localized chat starters
* fix(ios): preserve chat echo identity
* fix(ios): adopt late correlated chat echoes
* fix(ios): reconcile reused chat runs
* fix(ios): preserve transformed chat history
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-04 00:38:56 -07:00
Marvin Kaunda
5370f64cf0
improve: native iOS look with stock SwiftUI navigation, forms, chat, and talk visualizer ( #99231 )
...
* improve(ios): adopt native SwiftUI chrome across the app
* fix(ios): keep phone chat on the native navigation bar
* fix(ios): render licenses screen as native settings rows
* fix(ios): complete native interface polish
* fix(ios): preserve branded native interface
* test(ios): align gateway badge source guard
* fix(ios): center onboarding on iPad
* fix(ios): remove dead reskin symbols
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-03 18:17:09 -07:00
PollyBot13
671c315072
feat: clarify iOS Location Always permission flow ( #99247 )
...
* feat: clarify iOS Location Always permission flow
* fix(ios): avoid stale location permission summary
* fix(ios): clarify disabled location permission grants
* fix(ios): sync external location grants into settings
* chore(ios): refresh native i18n inventory
* fix(ios): preserve location off during permission sync
* fix(ios): preserve while using during location sync
* fix(ios): wait for location permission prompts
* fix(ios): reconcile significant location monitoring
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-03 14:16:20 -07:00
christopheraaronhogg
ab2761f3a5
improve: make native chat scrolling reader-managed ( #98258 )
...
* improve native chat scroll behavior
* add native chat scroll proof harnesses
* fix(android): jump native chat to live content
* fix(mobile): harden reader-managed chat scrolling
* fix(android): preserve prompt anchor through completion
* fix(android): gate follow changes on user scroll
* fix(ios): handle optimistic chat rollback
* fix(mobile): harden reader boundary transitions
* fix(mobile): expose newer content after restore
* fix(android): preserve restored reader identity
* test(ios): prove reader pause and resume
* fix(android): scope restored reader state to session
* chore(i18n): sync native chat inventory
* fix(mobile): harden reader scroll recovery
* chore(i18n): sync native inventory after rebase
---------
Co-authored-by: Chris Hogg <chrishogg@Chriss-Mac-mini-3.local >
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-03 06:57:16 -07:00
Peter Steinberger
0e68c50139
fix(ios): add Photos permission controls ( #99350 )
...
* fix(ios): add Photos permission controls
* chore(i18n): sync native Photos strings
* fix(ios): align Swedish Photos disclosure
* test(ios): complete limited Photos UI proof
* chore(i18n): refresh native source lines
2026-07-02 22:11:14 -07:00
Abdullah Taş
c37961fdab
fix(ios): onboarding Retry Connection does nothing after editing gateway details ( #99220 )
...
* fix(ios): make onboarding Retry Connection use current manual input
Retry Connection on the auth step replayed connectLastKnown(), which
silently returns when no last connection is stored and otherwise redials
the stale persisted endpoint, ignoring host/port/TLS and token edits made
on screen. Manual retries now dial the current form input; discovered
gateway retries keep the previous behavior.
* fix(ios): repair onboarding credential retry
Co-authored-by: Abdullah Taş <29359748+abdullahtas0@users.noreply.github.com >
---------
Co-authored-by: abdullahtas0 <“dev.abdullahtas@gmail.com ”>
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-02 20:49:14 -07:00
Peter Steinberger
32762dad53
fix(ios): return chat to originating control detail ( #99245 )
...
* fix(ios): return chat to originating control detail
Co-authored-by: Colin <colin@solvely.net >
* fix(ios): reset retained state before control chat handoff
Co-authored-by: Colin <colin@solvely.net >
---------
Co-authored-by: Colin <colin@solvely.net >
2026-07-02 15:20:51 -07:00
Sahil Satralkar
09de1642f3
fix: Update Dark/Light mode UI control appearance ( #99052 )
...
* fix: keep iOS appearance row visible
* test(ios): verify appearance preference updates
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-02 14:53:24 -07:00
PollyBot13
2f707f9811
fix: prevent Voice Wake crash after Talk audio capture ( #99137 )
...
* fix: prevent Voice Wake audio restart race
* fix: handle in-flight Voice Wake suspension
* test(ios): harden Voice Wake lifecycle proof
* fix(ios): remove Voice Wake tap after failed start
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-02 14:41:49 -07:00
Lokimorty
9d3e263365
fix(ios): back from settings details returns to the originating screen ( #98898 )
...
* fix(ios): back from settings details returns to the originating screen
Detail views reachable from multiple places (gateway, voice, notifications
settings) previously opened by switching to the canonical Settings tab, so
Back landed on the Settings root instead of the screen the user came from.
Phone tabs now push SettingsRoute details on their own NavigationStack via
PhoneTabSettingsHost, the Control hub pushes the gateway detail onto its own
stack, and the Approvals->Notifications shortcut appends instead of replacing
the path (phone and iPad). Global flows (deep links, onboarding, problem
banner, notification dialog) still jump to the canonical Settings tab.
* chore(i18n): sync native app i18n inventory line references
* test(ios): prove settings back navigation
* test(ios): prove settings back navigation
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-02 10:08:39 +01:00
Peter Steinberger
c4102f5d67
feat(ios): refine the chat experience ( #98953 )
...
* feat(ios): refine the chat experience
* feat(ios): refine the chat experience
2026-07-02 08:40:53 +01:00
Peter Steinberger
313560d5b9
feat(ios): modernize navigation and settings ( #98811 )
...
* feat(ios): modernize navigation and settings
* fix(ios): remove obsolete settings helpers
* test(ios): update i18n collector fixture
* test(ios): update i18n collector fixture
* test(ios): update i18n collector fixture
2026-07-02 02:43:49 +01:00
joshavant
6ad2626cfd
fix(ios): generate light app store screenshots only
2026-07-01 19:16:23 -05:00
Peter Steinberger
3e50f41dd6
improve(ios): simplify Talk controls and composer alignment ( #98736 )
...
* refactor(ios): streamline talk and composer controls
* test(ios): restore Talk control state
* chore(ios): refresh native i18n inventory
2026-07-02 00:48:37 +01:00
Peter Steinberger
8502ef6c59
feat(ios): modernize the app with iOS 26 Liquid Glass ( #98452 )
...
* feat(ios): adopt iOS 26 Liquid Glass design
* refactor(ios): refine Liquid Glass hierarchy
* docs(ios): require Xcode 26
* refactor(ios): remove obsolete design helpers
* fix(ios): keep agent tab navigation hidden
* fix(ios): compact chat composer at rest
* refactor(ios): reduce interface density
* fix(ios): keep native string inventory current
2026-07-01 19:06:04 +01:00
Peter Steinberger
b2355ef6a2
fix(ios): improve light and dark appearance contrast ( #98443 )
2026-07-01 07:31:42 +01:00
Peter Steinberger
c230ab3c92
improve(ios): clarify Control and Talk visual hierarchy ( #98423 )
...
* feat(ios): refine control and talk visual hierarchy
* feat(ios): refine control and talk visual hierarchy
* feat(ios): refine control and talk visual hierarchy
2026-07-01 06:19:58 +01:00
joshavant
eae53595b0
fix: unblock ios release upload metadata
2026-06-23 00:39:45 -05:00
joshavant
5a2641fc41
test: add ios screenshot automation
2026-06-15 19:27:55 +02:00