Peter Steinberger
2264816f1d
ci(macos): add enforced periphery dead-code lane and delete the 12 current findings ( #105743 )
...
* refactor(macos): delete dead code flagged by periphery
* ci(macos): add enforced periphery dead-code lane
* fix(ci): scope-label the periphery skip message
* chore(i18n): sync native inventory line coordinates
2026-07-12 16:39:15 -07:00
Peter Steinberger
251f54baec
fix(apps): remove dead native code
2026-07-12 02:41:17 -07:00
Peter Steinberger
38edd6969a
feat(macos): relocate transient app launches ( #104661 )
2026-07-11 12:44:00 -07:00
Peter Steinberger
9ad59ae788
improve(macos): replace browser cookie-import modal with an inline dashboard banner ( #104591 )
...
* feat(macos): replace browser cookie-import modal with dashboard banner
* fix(macos): cross-browser menu identity, banner pane ownership, docs map
* chore: refresh native i18n inventory
* fix(macos): stale import status polls no longer clobber fresher banner state
* fix(macos): generation-guard stale import polls; drop dashboard-show poll trigger
* fix(macos): session-sticky dismissal and localized banner copy
2026-07-11 11:11:42 -07:00
Peter Steinberger
96f0983a85
fix(onboarding): skip setup for configured gateways and require inference first ( #102883 )
...
* fix(crestodian): keep onboarding RPCs restart-safe
* fix(profiles): isolate approval state migrations
* fix(crestodian): bypass configured gateway setup
* test(crestodian): type onboarding mocks
* fix(onboarding): require inference before Crestodian
* fix(onboarding): enforce verified inference handoff
* fix(macos): reset setup on gateway endpoint edits
* chore(i18n): refresh native source inventory
* fix(gateway): keep socket on request cancellation
* test(packaging): require workspace templates
* fix(onboarding): bind setup to verified inference
* fix(onboarding): align inference gate contracts
* fix(crestodian): classify concurrent policy rejection
* test(crestodian): expect registry restoration
* fix(onboarding): bind setup to configured gateways
* fix(codex): preserve startup phase deadlines
* test(crestodian): match fail-closed policy ordering
* test(onboarding): assert bound gateway handoff
* fix(codex): bind runtime resolution to spawn cwd
* test(crestodian): assert policy rejection order
* fix(cli): preserve gateway routing across restarts
* fix(macos): fail closed during gateway edits
* test(macos): cover gateway route generation races
* chore: keep release notes out of onboarding PR
* fix(ci): refresh onboarding generated checks
* style(swift): align gateway channel formatting
* fix(ci): refresh plugin SDK surface budgets
* fix(ci): resync native string inventory
* refactor(swift): split gateway channel support
* test(doctor): isolate plugin compatibility registry
* test(macos): isolate gateway onboarding fixtures
* test(macos): assert gateway lease health ordering
* fix(codex): reconcile computer-use startup changes
2026-07-11 10:25:14 -07:00
Peter Steinberger
518c5823d8
feat(macos): navigate dashboard history with Command brackets ( #104328 )
...
* feat(macos): add dashboard history shortcuts
* chore: leave release changelog to release flow
* chore(macos): sync native i18n inventory
* fix(macos): keep titlebar navigation on dashboard
2026-07-11 02:22:28 -07:00
Peter Steinberger
88c563b241
fix: address update-card review findings (channel normalization, hidden-nav affordance, prerelease pinning, policy-aware bridge) ( #104316 )
...
* fix(mac): prerelease-exact launch resolution and policy-aware update ownership
* fix(ui): keep update affordance when nav is hidden and fall back on native decline
* chore(i18n): sync native inventory
2026-07-11 01:44:26 -07:00
Peter Steinberger
ebc848deec
feat: sidebar update card (web + macOS) with app-first mac update flow and Sparkle beta track ( #104171 )
...
* feat: sidebar update card (web + macOS) with app-first mac update flow and Sparkle beta track
Squashed from claude/update-notification-display-c6cfb9 after semantic merge
with #104178 (channel-aware CLI installs). See PR #104171 body for details.
* chore(i18n): resync generated inventories after rebase
* chore(i18n): resync locale metadata after rebase
2026-07-11 00:34:10 -07:00
Vincent Koc
96b1be10f5
feat(macos): keep MLX TTS model resident ( #104200 )
...
* test(macos): cover MLX helper packaging
* feat(macos): define framed MLX TTS protocol
* feat(macos): keep MLX TTS model resident
* feat(macos): reuse MLX TTS helper transport
* fix(macos): preserve MLX TTS fallback lifecycle
* chore(swift): lint MLX TTS protocol sources
* fix(macos): keep MLX helper input nonblocking
* test(macos): cover forced MLX helper shutdown
* fix(macos): fall back after MLX memory eviction
* fix(macos): discard canceled MLX audio
2026-07-11 13:45:27 +08:00
Peter Steinberger
9f53f8a256
feat(macos): import local browser login ( #104177 )
...
* feat(macos): import local browser login
* chore: leave release notes to release workflow
* chore(macos): refresh native i18n inventory
* chore(macos): refresh native i18n inventory
* chore(macos): refresh native i18n inventory
* chore: sync release summary executable bit
* chore(macos): refresh native i18n inventory
* style(macos): wrap browser import result
* chore(macos): refresh native i18n inventory
* chore(macos): refresh native i18n inventory
2026-07-10 22:14:36 -07:00
Peter Steinberger
5a48e73973
fix(macos): duplicate launches open SSH tunnels before handoff ( #103892 )
...
* fix(macos): gate tunnels behind singleton launch
* chore(macos): leave changelog to release workflow
* chore(macos): sync native i18n inventory
2026-07-10 19:54:04 +01:00
Peter Steinberger
461772868d
fix(computer): prevent stale, replayed, and post-cancel desktop actions ( #103422 )
...
* fix(ai): preserve streamed tool-call identity
* fix(computer): bind actions to current tool authority
* fix(macos): serialize computer control lifecycle
* docs(computer): document hardened control contract
* chore: follow release-owned changelog policy
* test(agents): cover node list cancellation
2026-07-10 06:47:56 +01:00
Peter Steinberger
a789b92b39
fix(macos): harden fresh AI onboarding ( #102637 )
...
* fix(macos): bootstrap Codex before onboarding test
* fix(plugins): activate deferred runtimes on demand
* fix(macos): stage Codex runtime for onboarding probe
* fix(macos): expose sanitized onboarding errors
* fix(codex): reuse native CLI auth during onboarding
* fix(macos): hide Crestodian without inference
* fix(codex): honor explicit runtime policy during setup
* fix(onboarding): redact verification errors
* fix(macos): reset onboarding state with gateway route
* fix(onboarding): persist Codex plugin install metadata
* chore: refresh onboarding inventories
* fix(macos): restart AI setup after gateway change
* chore: refresh native onboarding inventory
* fix(onboarding): defer gateway restart until setup persists
* fix(macos): reset Crestodian on gateway changes
* chore(macos): refresh native i18n inventory
* fix(onboarding): harden inference setup state
* docs(skills): reuse pristine Parallels snapshots
* chore(macos): refresh onboarding i18n inventory
* fix(onboarding): prevent stale gateway and install state
* docs(skills): preserve saved Parallels sessions
* fix(macos): balance AI onboarding layout
* fix(parallels): parse npm workspace pack output
* chore(macos): refresh onboarding i18n inventory
* fix(parallels): bundle workspace runtime in package artifact
* fix(parallels): isolate canonical package helper
* fix(parallels): pack self-contained workspace artifact
* fix(packaging): exclude macOS app bundle
* fix(macos): restart inference checks after route changes
* docs(changelog): defer onboarding note to release
* fix(onboarding): enforce inference-first gateway setup
2026-07-10 04:59:15 +01:00
Peter Steinberger
c046fbd451
fix(macos): open dashboard for existing gateways ( #102677 )
...
* fix(macos): skip onboarding for existing gateways
* chore: keep changelog release-owned
* chore(macos): refresh native i18n inventory
2026-07-09 12:17:41 +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
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
Colin Johnson
59d8462b1d
fix(macos): open dashboard when Dock or Finder relaunches app ( #97637 )
...
* fix(macos): open dashboard on Dock reopen
* fix(macos): preserve visible-window Dock reopen
* style(macos): satisfy deep link switch formatting
2026-06-28 20:24:15 -07:00
Vincent Koc
d6111ff72c
refactor(macos): remove orphan helpers and view state
2026-06-23 05:36:36 +08:00
Alexander Falk
e18099b8c3
fix(macos): prevent duplicate menu bar icons
...
Fix macOS menu bar status-item storms during rapid gateway connection churn by removing stale SwiftUI-vended status items before adopting replacements and debouncing transient control-channel states.
Surface: macOS menu bar app, `MenuBarExtra` status item ownership, `ControlChannel` UI-observed connection state.
Proof:
- `git diff --check origin/main...pr/82739`
- `swift test --package-path apps/macos --filter ControlChannelStateDebouncerTests`
- PR CI: preflight, security-fast, macos-node, macos-swift, dependency-guard, changed-path scan, real behavior proof, Socket checks
Co-authored-by: Alexander Falk <al@falk.us >
2026-05-31 16:18:37 +01:00
Peter Steinberger
46a67eea4c
fix: throttle voice wake meter preview
2026-05-29 00:14:05 +01:00
Peter Steinberger
0556958d82
fix: use native mac settings sidebar
2026-05-22 22:53:32 +01:00
Peter Steinberger
bd69510662
feat(macos): add Dock menu shortcuts
2026-05-18 09:16:35 +01:00
Peter Steinberger
bef3356375
fix(macos): keep dashboard failures in window
2026-05-18 00:56:28 +01:00
Peter Steinberger
5b383af736
feat: add native mac dashboard window
2026-05-16 23:49:18 +01:00
Luka Dolenc
25d2e9bdac
fix(macos): keep attach-only from stopping gateway launchd
2026-04-30 04:10:54 +01:00
dependabot[bot]
ba8fb6b2b8
build(deps): bump the swift-deps group across 1 directory with 3 updates ( #60168 )
...
* build(deps): bump the swift-deps group across 1 directory with 3 updates
Bumps the swift-deps group with 3 updates in the /apps/macos directory: [github.com/orchetect/menubarextraaccess](https://github.com/orchetect/MenuBarExtraAccess ), [github.com/apple/swift-log](https://github.com/apple/swift-log ) and [github.com/sparkle-project/sparkle](https://github.com/sparkle-project/Sparkle ).
Updates `github.com/orchetect/menubarextraaccess` from 1.2.2 to 1.3.0
- [Release notes](https://github.com/orchetect/MenuBarExtraAccess/releases )
- [Commits](https://github.com/orchetect/MenuBarExtraAccess/compare/1.2.2...1.3.0 )
Updates `github.com/apple/swift-log` from 1.10.1 to 1.11.0
- [Release notes](https://github.com/apple/swift-log/releases )
- [Commits](https://github.com/apple/swift-log/compare/1.10.1...1.11.0 )
Updates `github.com/sparkle-project/sparkle` from 2.9.0 to 2.9.1
- [Release notes](https://github.com/sparkle-project/Sparkle/releases )
- [Commits](https://github.com/sparkle-project/Sparkle/compare/2.9.0...2.9.1 )
---
updated-dependencies:
- dependency-name: github.com/orchetect/menubarextraaccess
dependency-version: 1.3.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: swift-deps
- dependency-name: github.com/apple/swift-log
dependency-version: 1.11.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: swift-deps
- dependency-name: github.com/sparkle-project/sparkle
dependency-version: 2.9.1
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: swift-deps
...
Signed-off-by: dependabot[bot] <support@github.com >
* fix(macos): restore MenuBarExtraAccess ordering
---------
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Vincent Koc <vincentkoc@ieee.org >
2026-04-21 21:30:14 -07:00
Peter Steinberger
cf67e374c0
refactor(macos): dedupe UI, pairing, and runtime helpers
2026-03-02 11:32:20 +00:00
Peter Steinberger
ce1dbeb986
fix(macos): clean warnings and harden gateway/talk config parsing
2026-02-25 00:27:36 +00:00
Peter Steinberger
8725c2b19f
style(swift): run swiftformat + swiftlint autocorrect
2026-02-15 05:38:35 +01:00
Josh Palmer
69aa3df116
macOS: honor stable Nix defaults suite ( #12205 )
...
* macOS: honor Nix defaults suite; auto launch in Nix mode
Fixes repeated onboarding in Nix deployments by detecting nixMode from the stable defaults suite (ai.openclaw.mac) and bridging key settings into the current defaults domain.
Also enables LaunchAgent autostart by default in Nix mode (escape hatch: openclaw.nixAutoLaunchAtLogin=false).
* macOS: keep Nix mode fix focused
Drop the automatic launch-at-login behavior from the Nix defaults patch; keep this PR scoped to reliable nixMode detection + defaults bridging.
* macOS: simplify nixMode fix
Remove the defaults-bridging helper and rely on a single, stable defaults suite (ai.openclaw.mac) for nixMode detection when running as an app bundle. This keeps the fix focused on onboarding suppression and rename churn resilience.
* macOS: fix nixMode defaults suite churn (#12205 )
2026-02-08 17:28:22 -08:00
Peter Steinberger
9a7160786a
refactor: rename to openclaw
2026-01-30 03:16:21 +01:00