Colin Johnson
f6e51ff99a
feat(ios): refresh pro UI and gateway flows ( #87367 )
...
Summary:
- Replace the legacy iOS shell with Pro Command, Chat, Agents, and Settings tabs.
- Wire iOS chat/session/settings/diagnostics and realtime Talk flows through gateway-backed APIs.
- Add gateway/session and shared chat coverage for the new iOS flow.
Verification:
- git diff --check
- node scripts/run-vitest.mjs src/gateway/server.sessions.create.test.ts src/gateway/talk-realtime-relay.test.ts
- swift test --filter ChatViewModelTests (apps/shared/OpenClawKit)
- xcodebuild build for Nimrod's iPhone succeeded; install succeeded; launch was blocked because the phone was locked
Known follow-up:
- Preserve traceLevel in sessions.create parent runtime inheritance and keep the changelog credit in the follow-up patch.
2026-05-28 17:23:26 +03:00
Peter Steinberger
c94c513714
refactor(ios): centralize setup auth parsing
...
Centralizes iOS setup-code auth parsing so token/bootstrap/password trimming and the bootstrap-clears-stale-credentials rule live in one parsed value.
Verification:
- `git diff --check`
- `swiftformat --lint --config config/swiftformat --unexclude apps/ios/Sources apps/ios/Sources/Gateway/GatewayConnectionController.swift apps/ios/Sources/Onboarding/GatewayOnboardingView.swift apps/ios/Sources/Onboarding/OnboardingWizardView.swift apps/ios/Sources/Settings/SettingsTab.swift`
- `swiftlint lint --config apps/ios/.swiftlint.yml apps/ios/Sources/Gateway/GatewayConnectionController.swift apps/ios/Sources/Onboarding/GatewayOnboardingView.swift apps/ios/Sources/Onboarding/OnboardingWizardView.swift apps/ios/Sources/Settings/SettingsTab.swift`
- `AUTOREVIEW_AUTO_TESTS=0 .agents/skills/autoreview/scripts/autoreview --mode branch --base origin/main`
- GitHub merge state clean for `fc35f31e95e73850a153149edaf471c10379dff2`
2026-05-22 17:54:53 +01:00
Peter Steinberger
d93c59732b
refactor(ios): consolidate manual auth override inputs
...
Consolidates repeated iOS manual-auth override assembly into `ManualAuthOverride.currentManualInput` and reuses the existing `normalized` constructor directly for setup-code pending auth state.
Verification:
- `git diff --check`
- `swiftformat --lint --config config/swiftformat --unexclude apps/ios/Sources apps/ios/Sources/Gateway/GatewayConnectionController.swift apps/ios/Sources/Onboarding/GatewayOnboardingView.swift apps/ios/Sources/Onboarding/OnboardingWizardView.swift apps/ios/Sources/Settings/SettingsTab.swift`
- `swiftlint lint --config apps/ios/.swiftlint.yml apps/ios/Sources/Gateway/GatewayConnectionController.swift apps/ios/Sources/Onboarding/GatewayOnboardingView.swift apps/ios/Sources/Onboarding/OnboardingWizardView.swift apps/ios/Sources/Settings/SettingsTab.swift`
- `AUTOREVIEW_AUTO_TESTS=0 .agents/skills/autoreview/scripts/autoreview --mode branch --base origin/main`
- GitHub merge state clean for `cb6f3bcf8f121b570e22dcb8eed6dc9aaa89fc55`
2026-05-22 17:43:23 +01:00
Colin Johnson
e730e9bd0b
feat(ios): add realtime talk relay mode
...
Adds realtime Gateway Talk relay support for iOS, including OpenAI realtime provider selection and voice selection controls.
Maintainer fixups preserved provider auth fallback resolution, kept setup-code/manual auth through TLS trust prompts, recomputed pairing auth from current form fields, fixed the realtime voice label Swift compile issue, added provider auth regression coverage, and refreshed shrinkwrap metadata for the current CI merge base.
Verification:
- `fnm exec --using 24.15.0 pnpm deps:shrinkwrap:check`
- `git diff --check`
- `swiftformat --lint --config config/swiftformat --unexclude apps/ios/Sources apps/ios/Sources/Gateway/GatewayConnectionController.swift apps/ios/Sources/Onboarding/GatewayOnboardingView.swift apps/ios/Sources/Onboarding/OnboardingWizardView.swift apps/ios/Sources/Settings/SettingsTab.swift apps/ios/Sources/Voice/TalkModeGatewayConfig.swift`
- `swiftlint lint --config apps/ios/.swiftlint.yml apps/ios/Sources/Gateway/GatewayConnectionController.swift apps/ios/Sources/Onboarding/GatewayOnboardingView.swift apps/ios/Sources/Onboarding/OnboardingWizardView.swift apps/ios/Sources/Settings/SettingsTab.swift apps/ios/Sources/Voice/TalkModeGatewayConfig.swift`
- `AUTOREVIEW_AUTO_TESTS=0 .agents/skills/autoreview/scripts/autoreview --mode branch --base origin/main`
- GitHub CI clean for `8a76c829611c0eb70d4c3b5328f1868aaf3516e1` (cancelled `auto-response` ignored)
Co-authored-by: Colin Johnson <colin@solvely.net >
2026-05-22 17:34:06 +01:00
Nimrod Gutman
00a0858fd9
fix(ios): recover rotated gateway certificates
...
## Summary
- allow iOS to trust system-valid rotated gateway certificates
- rebuild active gateway sessions after replacing the stored TLS pin
- expose certificate trust recovery from gateway problem banners
## Verification
- swift test --filter 'GatewayErrorsTests|GatewayNodeSessionTests/changedSessionBoxRebuildsExistingGatewayChannel'
- xcodebuild build -scheme OpenClaw -destination 'platform=iOS,id=00008140-000848A92EE3001C'
- installed and launched OpenClaw on attached iPhone with devicectl
- verified iOS gateway log connected to wss://gutsy-home.tail06a72.ts.net:443 after trust/pairing recovery
2026-05-10 21:10:35 +03:00
Val Alexander
36df0d93b9
fix: repair iOS LAN pairing
...
Fix iOS LAN/setup-code pairing policy for #47887 .
- Allow explicit private LAN and .local plaintext ws:// setup/manual connects where policy allows it.
- Keep public hosts, .ts.net, and Tailscale CGNAT plaintext fail-closed.
- Prefer explicit passwords over stale bootstrap tokens in Swift and TypeScript gateway clients.
- Update setup-code/device-pair coverage, docs, and changelog with source credit for #65185 .
Verification:
- pnpm install
- git diff --check origin/main..HEAD
- pnpm exec oxfmt --check --threads=1 src/gateway/client.ts src/gateway/client.test.ts src/pairing/setup-code.ts src/pairing/setup-code.test.ts extensions/device-pair/index.ts extensions/device-pair/index.test.ts
- pnpm format:docs:check
- pnpm test src/gateway/client.test.ts src/pairing/setup-code.test.ts extensions/device-pair/index.test.ts
- cd apps/shared/OpenClawKit && swift test --filter 'DeepLinksSecurityTests|GatewayNodeSessionTests'
- pnpm lint:swift passes with the existing TalkModeRuntime.swift type-body-length warning
Blocked locally:
- iOS app-target xcodebuild tests require unavailable watchOS 26.4 runtime here.
- Testbox check:changed previously failed because the image lacks swiftlint; local swiftlint passes.
2026-05-05 21:07:19 -05:00
Peter Steinberger
466f718320
feat: wire talk handoff into native nodes
2026-05-06 02:39:15 +01:00
Val Alexander
b2efd19648
fix(ios): harden gateway pairing setup
...
Harden iOS gateway setup-code pairing by rejecting non-loopback plaintext ws:// setup URLs before bootstrap token issuance, consolidating iOS setup parsing, and adding QR scan support from Settings.
Verification:
- pnpm test extensions/device-pair/index.test.ts
- swift test --package-path apps/shared/OpenClawKit --filter DeepLinksSecurityTests
- XcodeBuildMCP OpenClawLogicTests/DeepLinkParserTests
- targeted SwiftLint for touched iOS/OpenClawKit files
- pnpm exec oxfmt --check --threads=1 extensions/device-pair/index.ts extensions/device-pair/index.test.ts
- git diff --check origin/main...HEAD
- GitHub PR checks green on 58e5e60a5c
2026-05-04 02:11:47 -05:00
Peter Steinberger
b294f7c467
fix: harden ios app build hygiene
2026-04-28 01:42:10 +01:00
Peter Steinberger
73f4bfadc1
style: fix ios app lint warnings
2026-04-20 14:17:25 +01:00
Nimrod Gutman
6380c872bc
feat(ios): improve gateway connection error ux ( #62650 )
...
* feat(ios): improve gateway connection error ux
* fix(ios): address gateway problem review feedback
* feat(ios): improve gateway connection error ux (#62650 ) (thanks @ngutman)
2026-04-07 21:53:22 +03:00
Nimrod Gutman
28955a36e7
feat(ios): add exec approval notification flow ( #60239 )
...
* fix(auth): hand off qr bootstrap to bounded device tokens
* feat(ios): add exec approval notification flow
* fix(gateway): harden approval notification delivery
* docs(changelog): add ios exec approval entry (#60239 ) (thanks @ngutman)
2026-04-05 16:33:22 +03:00
Nimrod Gutman
69fe999373
fix(pairing): restore qr bootstrap onboarding handoff ( #58382 ) (thanks @ngutman)
...
* fix(pairing): restore qr bootstrap onboarding handoff
* fix(pairing): tighten bootstrap handoff follow-ups
* fix(pairing): migrate legacy gateway device auth
* fix(pairing): narrow qr bootstrap handoff scope
* fix(pairing): clear ios tls trust on onboarding reset
* fix(pairing): restore qr bootstrap onboarding handoff (#58382 ) (thanks @ngutman)
2026-03-31 21:11:35 +03:00
Val Alexander
2fd372836e
iOS: improve QR pairing flow ( #51359 )
...
- improve QR pairing UX and bootstrap token handling
- preserve repeated optimistic user messages during refresh
- add regression coverage for refresh reconciliation
Thanks @ImLukeF
2026-03-21 01:10:29 -05:00
Peter Steinberger
bf89947a8e
fix: switch pairing setup codes to bootstrap tokens
2026-03-12 22:23:07 +00:00
Nimrod Gutman
43ab4f33ad
feat(ios): prepare app store connect release assets
2026-03-07 17:21:07 +02:00
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
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
Peter Steinberger
cd011897d0
refactor(ios): dedupe status, gateway, and service flows
2026-03-02 11:32:20 +00:00
Peter Steinberger
c35368c6dd
fix(ios): eliminate Swift warnings and clean build logs
2026-02-26 22:42:23 +00:00
Peter Steinberger
52d933b3a9
refactor: replace bot.molt identifiers with ai.openclaw
2026-02-25 05:03:24 +00:00
Peter Steinberger
f4e6f87303
refactor(ios): drop legacy talk payload and keychain fallbacks
2026-02-24 22:39:37 +00:00
Nimrod Gutman
d58f71571a
feat(talk): add provider-agnostic config with legacy compatibility
2026-02-24 15:02:52 +00:00
DoncicX
32d7756d8c
iOS: extract device/platform info into DeviceInfoHelper, keep Settings platform string as iOS X.Y.Z
2026-02-24 13:56:43 +00:00
Peter Steinberger
ff4e6ca0d9
fix(ios): gate agent deep links with local confirmation
2026-02-24 02:51:58 +00:00
Nimrod Gutman
8a661e30c9
fix(ios): prefetch talk tts segments
2026-02-21 20:52:05 +02:00
Shadow
4ab946eebf
Discord VC: voice channels, transcription, and TTS ( #18774 )
2026-02-20 16:06:07 -06:00
Mariano
67edc7790f
iOS: gate capabilities by permissions and add settings controls ( #22135 )
...
Merged via /review-pr -> /prepare-pr -> /merge-pr.
Prepared head SHA: 92c2660d08
Co-authored-by: mbelinky <132747814+mbelinky@users.noreply.github.com >
Co-authored-by: mbelinky <132747814+mbelinky@users.noreply.github.com >
Reviewed-by: @mbelinky
2026-02-20 19:26:30 +00:00
Mariano
5828708343
iOS/Gateway: harden pairing resolution and settings-driven capability refresh ( #22120 )
...
Merged via /review-pr -> /prepare-pr -> /merge-pr.
Prepared head SHA: 55b8a93a99
Co-authored-by: mbelinky <132747814+mbelinky@users.noreply.github.com >
Co-authored-by: mbelinky <132747814+mbelinky@users.noreply.github.com >
Reviewed-by: @mbelinky
2026-02-20 18:57:04 +00:00
Mariano
8fa46d709a
fix(ios): force tls for non-loopback manual gateway hosts ( #21969 )
...
Merged via /review-pr -> /prepare-pr -> /merge-pr.
Prepared head SHA: 9fb39f566e
Co-authored-by: mbelinky <132747814+mbelinky@users.noreply.github.com >
Co-authored-by: mbelinky <132747814+mbelinky@users.noreply.github.com >
Reviewed-by: @mbelinky
2026-02-20 16:28:47 +00:00
Mariano
57083e4220
iOS: add Apple Watch companion message MVP ( #20054 )
...
Merged via /review-pr -> /prepare-pr -> /merge-pr.
Prepared head SHA: 720791ae6b
Co-authored-by: mbelinky <132747814+mbelinky@users.noreply.github.com >
Co-authored-by: mbelinky <132747814+mbelinky@users.noreply.github.com >
Reviewed-by: @mbelinky
2026-02-18 13:37:41 +00:00
Mariano
130e59a9c0
iOS: port onboarding + QR pairing flow stability ( #18162 )
...
Merged via /review-pr -> /prepare-pr -> /merge-pr.
Prepared head SHA: a87eadea19
Co-authored-by: mbelinky <132747814+mbelinky@users.noreply.github.com >
Co-authored-by: mbelinky <132747814+mbelinky@users.noreply.github.com >
Reviewed-by: @mbelinky
2026-02-16 16:22:51 +00:00
Mariano
9a1e168685
iOS: port gateway connect/discovery stability + onboarding reset ( #18164 )
...
Merged via /review-pr -> /prepare-pr -> /merge-pr.
Prepared head SHA: 8165ec5bae
Co-authored-by: mbelinky <132747814+mbelinky@users.noreply.github.com >
Co-authored-by: mbelinky <132747814+mbelinky@users.noreply.github.com >
Reviewed-by: @mbelinky
2026-02-16 16:07:22 +00:00
Mariano
2e7fac2231
iOS: port talk redaction, accessibility, and ATS hardening ( #18163 )
...
Merged via /review-pr -> /prepare-pr -> /merge-pr.
Prepared head SHA: 8a9a05f04e
Co-authored-by: mbelinky <132747814+mbelinky@users.noreply.github.com >
Co-authored-by: mbelinky <132747814+mbelinky@users.noreply.github.com >
Reviewed-by: @mbelinky
2026-02-16 16:00:08 +00:00
Peter Steinberger
3cd786cc2d
refactor(swift): share discovery status text
2026-02-15 20:40:47 +00:00
Peter Steinberger
778959b3dc
refactor(ios): dedupe gateway helpers
2026-02-15 20:38:26 +00:00
Peter Steinberger
054366dea4
fix(security): require explicit trust for first-time TLS pins
2026-02-14 17:55:20 +01:00
Peter Steinberger
d583782ee3
fix(security): harden discovery routing and TLS pins
2026-02-14 17:18:14 +01:00
Mariano Belinky
6aedc54bd7
iOS: alpha node app + setup-code onboarding ( #11756 )
2026-02-08 18:08:13 +01:00
Mariano Belinky
4ab814fd50
Revert "iOS: wire node services and tests"
...
This reverts commit 7b0a0f3dac .
2026-02-02 17:36:49 +00:00
Mariano Belinky
6cd3bc3a46
iOS: improve gateway auto-connect and voice permissions
2026-02-02 16:42:18 +00:00
Mariano Belinky
ff6114599e
iOS: update onboarding and gateway UI
2026-02-02 16:42:18 +00:00
Mariano Belinky
532b9653be
iOS: wire node commands and incremental TTS
2026-02-02 16:42:18 +00:00
Mariano Belinky
1a48bce294
iOS: add PTT once/cancel
2026-02-02 16:42:18 +00:00
Mariano Belinky
9f101d3a9a
iOS: add push-to-talk node commands
2026-02-02 16:42:18 +00:00
Mariano Belinky
a884955cd6
iOS: add write commands for contacts/calendar/reminders
2026-02-02 16:42:18 +00:00
Mariano Belinky
f72ac60b01
iOS: streamline notify timeouts
2026-02-02 16:42:18 +00:00
Mariano Belinky
761188cd1d
iOS: fix node notify and identity
2026-02-02 16:42:18 +00:00
Mariano Belinky
84e115834f
Gateway: fix node invoke receive loop
2026-02-02 16:42:17 +00:00