Peter Steinberger
251f54baec
fix(apps): remove dead native code
2026-07-12 02:41:17 -07:00
Peter Steinberger
a8b104c4e3
feat(mac): swap dashboard titlebar buttons with sidebar state ( #105175 )
...
* feat(mac): swap dashboard titlebar buttons with sidebar state
The Control UI reports sidebar collapsed/width over a new openclawNav
WKScriptMessage; the titlebar accessory shows toggle+back/forward
right-aligned to the sidebar edge while expanded, and
toggle+search+new-session while collapsed. Search opens the command
palette and + opens the new-session surface via openclaw:native-*
events. Older gateway bundles that never report keep the shipped
toggle/back/forward layout.
Refs #105129
* docs: describe state-dependent mac titlebar buttons
2026-07-12 10:13:36 +01:00
Peter Steinberger
55254c3a0b
feat(nodes): route alerts to the active computer ( #105083 )
...
* feat(nodes): route alerts by active computer
* fix(ci): allowlist node presence mobile coverage
* test(prompts): refresh node presence snapshots
* fix(macos): await presence reporter actor hop
* fix(macos): type presence test delivery state
* docs(nodes): add active presence guide
* docs(nodes): format presence troubleshooting
2026-07-12 10:05:50 +01:00
Peter Steinberger
6038480915
feat(ui): browse Gateway and node folders from one root ( #105114 )
...
* feat(ui): browse Gateway and node folders
* chore: keep changelog release-owned
* chore: refresh native i18n inventory
* refactor(macos): isolate node filesystem commands
2026-07-12 09:07:07 +01:00
Peter Steinberger
da4a480089
chore(apps): remove more dead code
2026-07-12 00:58:32 -07:00
Peter Steinberger
952733d6fa
test(macos): isolate gateway device stores ( #105048 )
2026-07-12 08:42:20 +01:00
Peter Steinberger
bf13c3bb1b
chore(apps): remove dead native code
2026-07-11 23:51:21 -07:00
Peter Steinberger
a40e43e46e
feat(mac): redesign the menu bar critter to match the mascot ( #104846 )
...
* feat(mac): redesign menu bar critter to match the mascot
* fix(mac): draw happy-eye arcs upward and guard stale celebration expiry
* docs(mac): update menu bar icon states for critter redesign
* fix(mac): own celebration expiry with a start-only generation counter
* fix(mac): give voice-wake antennae real headroom at 18pt
2026-07-12 06:35:02 +01:00
Peter Steinberger
4b6bbd52e6
fix(mac): prevent onboarding installer output hang ( #104827 )
2026-07-11 18:05:06 -07:00
xingzhou
57c2d65ad5
fix(apps): reconcile slow Apple chat replies ( #97722 )
...
* fix(apps): reconcile slow chat replies
Co-authored-by: zhang-guiping <zhang.guiping@xydigit.com >
* style(apps): wrap wait diagnostic
* chore(apps): refresh native i18n inventory
* chore: leave changelog release-owned
* style(apps): normalize Swift modifiers
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-11 17:01:40 -07:00
Peter Steinberger
847460600f
feat(macos): redesign device-code sign-in ( #104766 )
...
* feat(macos): redesign device-code sign-in
* chore(i18n): refresh native string inventory
* fix(macos): localize device-code completion action
* fix(auth): preserve device-code fallback copy
* fix(xai): report browser launch accurately
2026-07-11 16:43:21 -07:00
Peter Steinberger
c60b1b25bf
fix(macos): make onboarding default action keyboard-accessible ( #104705 )
2026-07-11 14:20:36 -07:00
Peter Steinberger
da257661f3
fix(ui): hide web sidebar toggles when the macOS titlebar hosts the toggle ( #104694 )
2026-07-11 13:46:15 -07:00
Peter Steinberger
8fe6ac7fb9
refactor: remove pre-2026.4 compatibility shims and legacy migrations ( #104650 )
...
* refactor(matrix): retire pre-2026.4 legacy crypto and flat-storage migrations
* refactor(cli): drop pre-tsdown daemon-cli dist compat shim from the build
* refactor(diffs): remove deprecated image*/format tool params and output aliases
* refactor(ui): drop pre-gateway-scoped localStorage readers and legacy theme map
* refactor: remove assorted pre-2026.4 compat shims and deprecated aliases
* fix(discord): map legacy thread-binding fields in the doctor JSON import
* fix(msteams): keep bot read fallback for legacy imported conversation rows
* test(msteams): cover legacy bot-only imported conversation references
* fix(ui): keep channel-prefixed session key display fallback
* chore: refresh native i18n inventory and build-docker step count
* chore(matrix): drop now-unused migration-config module
* chore: re-pin plugin SDK public export budget after compat removals
* chore: refresh native i18n inventory after rebase
* chore: re-pin plugin SDK callable budget and refresh i18n inventory after rebase
2026-07-11 13:22:27 -07:00
Peter Steinberger
8310c565e0
feat(onboarding): add provider sign-in ( #104502 )
...
* feat(onboarding): add provider sign-in flows
* fix(oauth): keep callback compatibility
* fix(onboarding): reconcile lost auth outcomes
* fix(onboarding): lock auth cancellation at commit
* fix(onboarding): close provider auth lifecycle gaps
* fix(onboarding): make terminal auth failures dismissable
* fix(onboarding): satisfy native app checks
* fix(onboarding): reconcile absent auth sessions
* fix(onboarding): bound provider auth sessions
* fix(onboarding): open provider auth links safely
* test(onboarding): use scanner-safe auth fixtures
* revert: keep established onboarding auth fixtures
* fix(onboarding): close provider auth cancellation gaps
* fix(gateway): retain uncollected wizard results
* fix(onboarding): bind provider reconciliation attempt
* fix(i18n): avoid guessing moved string identities
* style(onboarding): normalize remote auth choices efficiently
* fix(protocol): refresh optional provider auth choices
* test(gateway): cover provider auth dispatch order
* refactor(macos): split onboarding setup support
* fix(macos): refresh merged native checks
2026-07-11 13:00: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
60c6960168
fix(macos): add breathing room between dashboard titlebar buttons ( #104572 )
2026-07-11 10:12:14 -07:00
Peter Steinberger
c3b426f280
feat: add Claude session fleet ( #104528 )
...
* feat: add Claude session fleet
* chore: leave release notes to release automation
* chore: refresh generated catalogs
* fix: satisfy session catalog lint gates
2026-07-11 08:22:59 -07:00
Peter Steinberger
fa77fe10d5
chore: migrate active GPT-5.5 references to GPT-5.6 ( #104452 )
...
* chore(models): migrate active GPT-5.5 references
* test(workboard): expect GPT-5.6 Sol default
* chore: keep release notes in PR body
* test(models): align picker fixtures with Sol default
* test: update PDF default model expectation
* test(qa): migrate thinking smoke to Luna
* test(gateway): align mock catalog with Sol default
* ci: retrigger exact-head PR checks
* test(gateway): document default catalog invariant
2026-07-11 06:30:57 -07:00
Peter Steinberger
05aecc1d6f
feat: show Codex transcripts in the sidebar ( #104437 )
...
* feat: show Codex transcripts in sidebar
* fix: clear Codex sidebar on Gateway switch
* chore: leave release notes to release workflow
* chore: refresh native i18n inventory
* fix: satisfy macOS Codex node lint
* fix: refresh native localization inventory
* docs: refresh documentation map
* chore: refresh UI locale metadata
2026-07-11 05:39:29 -07:00
Peter Steinberger
1d84acf2c3
test(macos): remove Swift warning and timing flake ( #104434 )
2026-07-11 04:30:35 -07:00
Peter Steinberger
b4a9a4c3d4
fix(mac): silence lock result warning ( #104408 )
2026-07-11 03:53:28 -07:00
Peter Steinberger
7ec0d4abb8
chore: update Peekaboo to 3.9.0 ( #104398 )
...
* build(macos): update Peekaboo to 3.9.0
* chore: keep release notes in PR body
* fix(macos): trust current Peekaboo release signers
2026-07-11 03:44:13 -07:00
Peter Steinberger
df16372af3
fix(macos): host the dashboard sidebar toggle beside back/forward in the titlebar ( #104380 )
...
* fix(macos): host the dashboard sidebar toggle beside back/forward in the titlebar
The Control UI's floating sidebar-expand button rendered as a bordered web
control crowding the traffic lights in the dashboard window. The toggle now
lives as a native borderless button in the leading titlebar accessory ahead
of back/forward (Safari ordering) and bridges to the web UI via the
openclaw:native-toggle-sidebar event; the injected chrome script advertises
the capability with an openclaw-native-nav class so the web control retires
itself visually while staying keyboard/screen-reader reachable.
* docs: note the macOS app's native titlebar sidebar toggle in the Control UI guide
2026-07-11 03:19:33 -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
0ef9a62eaf
fix(codex): allow slower Mac session catalogs ( #104332 )
2026-07-11 02:05:55 -07:00
Peter Steinberger
7c9cb54f09
fix: Codex CLI login fails during fresh Mac setup ( #104150 )
...
* fix(onboarding): preload Codex runtime for setup probe
* fix(onboarding): refresh Codex runtime discovery
* fix(onboarding): use native Codex CLI auth
* fix(onboarding): probe bundled Codex login
* chore(macos): refresh onboarding i18n inventory
* fix(onboarding): live-test custom Codex providers
2026-07-11 01:53:49 -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
e0e67abfa9
fix: cancel expired macOS node approvals ( #104302 )
...
* fix: cancel expired macOS node approvals
* chore: keep node approval fix out of release notes
2026-07-11 01:25:36 -07:00
Peter Steinberger
20fe3f46db
fix: paired Mac Codex sessions finish loading ( #104299 )
...
* fix(codex): allow cold Mac session catalogs
* chore: keep release notes in PR body
2026-07-11 01:14:36 -07:00
Peter Steinberger
f9ebefba29
feat(macos): onboarding mascot reacts with moods, randomized idle behavior, and Easter eggs ( #104255 )
...
* feat(macos): mascot moods, randomized idle behavior, and onboarding Easter eggs
* feat(apps): opt About window and iOS hero marks into mascot Easter eggs
* chore(i18n): sync native app i18n inventory
2026-07-11 01:01: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
Peter Steinberger
f94a7dc183
feat(codex): supervise native Codex sessions ( #104045 )
...
* feat(codex): add native session supervision
* fix(codex): harden supervision integration
* fix(codex): preserve locked harness ownership
* fix(codex): fence native session archive
* fix(codex): revalidate archive binding ownership
* feat(codex): integrate supervision runtime
* feat(sessions): preserve harness-owned execution
* feat(sessions): persist harness ownership invariants
* feat(gateway): enforce harness-owned sessions
* feat(setup): enable detected Codex supervision
* feat(mac): expose supervised Codex sessions
* feat(ui): make Codex sessions actionable
* docs(codex): document session supervision
* test(codex): cover integration ownership
* chore(i18n): refresh supervision inventories
* fix(setup): finalize Codex activation atomically
* test(codex): narrow binding store update
* fix(sessions): preserve legacy model locks
* test(macos): serialize Codex catalog fixtures
* fix(sessions): preserve legacy lock admission
* chore(i18n): reconcile supervision metadata
* test(sessions): mark legacy lock fixture
* fix(macos): drain final Codex catalog frame
* docs: leave supervision note to release
* style(macos): satisfy Codex catalog type length
* chore: record session accessor seam owners
* fix(macos): honor configured Codex supervision
* fix(codex): preserve harness-owned model locks
* fix(codex): satisfy supervision lint gates
* chore(i18n): refresh native supervision inventory
* fix(codex): align supervision validation contracts
* fix(codex): close supervision boundary gaps
* fix(codex): preserve supervision activation contracts
* fix(codex): dispose standalone supervision runtime
* fix(codex): pin supervised source connection
* fix(plugins): bind delegated runs to exact session target
* fix(codex): scope supervised sessions to configured agents
* fix(codex): fingerprint effective supervision home
* fix(codex): normalize supervision plugin policy
* fix(codex): keep supervised bindings stable across upgrades
* fix(codex): guard all supervised binding connections
* fix(codex): preserve catalog filters and pending CAS identity
* fix(codex): preserve supervision identity for diagnostics
* fix(codex): bind uncertain commits to supervision connection
* fix(codex): satisfy supervision type boundaries
* fix(macos): reconcile current main validation
* fix(codex): handle absent runtime config in supervision
* fix(doctor): own local audio acceleration check
* fix(codex): satisfy integration lint gates
* fix(codex): satisfy lifecycle safety guards
2026-07-11 00:12:08 -07:00
Peter Steinberger
5228183ce2
fix(ci): register local-audio-acceleration doctor contribution and wrap overlong MLX log line ( #104233 )
...
* fix(ci): register local-audio-acceleration doctor contribution and wrap overlong MLX log line
* fix(ci): keep MLX log line under 120 cols and resync native i18n inventory
* chore: nudge PR head sync
* fix(mac): use throwing safe read in MLX transport readability handler
2026-07-11 00:04:50 -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
4b3d4020d3
fix(macos): offer CLI channels for unreleased builds ( #104178 )
...
* fix(macos): choose CLI channel for dev builds
* chore: leave release notes to automation
* chore(macos): sync native string inventory
* style(macos): wrap CLI channel guidance
* fix(macos): return CLI version policy
2026-07-10 22:27:57 -07: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
dba64d574f
chore(release): set version to 2026.7.2
2026-07-11 04:00:49 +01:00
Peter Steinberger
b7156ce688
fix(macos): drag the window from split-view pane headers ( #104048 )
...
* fix(macos): drag the window from split-view pane headers
In the macOS app, split-screen pane header rows (session title strip) now
start a native window drag instead of selecting the title text. The Control
UI posts an openclawWindowDrag script message on mousedown over passive
header chrome; the dashboard window validates the trusted main-frame source
and the in-flight left-mouse press before calling NSWindow.performDrag.
Pane headers are chrome, so they are also no longer text-selectable.
* refactor(macos): move the dashboard failure page out of the window controller
SwiftLint type_body_length: the drag-message handler pushed
DashboardWindowController past 800 lines; the failure-page HTML is
presentation-only and now lives in DashboardFailurePage.
2026-07-10 19:07:04 -07:00
Peter Steinberger
b29fe954f1
fix(macos): start existing CLI gateway during onboarding ( #104051 )
...
* fix(macos): start detected CLI gateway during onboarding
* chore(macos): refresh native i18n inventory
2026-07-10 19:02:51 -07:00
Peter Steinberger
425c5b9f26
fix(macos): reject revoked forwarded exec approvals ( #103968 )
...
* fix(macos): reject revoked forwarded exec approvals
* fix(macos): split approval plan validation
* chore(i18n): refresh native source lines
2026-07-10 19:01:17 -07:00
Peter Steinberger
df067770d7
fix(mac): deflake exec-approvals socket guard test and create state dir with 0700 directly ( #104028 )
2026-07-10 18:07:35 -07:00
Peter Steinberger
249e6efe63
feat(mac): add bulk Approve All / Reject All to the pairing approval panel ( #104011 )
...
* feat(mac): add bulk Approve All / Reject All to the pairing approval panel
* fix(mac): resolve bulk pairing decisions against the rendered snapshot
2026-07-11 01:44:34 +01:00
Peter Steinberger
0120cacf9e
fix(macos): let onboarding use taller windows ( #104004 )
...
* fix(macos): make onboarding resize vertically
* chore(macos): refresh onboarding i18n inventory
* chore: leave changelog to release generation
2026-07-11 01:39:49 +01:00
Peter Steinberger
3ec2a50d6c
fix(exec): prevent revoked policy from authorizing delayed node runs ( #103950 )
...
* fix(cli): fail closed on exec policy rollback races
* refactor(cli): reuse canonical exec policy ordering
* fix(exec): bind delayed approvals to prepared policy
* fix(macos): revalidate delayed exec approvals
* fix(exec): align approval snapshot validation gates
2026-07-11 01:37:37 +01:00
Peter Steinberger
98902c790f
fix(macos): preserve launchd gateway during port sweep ( #103972 )
2026-07-10 23:46:30 +01:00
Peter Steinberger
a0354e5243
fix(onboarding): make fresh AI setup reliable and transparent ( #103962 )
...
* fix(onboarding): harden inference setup
* fix(mac): preserve setup request cancellation
* test(crestodian): align setup audit expectation
* test(crestodian): cover approval persistence warning
* fix(crestodian): preserve setup credentials and success
* chore(pr): leave changelog to release flow
* fix(onboarding): repair native CI gates
2026-07-10 23:44:53 +01:00
Peter Steinberger
d92d5774f5
fix(node): report Mac exec policy defaults ( #103945 )
2026-07-10 22:07:44 +01:00