Peter Steinberger
6f917dfabb
test(macos): remove remaining coverage exercisers ( #121413 )
...
* test(macos): remove remaining coverage exercisers
* test(macos): remove dead skills typealias
* test(macos): remove unused skill config constructor
2026-08-10 02:08:34 -07:00
Vincent Koc
b0a091644f
fix(macos): prevent app stalls from stuck subprocess probes ( #115938 )
...
* refactor(macos): pin subprocess groups through cleanup
* refactor(macos): keep bounded process probes async
* test(macos): cover async process probe limits
* fix(macos): preserve local gateway version fallback
* test(macos): cover gateway version probe fallback
* fix(macos): handle subprocesses that exit before monitoring
* test(macos): stress instant bounded process exits
* fix(macos): close bounded process exit registration race
* fix(macos): preserve bounded probe output ordering
* fix(macos): propagate bounded process cancellation
* fix(macos): recover missed subprocess exit events
* chore(macos): refresh native i18n inventory
* fix(macos): reject invalid process argument bytes
2026-07-29 20:12:35 +00:00
Peter Steinberger
98410d986e
refactor(state): move device identity into canonical SQLite state ( #110392 )
...
* refactor: store device identities in SQLite
* style: satisfy Swift identity lint limits
* test: harden device identity migration fixtures
* fix: harden SQLite device identity recovery
* chore: remove stale identity helper
* refactor: isolate device identity repair
* chore: remove stale migration import
* test: validate migrated identity key types
* fix: harden device identity repair
* style: format device identity assertion
* fix: derive repaired identity key from PEM
* style: remove redundant PEM conversions
* fix: align native identity store with schema v4
* fix(state): satisfy SQLite identity CI gates
* fix(state): coordinate native identity migration
* test(doctor): include native identity claim path
* fix(infra): preserve coordinator release error
* fix(state): clear identity validation gates
* refactor(apple): remove identity test-only APIs
* refactor(apple): remove dead identity error type
* test(apple): use canonical identity test seam
* test(macos): isolate gateway readiness identity
2026-07-18 17:43:56 +01:00
Peter Steinberger
50e5ffcd25
feat(mac): native pairing approval dialog with instant decisions ( #106091 )
...
* feat(mac): native pairing approval dialog with instant decisions
* chore(i18n): sync native inventory and locale artifacts
* chore(i18n): regenerate native inventory, locale artifacts, and projections
* chore(i18n): re-sync native inventory ordering
2026-07-13 07:08:14 -07:00
Peter Steinberger
091584b197
chore(swift): restore compact conditional bodies ( #103832 )
...
* style(swift): restore compact conditional bodies
* fix(ios): remove redundant startup timeout await
* chore(swift): sync native i18n inventory
2026-07-10 18:12:00 +01:00
Peter Steinberger
62bd760c0e
chore(swift): enforce current formatting and lint rules ( #103313 )
...
* style: apply SwiftFormat 0.62.1 rules
Refs #103202
* ci: enforce deterministic Swift lint
Refs #103202
* refactor: keep gateway connect lint-clean
Refs #103202
* style: keep iOS typography checks warning-free
* ci: route MLX Swift changes through pre-push
* fix: preserve native i18n extraction after Swift cleanup
* refactor: keep rebased Swift surfaces lint-clean
* style: format latest Swift additions
* chore: refresh native i18n inventory
* style: keep generated Swift formatter-clean
* fix: preserve node route invalidation callbacks
* fix: keep native translation IDs stable
* fix: retain native translation identifiers
* fix: preserve translations across Swift source moves
2026-07-10 11:54:08 +01:00
Peter Steinberger
4cc92009ed
feat(mac): unified Liquid Glass pairing approval panel ( #102601 )
...
* feat(mac): unified Liquid Glass pairing approval panel
Replace the serial node/device pairing NSAlerts with one floating
approval panel. Both prompters feed request cards into a shared
PairingApprovalCenter; each card shows a hardware icon, platform and
model, app/core version, source IP, a copyable short id, request age,
a trust line (first connection / already-paired-id caution / repair
token rotation), and a friendly access summary with an elevated
warning for system.run-class commands. Requests resolved elsewhere
disappear live; Not Now snoozes without resolving (gateway TTL
applies) and the menu-bar pending line reopens the panel. Liquid
Glass surface on macOS 26+, material fallback on macOS 15. Deletes
the NSAlert + invisible-host-window machinery, dead node isRepair
handling, and text-only describe() body.
Closes #102535
* fix(mac): satisfy swiftformat conditionalAssignment and resync native i18n inventory
2026-07-09 10:31:42 +01:00
Peter Steinberger
0a488bd30b
fix: device pairing floods stacked approval alerts for a retrying device and stale approvals no-op ( #100976 )
...
* fix(gateway): stop device pairing approval alert floods from retrying devices
A device retrying with a broken token minted a new pending requestId (and
approval alert broadcast) every 5-minute TTL window because refresh preserved
ts and expiry keyed on ts. Pending requests now stay alive via an internal
refreshedAtMs keepalive (ts still owns ordering/--latest), superseded device
requests broadcast device.pair.resolved like node pairing already did, and the
Mac app keeps one alert per device, closes superseded visible alerts, and
resyncs its queue when approving a stale request.
Closes #100974
* chore: satisfy swiftformat and refresh native i18n inventory for pairing prompter changes
2026-07-06 17:20:06 +01:00
Peter Steinberger
6a7b62889e
feat(macos): install and run the local Gateway automatically ( #99767 )
...
* feat(macos): automate local gateway setup
* fix(macos): auto-approve the local Mac node
* chore(macos): refresh generated setup metadata
* chore(macos): refresh generated setup metadata
* chore(macos): refresh generated setup metadata
* chore(macos): refresh generated setup metadata
* chore(macos): refresh generated setup metadata
2026-07-03 22:09:56 -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
Peter Steinberger
ff8d3dc591
fix: improve mac pairing approval prompt
2026-05-17 01:12:59 +01:00
Devin Robison
114b87caf2
fix(macos): require trusted SSH host keys ( #68199 )
...
* fix(macos): require trusted SSH host keys
* chore(changelog): add macOS SSH strict host-key entry
2026-04-17 11:11:10 -06:00
Peter Steinberger
87316e07d8
refactor(macos): share pairing and ui dedupe utilities
2026-03-02 12:13:45 +00:00
Peter Steinberger
cf67e374c0
refactor(macos): dedupe UI, pairing, and runtime helpers
2026-03-02 11:32:20 +00:00
Brian Mendonca
8942ac04a8
fix(security): fail closed on unauthenticated discovery routing
2026-02-21 23:57:34 +01:00
Peter Steinberger
c8779ef61d
refactor(macos): share pairing alert plumbing
2026-02-15 20:19:55 +00:00
Peter Steinberger
8725c2b19f
style(swift): run swiftformat + swiftlint autocorrect
2026-02-15 05:38:35 +01:00
Peter Steinberger
9a7160786a
refactor: rename to openclaw
2026-01-30 03:16:21 +01:00