Peter Steinberger
19ace6830b
feat(macos): add embedded CUA computer provider ( #123635 )
...
* feat(macos): embed CUA computer provider
* fix(macos): clarify embedded CUA trust posture
* fix(macos): contain embedded CUA daemon lifecycle
* fix(macos): reap orphaned CUA daemons
* fix(macos): record the spawned CUA daemon pid so reaping can terminate orphans
* chore(macos): refresh native i18n baseline for the computer control provider picker
* style(macos): satisfy swiftlint on the embedded CUA host and connect params
* refactor(gateway): move optional connect params to GatewayConnectOptions
2026-08-14 10:24:08 -07:00
Peter Steinberger
a8f8fd3256
fix(macos): prevent shared state in parallel test suites ( #120912 )
...
* fix(macos): isolate parallel test state
* chore(i18n): refresh native source inventory
2026-08-08 23:03:20 -07:00
Vincent Koc
de67565cda
fix(macos): back off failed Gateway connects ( #116114 )
...
* fix(macos): back off failed gateway connects
* fix(macos): skip backoff for transport cancellation
2026-07-30 07:23:22 +08:00
Peter Steinberger
5057fd9e59
fix: keep native question cards out of the public API ( #110534 )
...
* feat(ask-user): follow-up harness slice
* feat(ask-user): follow-up channels slice
* feat(ask-user): follow-up native slice
* feat(ui): dock question panel above composer with stepper and compact stream summaries
* docs: refresh follow-up integration maps
* test(ui): align terminal summary proof
* fix(infra): echo declared option answers in terminal status when free-text is allowed
* fix(infra): keep reaction answering when display labels are formatter-adjusted
* fix(agents): settle plain-text claims only after question registration commits
* fix(agents,apps): commit-ordered claim persistence, claim-aware prompt delivery, non-blocking question refresh
* fix(harness,infra): reaction-appropriate question copy, caller presentations honored
* fix(native,infra,agents): local-expiry eviction, value-addressed reactions, reserve-before-request
* fix(infra,android): dual-mode question resolver for compact callbacks; reset terminal retention on replayed pending
* fix(harness,discord): claim-aware prompt delivery in run helper; escape finalization labels
* fix(macos): merge transient-content visibility with question cards after main sync
* fix: repair ask user follow-up CI
* test: update limited bootstrap scope expectation
* fix: retain shared question card API
* chore: refresh native i18n inventory
* fix: narrow shared question card visibility
* test: update macOS question scope expectations
2026-07-18 10:27:32 +01:00
Peter Steinberger
0e520d68e7
fix(ci): stabilize runtime test retries
2026-07-13 11:41:15 +01:00
Peter Steinberger
d287c9b414
refactor(mac): make app node a CLI capability superset ( #105642 )
...
* refactor(mac): reuse CLI node-host runtime
* fix(mac): prefer checkout CLI in debug builds
* chore: leave release notes to release automation
* chore(mac): sync native string inventory
* chore(mac): refresh native locale artifacts
* fix(node): satisfy native and deadcode gates
2026-07-12 13:16:07 -07:00
Peter Steinberger
952733d6fa
test(macos): isolate gateway device stores ( #105048 )
2026-07-12 08:42:20 +01:00
NianJiu
04c090fb50
fix(ios): return promptly from noncooperative timeouts ( #103066 )
...
* fix(ios): return promptly from noncooperative timeouts
* fix(apple): harden async timeout cancellation
Co-authored-by: NianJiuZst <180004567+NianJiuZst@users.noreply.github.com >
* fix(apple): preserve legacy location requests
* style(apple): format location continuation code
---------
Co-authored-by: NianJiuZst <180004567+NianJiuZst@users.noreply.github.com >
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-10 00:29:03 +01:00
Peter Steinberger
7853aa35a4
feat(ios): per-gateway custom headers for gateways behind authenticating proxies ( #100768 )
...
* feat(ios): support per-gateway custom headers for proxied gateway connections
Per-gateway custom request headers (Cloudflare Access-style service tokens)
for gateways behind authenticating reverse proxies. Headers are credentials:
Keychain-stored per gateway stableID, masked in settings UI, injected on the
WebSocket upgrade at connect time via a provider so edits apply on the next
reconnect without re-pairing. Reserved handshake headers and control chars
are sanitized out. TLS pinning and pairing flows unchanged. Push relay and
other non-gateway destinations proven header-free by regression test.
Related: #100698
* chore(ios): sync native i18n inventory for custom header strings
* fix(ios): harden gateway custom headers
* chore(ios): resync native i18n inventory
* fix(ios): validate custom header names
2026-07-06 17:17:07 +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
af420dbee5
fix(macos): remote mode fails with managed SSH aliases ( #99661 )
...
* fix(macos): support managed SSH aliases safely
* test(macos): serialize gateway state isolation
2026-07-03 15:19:01 -07:00
Val Alexander
51b73b39a8
fix(auth): align operator bootstrap scopes
...
Preserve full shared-token operator sessions while reusing bootstrap/cached device-token scopes for handoff reconnects.
Surface device-token scope mismatches as AUTH_SCOPE_MISMATCH and stop reconnect retry loops without clearing valid stored tokens.
Fixes #79292 .
Supersedes #79314 , #79296 , #79295 .
2026-05-11 14:14:33 -05:00
Peter Steinberger
3f815fad12
fix(gateway): widen native protocol compatibility
2026-05-11 01:38:23 +01:00
Nimrod Gutman
eecd758e39
fix(macos): repair stale gateway tls pins ( #75038 )
...
Merged via squash.
Prepared head SHA: 35196f8f71
Co-authored-by: ngutman <1540134+ngutman@users.noreply.github.com >
Co-authored-by: ngutman <1540134+ngutman@users.noreply.github.com >
Reviewed-by: @ngutman
2026-04-30 14:14:03 +03:00
Nimrod Gutman
144c1b802b
macOS/onboarding: prompt for remote gateway auth tokens ( #43100 )
...
Merged via squash.
Prepared head SHA: 00e2ad847b
Co-authored-by: ngutman <1540134+ngutman@users.noreply.github.com >
Co-authored-by: ngutman <1540134+ngutman@users.noreply.github.com >
Reviewed-by: @ngutman
2026-03-11 13:53:19 +02:00
Peter Steinberger
53fb317e7f
fix(macos): clean swiftformat pass and sendable warning
2026-03-08 13:22:46 +00:00
Peter Steinberger
fd7774a79e
refactor(tests): dedupe swift gateway and chat fixtures
2026-03-02 09:39:45 +00:00
Peter Steinberger
7b3f506e64
style(swift): apply swiftformat and swiftlint fixes
2026-03-02 04:15:43 +00:00
Peter Steinberger
1bc5c2a7e9
refactor: unify exec shell parser parity and gateway websocket test helpers
2026-02-21 23:17:12 +01:00
Peter Steinberger
90a378ca3a
fix(macos): block quoted shell substitution in allowlist checks
2026-02-21 22:57:53 +01:00
Peter Steinberger
9a7160786a
refactor: rename to openclaw
2026-01-30 03:16:21 +01:00