Commit Graph

606 Commits

Author SHA1 Message Date
Peter Steinberger
73a0bf4b7c refactor(apple): share chat gateway payload mapping (#106154)
* refactor(apple): share chat gateway payload mapping

* test(apple): track shared event mapping
2026-07-13 02:39:01 -07:00
Peter Steinberger
938d41014f feat(mobile): default pairing to full node access (#105928)
* feat(mobile): default pairing to full node access

* chore: leave release notes to release workflow

* refactor(mobile): bound pairing helpers

* chore(i18n): refresh mobile access inventory

* chore(ci): lower mobile pairing LOC baseline

* fix(mobile): complete pairing validation artifacts

* ci: remove stale transcript target export baseline

* fix(ios): wrap access upgrade guidance

* fix(ios): preserve localized access key

* fix(ci): dedupe read-only SQLite guardrail

* fix(mobile): secure full-access node setup
2026-07-13 02:30:45 -07:00
Peter Steinberger
3261667b73 fix(ios): keep reconnect errors visible (#105875)
* fix(ios): keep reconnect errors visible

* fix(ios): clear stale errors on gateway switch

* chore(ios): keep release notes in PR

* fix(ios): reset status when switching gateways

* fix(ios): retain errors through same-target reconnect

* fix(ios): unpause explicit pairing retries

* fix(ios): isolate retained reconnect errors

* chore(i18n): resync rebased native inventory

* fix(ios): separate reconnect display state
2026-07-13 02:11:26 -07:00
Peter Steinberger
17630226fc improve(ios): make gateway QR pairing prominent in Settings (#106111)
Reorder Settings -> Gateway by intent: pairing (Add Gateway with Scan QR,
setup code, discovered gateways) right below status, nav-bar QR scanner
button on the gateway route, and a Scan QR to Pair status-card hero while
nothing is paired (honoring the shared connect lock). Manual Gateway and
credentials move to the bottom. Fix setup-code Connect busy spinner to
track the whole attempt. New strings ran the full native i18n pipeline.

Closes #106013
2026-07-13 00:35:38 -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
Peter Steinberger
b57e7b74e6 feat: add native Skills management parity (#105814)
* feat(apps): add native skills management parity

* chore(i18n): refresh native skills inventory

* style(apps): apply canonical Swift formatting

* style(ios): wrap skills status message

* chore(i18n): refresh native skill locales

* refactor(apps): trim native skills review surface

* chore(i18n): regenerate native app resources

* chore: keep release changelog owner-only

* fix(ios): remove dead gateway and watch wrappers
2026-07-13 00:11:11 -07:00
Colin Johnson
6242842722 fix(ios): focus missing gateway credentials (#98189)
* fix(ios): focus missing gateway credentials

Co-authored-by: Colin <colin@solvely.net>

* test(macos): let main actor polling suspend

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-12 23:36:29 -07:00
Peter Steinberger
c81ae0412c fix(ios): localize Settings accessibility labels (#105859)
* fix(ios): preserve localized accessibility labels

* chore(i18n): refresh native source inventory
2026-07-12 19:33:27 -07:00
Vincent Koc
818eca2c09 fix(ios): coalesce automatic overview refreshes 2026-07-13 03:53:15 +02:00
Vincent Koc
5e9bc0916f fix(ios): harden gateway and watch state handling 2026-07-13 03:53:15 +02:00
Peter Steinberger
5e45ebe82b feat(ios): add private HealthKit summaries (#105616)
* feat(ios): add private HealthKit summaries

* fix(ios): satisfy Health settings lint

* chore(ios): sync Health localization artifacts

* chore(ios): refresh generated localization and docs

* fix(ios): reject partial Health history

* chore(ios): sync Health string catalogs

* fix(ios): bridge Health authorization dates

* fix(ios): scope Health summaries to today
2026-07-12 12:52:38 -07:00
Vincent Koc
5ec053a6e9 refactor(ios): remove unused live activity wrapper 2026-07-12 18:33:47 +02:00
Vincent Koc
f64eb0cbaa fix(ios): localize sidebar reveal actions 2026-07-12 18:33:47 +02:00
Vincent Koc
e999802e6e fix(ios): type watch gateway request identifier 2026-07-12 18:33:47 +02:00
Vincent Koc
01ed6b1f04 fix(ios): distinguish localized and verbatim session actions 2026-07-12 18:33:47 +02:00
Vincent Koc
7394d07a49 fix(ios): use typed localized retry action 2026-07-12 18:33:47 +02:00
Vincent Koc
aa1a8ddb34 fix(ios): preserve localized text value boundaries 2026-07-12 18:33:47 +02:00
Vincent Koc
543161e67e fix(ios): localize remaining runtime labels 2026-07-12 18:33:47 +02:00
Vincent Koc
6ddc87de0a fix(ios): satisfy watch localization build gates 2026-07-12 18:33:47 +02:00
Vincent Koc
a1f0a92b03 fix(watch): preserve terminal approval outcomes 2026-07-12 18:33:47 +02:00
Vincent Koc
34fe882301 fix(ios): carry semantic gateway progress 2026-07-12 18:33:47 +02:00
Vincent Koc
0e49f09112 fix(watch): preserve localized terminal status 2026-07-12 18:33:47 +02:00
Vincent Koc
1e22d4fcbd fix(ios): localize concatenated settings copy 2026-07-12 18:33:47 +02:00
Vincent Koc
3854f43be7 fix(talk): preserve WebRTC progress semantics 2026-07-12 18:33:47 +02:00
Vincent Koc
1c3b94550e fix(watch): preserve one-shot push-to-talk status 2026-07-12 18:33:47 +02:00
Vincent Koc
0e092aa08e chore(ios): refresh localized runtime assets 2026-07-12 18:33:47 +02:00
Vincent Koc
55a3634809 fix(watch): preserve realtime failure presentation 2026-07-12 18:33:47 +02:00
Vincent Koc
af1036bc5c fix(ios): canonicalize shipped activity statuses 2026-07-12 18:33:47 +02:00
Vincent Koc
a69f1cb1be fix(watch): dual-write legacy snapshot status 2026-07-12 18:33:47 +02:00
Vincent Koc
44f2488318 fix(watch): preserve terminal Talk failure state 2026-07-12 18:33:47 +02:00
Vincent Koc
c89dc7905d chore(ios): refresh reviewed localization assets 2026-07-12 18:33:47 +02:00
Vincent Koc
cf8ae716ff fix(ios): preserve localized runtime semantics 2026-07-12 18:33:47 +02:00
Vincent Koc
88f1e91383 chore(ios): regenerate localized app assets 2026-07-12 18:33:47 +02:00
Vincent Koc
c09a555c9e fix(ios): decouple Talk state from localized copy 2026-07-12 18:33:47 +02:00
Vincent Koc
95cff58166 fix(watchos): localize semantic status on watch 2026-07-12 18:33:47 +02:00
Vincent Koc
f3000a953f fix(ios): preserve runtime localization semantics 2026-07-12 18:33:47 +02:00
Vincent Koc
4e689e33d5 fix(ios): localize gateway problem presentation 2026-07-12 18:33:47 +02:00
Vincent Koc
3372812560 fix(ios): localize dynamic presentation strings 2026-07-12 18:33:47 +02:00
Vincent Koc
632ea2bcb7 style(ios): satisfy SwiftFormat in localized surfaces 2026-07-12 18:33:47 +02:00
Vincent Koc
2ee16ccdc1 test(ios): cover positional localized status formats 2026-07-12 18:33:47 +02:00
Vincent Koc
61511342e4 test(ios): cover speech restart status ownership 2026-07-12 18:33:47 +02:00
Vincent Koc
cc85d8256f fix(ios): use plural-aware localized counts 2026-07-12 18:33:47 +02:00
Vincent Koc
a8ae1bff7f fix(ios): preserve localized status semantics 2026-07-12 18:33:47 +02:00
Vincent Koc
99c1fedf27 fix(watchos): localize chat status on watch 2026-07-12 18:33:47 +02:00
Vincent Koc
8f14bd29e3 build(ios): generate shipped localization catalogs 2026-07-12 18:33:47 +02:00
Vincent Koc
459f11e902 fix(ios): guard localized speech status restart 2026-07-12 18:33:47 +02:00
Vincent Koc
826b4fac1f fix(ios): keep localized voice status state-safe 2026-07-12 18:33:47 +02:00
Vincent Koc
ee3104340d fix(ios): localize design and chat surfaces 2026-07-12 18:33:47 +02:00
Vincent Koc
6d4afffec3 fix(ios): localize setup and status surfaces 2026-07-12 18:33:47 +02:00
Peter Steinberger
251f54baec fix(apps): remove dead native code 2026-07-12 02:41:17 -07:00