Commit Graph

2196 Commits

Author SHA1 Message Date
Patrick Erichsen 355c107c09 fix(macos): unblock first-launch gateway setup (#119831)
* fix(macos): stop writing retired config metadata

* fix(macos): guard packaged CLI bootstrap versions

* chore(macos): refresh native i18n inventory

* fix(macos): repair retired metadata before gateway start
2026-08-05 22:25:17 -07:00
Vincent Koc 8a68252113 fix(macos): keep setup activation within app checks 2026-08-04 11:20:42 +08:00
Vincent Koc c489a2ddab fix(setup): complete prepared model activation 2026-08-04 11:08:21 +08:00
Patrick Erichsen 00b459a172 fix(macos): restore dashboard frame double-click zoom (#118976) 2026-08-03 15:14:46 -07:00
openclaw-mantis[bot] 7f9994d4f9 chore(i18n): refresh native locales (#118883)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-08-04 05:07:27 +08:00
Peter Steinberger 7ae6a950f6 fix(macos): preserve native command ownership and consent (#118914) 2026-08-03 12:50:11 -07:00
Peter Steinberger 94410b00d0 fix(macos): show gateway auth failures in app status (#118841)
* fix(macos): surface live gateway connection state

* chore(i18n): defer generated locale refresh

* fix(macos): preserve sleeping gateway badge state
2026-08-03 11:52:24 -07:00
Peter Steinberger 0c9cc40c02 refactor(macos): consolidate endpoint publication (#118463) 2026-08-02 22:20:40 -07:00
Vincent Koc a842f482d5 fix(ios): keep attachments in composer when route is unavailable (#116787)
* fix(ios): retain attachments when delivery route is unavailable

Refs #116724

* chore(i18n): refresh native source inventory
2026-08-03 12:53:48 +08:00
Peter Steinberger c33e9ba05b refactor(macos): consolidate gateway lifecycle state (#118412) 2026-08-02 20:47:50 -07:00
openclaw-mantis[bot] 4f9af40078 chore(i18n): refresh native locales (#118356)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
2026-08-03 10:32:19 +08:00
Peter Steinberger b8a6ea12cc refactor(macos): remove the custom menu bar hover card (#118116)
* refactor(macos): remove the custom menu bar hover card

The status item showed two hover affordances at once: the native AppKit
tooltip and a custom SwiftUI panel rendering an "Idle / No recent activity"
card. Keep the native tooltip and drop the custom HUD.

The HUD was the only consumer of the status item's hover tracking, so the
NSTrackingArea and onHoverChanged plumbing in StatusItemMouseRouter goes
with it; click routing is unchanged. WorkActivityStore.lastToolLabel had no
other reader either.

* chore(i18n): refresh native i18n inventory after hover card removal

Deleting HoverHUD.swift shifted the MenuBar.swift line numbers that
apps/.i18n/native-source.json records. Regenerated with
`pnpm native:i18n:baseline`; only line numbers change, no strings added
or removed.

* refactor(macos): drop the orphaned anchored chat panel

Removing the hover card left WebChatManager.togglePanel() without a caller,
and it was the only thing that created the menu-bar-anchored chat popover.
Delete that presentation path: togglePanel/panelHidden, the panel controller
state, WebChatPresentation, WebChatPanel, presentAnchored and its dismiss
monitor, and WindowPlacement.anchoredBelowFrame.

Chat is unaffected as a window - WebChatManager.show() still backs the Dock
menu, --chat and deep links. The status item highlight that tracked chat
window visibility is preserved, renamed to onChatWindowVisibilityChanged
now that no panel exists to confuse it with.

Periphery reports no unused code.

* chore: drop CHANGELOG edit from this PR

AGENTS.md: CHANGELOG.md is release-only and release generation derives it
from merged PRs. Release-note context lives in the PR body instead.

* chore: restore CHANGELOG to the branch base

Correct the previous commit, which restored CHANGELOG.md from current
origin/main and so pulled in an unrelated entry added after this branch
forked. Reset to the merge-base content: this PR now touches no changelog.
2026-08-02 13:10:27 -07:00
Peter Steinberger 0335317679 fix(macos): preserve external remote gateway config edits (#118046)
* fix(macos): reconcile external gateway config edits

* refactor(macos): split gateway reconciliation helpers

* chore(macos): refresh native i18n inventory

* refactor(macos): remove obsolete gateway config helper

* test(macos): seed watcher fixtures as canonical

* fix(macos): add gateway config conflict recovery
2026-08-02 11:21:07 -07:00
Peter Steinberger ad53d4419e fix: make gateway token recovery usable from macOS onboarding (#118051)
* fix(gateway): add safe token recovery

Co-authored-by: 宇宙熊Yzx <53250620+849261680@users.noreply.github.com>

* chore: move gateway release note to PR

* test(cli): classify gateway token output

---------

Co-authored-by: 宇宙熊Yzx <53250620+849261680@users.noreply.github.com>
2026-08-02 10:06:50 -07:00
Peter Steinberger 19aad4ac2a fix(macos): cron editor drops advanced delivery routes (#118047)
* fix(macos): preserve advanced cron delivery routing

* fix(macos): mark cron routing labels verbatim

* fix(macos): keep cron routing inventory stable
2026-08-02 10:04:58 -07:00
openclaw-mantis[bot] c1e31f1784 chore(i18n): refresh native locales (#117948)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-08-02 23:03:59 +08:00
Peter Steinberger 2472782622 fix(macos): gate remote onboarding on gateway auth (#117904)
* fix(macos): gate remote onboarding on gateway auth

* fix(macos): address onboarding CI failures

* test(macos): stabilize gateway auth routing coverage

* fix(macos): bound remote gateway onboarding probe

* fix(macos): satisfy remote probe CI guards

* fix(macos): scope remote probe cleanup ownership

* refactor(macos): remove unused health snapshot wrapper
2026-08-02 04:14:54 -07:00
Peter Steinberger 76cb418b6f fix(macos): reopen AI choice, fix daemon error text, hand onboarding off to the dashboard custodian (#117921)
* fix(macos): let onboarding replace an auto-connected AI

The AI page auto-tests the best detected candidate and connects without
asking, then hides every alternative route. Add 'Choose a different AI'
to the connected banner: a re-detect pass with auto-activation
suppressed that ends at the picker (candidates, provider sign-in, API
keys). Also disable the manual key Connect button while another test
runs (submitManualKey silently dropped the tap), and isolate a test
that read the machine's real resume store.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* fix(macos): surface real daemon errors past the Node banner

Gateway daemon failures summarized as 'Node.js v26.5.1' because the
summary takes the last non-empty line and Node fatal errors end with a
version banner. Drop trailing banner lines and prefer the last
error-shaped line above them; all other output keeps its last line.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* feat(macos): hand onboarding off to the dashboard custodian

Native onboarding now ends once inference verifies: welcome, connection,
install (when needed), AI setup. Finish opens the dashboard at
/custodian?onboarding=1, where the custodian onboarding owns memory
import, channels, app recommendations, and the hatch (browser-first per
the onboarding redesign). The native memory-import and permissions
pages leave the first-run flow; 'Set up later' keeps the native ready
page. The native navigation bridge gains a validated optional search
field so the handoff can request onboarding chrome; the URL fallback
carries the query alongside the token fragment.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* refactor(macos): delete the unreachable native memory-import module

The dashboard handoff removed the memory-import page from every flow,
leaving the module reachable only from tests. CI's dead-code scan
rightly flagged the first orphans; remove the whole path (model, page,
mascot wiring, tests) instead of trimming symbol by symbol. The
dashboard's own memory-import surface owns the feature.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

---------

Co-authored-by: Peter Steinberger <steipete@mac-studio-sf2.local>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-08-02 02:57:25 -07:00
Peter Steinberger 78193deff3 fix(macos): avoid self-named defaults suite (#117690)
* fix(macos): avoid self-named defaults suite

* chore: keep changelog release-owned
2026-08-01 18:57:42 -07:00
Peter Steinberger aae474ab97 fix(macos): stop dashboard windows flashing during reconnects (#117112)
* fix(macos): stop dashboard windows flashing during reconnects

* fix(macos): refresh native localization inventory
2026-07-31 16:56:35 -07:00
Vincent Koc 66e1a4ad77 fix(macos): preserve localized setup fallback 2026-08-01 01:07:54 +08:00
Vincent Koc 0e24d596c0 improve(setup): clarify local provider actions 2026-08-01 00:26:40 +08:00
openclaw-mantis[bot] fe408e109f chore(i18n): refresh native locales (#116640)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-07-31 18:04:29 +08:00
Vincent Koc 20e68e01df fix(gateway): sign device proofs with challenge time (#116679) 2026-07-31 16:45:53 +08:00
Vincent Koc b2cba4073c improve(macos): reuse the Codex App Server client (#116325)
* perf(macos): reuse Codex app server client

* refactor(macos): split Codex app server client

* fix(macos): enforce Codex frame limits per message

* refactor(macos): remove obsolete Codex wrappers

* test(macos): lock Codex wall-clock deadlines
2026-07-31 10:40:54 +08:00
Vincent Koc 776f564081 improve(macos): reuse Claude session discovery across pages (#116324)
* perf(macos): reuse Claude session discovery

* fix(macos): scope Claude discovery reuse to pagination

* fix(macos): keep Claude cursors restart-safe
2026-07-31 10:40:10 +08:00
Vincent Koc cfb9d2ec76 improve(macos): reuse Gateway search path discovery (#116323)
* perf(macos): reuse gateway search path snapshot

* chore(i18n): refresh native source inventory
2026-07-31 10:37:38 +08:00
Vincent Koc 94b85cba5f feat(setup): improve local model onboarding 2026-07-31 08:53:13 +08:00
Vincent Koc d028a73639 style(macos): align scheduled task helpers 2026-07-31 03:53:42 +08:00
Vincent Koc 6876ae752a fix(macos): recheck scheduled task cancellation 2026-07-31 03:53:42 +08:00
Vincent Koc 6c8363f7b9 fix(macos): cancel stale store refresh work 2026-07-31 03:53:42 +08:00
Vincent Koc 50a3c4df8a fix(macos): stop periodic work on cancellation 2026-07-31 03:53:42 +08:00
Vincent Koc b907309b35 perf(macos): reuse Tailscale discovery session (#116465)
* fix(macos): reuse tailscale discovery session

* test(macos): stabilize voice ears expiry assertion
2026-07-31 02:51:23 +08:00
Vincent Koc 668721bcfc fix(macos): coalesce tailscale status checks (#116321) 2026-07-31 00:19:51 +08:00
Vincent Koc 9e8cc6fe8a fix(macos): avoid identity reads during menu rendering (#116435)
* fix(macos): avoid identity reads during menu rendering

* chore(i18n): refresh native source inventory
2026-07-30 23:56:19 +08:00
Vincent Koc 6959a3e390 fix(macos): avoid repeated endpoint source reads (#116421) 2026-07-30 23:19:06 +08:00
Vincent Koc 1daea4c898 fix(macos): preserve replacement notification overlays (#116226) 2026-07-30 15:27:40 +08:00
openclaw-mantis[bot] 81d165c612 chore(i18n): refresh native locales (#116213)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-07-30 15:17:38 +08:00
Vincent Koc cb75290edb fix(macos): serialize voice wake trigger sync (#116202) 2026-07-30 12:01:26 +08:00
Vincent Koc fa0bced544 fix(macos): preserve voice ear boost expiry (#116196) 2026-07-30 11:19:25 +08:00
Vincent Koc 86d300a3cb fix(macos): stop canceled voice wake timers (#116189) 2026-07-30 10:55:34 +08:00
Vincent Koc 859280ee11 fix(macos): coalesce location permission requests (#116183) 2026-07-30 10:41:51 +08:00
Vincent Koc 5128df0cdd fix(macos): guard remote tunnel restart ownership (#116172) 2026-07-30 10:29:33 +08:00
Vincent Koc 514ab48d17 fix(macos): back off approval socket retries (#116125) 2026-07-30 07:52:01 +08:00
Vincent Koc 246d878580 fix(macos): pause inactive canvas polling (#116106) 2026-07-30 06:32:46 +08:00
Vincent Koc ee7b23dfe6 fix(macos): reduce permission polling allocation churn (#116092)
* fix(macos): reuse location manager for permission polling

* chore: remove release-owned changelog note

* test(macos): avoid volatile location status comparison
2026-07-30 06:10:25 +08:00
Vincent Koc fc3f114a93 fix(macos): recover dashboard after gateway auth reconnect (#116080) 2026-07-30 05:22:38 +08:00
Vincent Koc 861b35ed44 fix(macos): allow dev source installs to finish (#116072) 2026-07-30 04:38:38 +08: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 0021e51f22 feat(apple): media renditions, Now Playing, video upload (#116051)
* feat(apple): complete media playback and uploads

* fix(apple): preserve movie picker metadata

* fix(apple): harden rendition and picker routing

* style(apple): fix macOS media formatting
2026-07-29 15:50:18 -04:00