Peter Steinberger
bfdfd35e5d
fix(mac): allow slow node worker startup ( #106281 )
...
* fix(mac): allow slow node worker startup
* chore: leave release notes to release flow
2026-07-13 05:00:48 -07:00
Peter Steinberger
88fccc6735
fix(ci): refresh generated Swift protocol
2026-07-13 12:35:26 +01:00
Peter Steinberger
b0ebb81e89
refactor(macos): use swift-log contracts ( #106270 )
2026-07-13 04:18:32 -07:00
openclaw-mantis[bot]
801252c66e
chore(i18n): refresh native locales ( #106260 )
...
* chore(i18n): refresh native locales
* chore(i18n): sync generated app resources
---------
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-13 03:49:36 -07:00
Peter Steinberger
0e520d68e7
fix(ci): stabilize runtime test retries
2026-07-13 11:41:15 +01:00
Peter Steinberger
d7a2ec779a
fix(ci): retain macOS notification test observer
2026-07-13 10:39:25 +01:00
Peter Steinberger
73a0bf4b7c
refactor(apple): share chat gateway payload mapping ( #106154 )
...
* refactor(apple): share chat gateway payload mapping
* test(apple): track shared event mapping
2026-07-13 02:39:01 -07:00
Peter Steinberger
938d41014f
feat(mobile): default pairing to full node access ( #105928 )
...
* feat(mobile): default pairing to full node access
* chore: leave release notes to release workflow
* refactor(mobile): bound pairing helpers
* chore(i18n): refresh mobile access inventory
* chore(ci): lower mobile pairing LOC baseline
* fix(mobile): complete pairing validation artifacts
* ci: remove stale transcript target export baseline
* fix(ios): wrap access upgrade guidance
* fix(ios): preserve localized access key
* fix(ci): dedupe read-only SQLite guardrail
* fix(mobile): secure full-access node setup
2026-07-13 02:30:45 -07:00
Peter Steinberger
16b1bd2032
fix(android): support gateway protocol v3 ( #106205 )
2026-07-13 02:29:16 -07:00
Peter Steinberger
3261667b73
fix(ios): keep reconnect errors visible ( #105875 )
...
* fix(ios): keep reconnect errors visible
* fix(ios): clear stale errors on gateway switch
* chore(ios): keep release notes in PR
* fix(ios): reset status when switching gateways
* fix(ios): retain errors through same-target reconnect
* fix(ios): unpause explicit pairing retries
* fix(ios): isolate retained reconnect errors
* chore(i18n): resync rebased native inventory
* fix(ios): separate reconnect display state
2026-07-13 02:11:26 -07:00
Peter Steinberger
bafabba0df
fix(gateway): preserve Control UI turns across restarts ( #106151 )
...
* fix(gateway): preserve Control UI turns across restart
* perf(sessions): index restart recovery state
* fix(sessions): avoid replaying pre-admitted turns
* fix(sessions): index per-entry recovery status
* fix(sessions): guard restart failure notices
* fix(sessions): preserve terminal claims across admissions
* fix(sessions): retry failed recovery notices
* fix(sessions): harden restart retry ownership
* fix(gateway): tighten restart recovery typing
* fix(sessions): close restart recovery races
* refactor(sessions): split restart recovery ownership
* chore(sessions): clean restart recovery lint
* chore: drop release-owned changelog entry
* fix(gateway): satisfy restart recovery guards
* test(gateway): cover Control UI durable admission
2026-07-13 02:08:56 -07:00
Peter Steinberger
a18da069c5
fix(ci): eliminate experience review gate failures
2026-07-13 04:08:00 -04:00
Peter Steinberger
4e46f08fed
fix(macos): keep CLI path discovery off main actor ( #106089 )
2026-07-13 00:41:59 -07:00
Peter Steinberger
17630226fc
improve(ios): make gateway QR pairing prominent in Settings ( #106111 )
...
Reorder Settings -> Gateway by intent: pairing (Add Gateway with Scan QR,
setup code, discovered gateways) right below status, nav-bar QR scanner
button on the gateway route, and a Scan QR to Pair status-card hero while
nothing is paired (honoring the shared connect lock). Manual Gateway and
credentials move to the bottom. Fix setup-code Connect busy spinner to
track the whole attempt. New strings ran the full native i18n pipeline.
Closes #106013
2026-07-13 00:35:38 -07:00
Peter Steinberger
d2b382528e
feat(ios): guide first launch through pairing explainer and permissions ( #106129 )
...
* feat(ios): guide first launch through pairing explainer and permissions
* fix(ios): keep first-run flow resumable and surface limited grants in onboarding
* chore(ios): regenerate native i18n after rebase
* chore(android): project refreshed native translations into strings.xml
* fix(ios): move i18n wrapper contract to shared permission row and sync catalog
2026-07-13 00:35:31 -07:00
Peter Steinberger
29781ab39e
feat(android): generate gateway protocol models ( #106011 )
...
* feat(android): generate gateway protocol models
* fix(ci): recognize generated Kotlin event constants
* fix(android): normalize generated event catalog
* fix(ci): type Kotlin event coverage exports
* fix(ci): satisfy Kotlin codegen gates
2026-07-13 00:34:57 -07:00
Peter Steinberger
b2b87e956e
fix(macos): center dashboard traffic lights with the hosted titlebar buttons ( #106099 )
...
* fix(macos): center dashboard traffic lights with the hosted titlebar buttons
Give the dashboard window an empty unified toolbar so its titlebar grows
to 52pt, vertically centering the macOS traffic lights against the row of
web-hosted titlebar buttons (sidebar toggle, back/forward) instead of
hugging the top edge. Bump the injected --openclaw-native-titlebar-height
to match, and nudge the hosted controls' left offset from 78px to 92px so
the traffic-light cluster and the first web button read as separate groups.
The toolbar exists only to size the titlebar, so View > Hide Toolbar (and
the corresponding shortcut) are refused; hiding it would collapse the
titlebar while the web inset stays pinned at 52pt, resurrecting the
misalignment. Smoke tests cover toolbar presence/style, hide refusal, and
the exact injected height.
* chore(i18n): resync native inventory line metadata
2026-07-13 00:17:13 -07:00
Peter Steinberger
b57e7b74e6
feat: add native Skills management parity ( #105814 )
...
* feat(apps): add native skills management parity
* chore(i18n): refresh native skills inventory
* style(apps): apply canonical Swift formatting
* style(ios): wrap skills status message
* chore(i18n): refresh native skill locales
* refactor(apps): trim native skills review surface
* chore(i18n): regenerate native app resources
* chore: keep release changelog owner-only
* fix(ios): remove dead gateway and watch wrappers
2026-07-13 00:11:11 -07:00
Peter Steinberger
f1076c23d4
fix(ci): isolate macOS node restart notifications
2026-07-13 02:54:10 -04:00
Colin Johnson
6242842722
fix(ios): focus missing gateway credentials ( #98189 )
...
* fix(ios): focus missing gateway credentials
Co-authored-by: Colin <colin@solvely.net >
* test(macos): let main actor polling suspend
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-12 23:36:29 -07:00
Ayaan Zaidi
143fed81c1
feat(sessions): reopen history around search hits
2026-07-13 10:27:29 +05:30
Peter Steinberger
b43e832fcc
feat(ui): host the macOS dashboard titlebar buttons in the web UI ( #105902 )
...
* feat(ui): host the macOS dashboard titlebar buttons in the web UI
* style(ui): oxfmt macos titlebar controls
* fix(ui): bracket-access native web chrome globals for no-underscore-dangle
* docs(macos): note intentional no-fallback contract for non-web-chrome pages
* chore(ui): drop unused NativeHistoryStateEvent export
* chore(i18n): resync native inventory line metadata
* chore(i18n): translate nav.back/nav.forward across locales
2026-07-12 20:29:58 -07:00
Peter Steinberger
c81ae0412c
fix(ios): localize Settings accessibility labels ( #105859 )
...
* fix(ios): preserve localized accessibility labels
* chore(i18n): refresh native source inventory
2026-07-12 19:33:27 -07:00
Ayaan Zaidi
c029d997a9
chore(i18n): resync native inventory line metadata
...
Direct iOS/Android commits on main shifted source line numbers without
running the path-filtered native-i18n job, so `native:i18n:check` fails
on any PR that touches a native path. Metadata-only resync; entry count
unchanged (4200).
2026-07-13 07:42:52 +05:30
Vincent Koc
818eca2c09
fix(ios): coalesce automatic overview refreshes
2026-07-13 03:53:15 +02:00
Vincent Koc
918745ed21
docs(changelog): note native app reliability fixes
2026-07-13 03:53:15 +02:00
Vincent Koc
5e9bc0916f
fix(ios): harden gateway and watch state handling
2026-07-13 03:53:15 +02:00
Vincent Koc
b9d53d3cce
fix(android): keep disconnected nodes offline
2026-07-13 03:53:15 +02:00
Peter Steinberger
af326b98d7
fix(macos): avoid SwiftUI macro plugin dependency ( #105768 )
...
* fix(macos): avoid SwiftUI macro plugin dependency
* fix(macos): scope chat previews to iOS
* chore(i18n): refresh native source locations
* fix(macos): preserve explicit environment keys in formatter
* chore(pr): keep changelog release-owned
2026-07-12 17:40:41 -07:00
Peter Steinberger
e01d1e85f3
ci(swift): enforce shared OpenClawKit dead-code coverage ( #105770 )
...
* ci(swift): enforce shared kit dead-code coverage
* chore(i18n): sync native source inventory
* ci(swift): install pinned iOS scan tools
2026-07-12 17:35:47 -07:00
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
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
5e45ebe82b
feat(ios): add private HealthKit summaries ( #105616 )
...
* feat(ios): add private HealthKit summaries
* fix(ios): satisfy Health settings lint
* chore(ios): sync Health localization artifacts
* chore(ios): refresh generated localization and docs
* fix(ios): reject partial Health history
* chore(ios): sync Health string catalogs
* fix(ios): bridge Health authorization dates
* fix(ios): scope Health summaries to today
2026-07-12 12:52:38 -07:00
WhatsSkiLL
5d61d97a33
fix(android): autofocus command palette search ( #105471 )
...
Co-authored-by: IWhatsskill <284122573+IWhatsskill@users.noreply.github.com >
2026-07-12 15:20:14 -04:00
Peter Steinberger
2821abc1f5
feat(android): polish skill management ( #105592 )
...
* feat(android): polish skill management
* chore(android): sync skill localization
2026-07-12 11:46:59 -07:00
Peter Steinberger
f60d052846
chore(i18n): sync native inventory line coordinates
...
apps dead-code removal (ec62328eb8 ) shifted ChatViewModel.swift string
coordinates without refreshing apps/.i18n/native-source.json, failing the
native-i18n CI shard on every PR. Inventory-only sync via pnpm native:i18n:sync.
2026-07-12 11:24:42 -07:00
Peter Steinberger
ec62328eb8
chore(apps): remove dead code
2026-07-12 10:18:03 -07:00
Vincent Koc
b6d26269e4
chore(i18n): refresh live activity coordinates
2026-07-12 18:33:47 +02:00
Vincent Koc
5ec053a6e9
refactor(ios): remove unused live activity wrapper
2026-07-12 18:33:47 +02:00
Vincent Koc
8eda61a0fa
chore(i18n): translate sidebar reveal action
2026-07-12 18:33:47 +02:00
Vincent Koc
f64eb0cbaa
fix(ios): localize sidebar reveal actions
2026-07-12 18:33:47 +02:00
Vincent Koc
59bed9db0b
test(ios): inspect typed sidebar action labels
2026-07-12 18:33:47 +02:00
Vincent Koc
e999802e6e
fix(ios): type watch gateway request identifier
2026-07-12 18:33:47 +02:00
Vincent Koc
01ed6b1f04
fix(ios): distinguish localized and verbatim session actions
2026-07-12 18:33:47 +02:00
Vincent Koc
7394d07a49
fix(ios): use typed localized retry action
2026-07-12 18:33:47 +02:00
Vincent Koc
77253849a1
chore(i18n): refresh native source coordinates
2026-07-12 18:33:47 +02:00
Vincent Koc
aa1a8ddb34
fix(ios): preserve localized text value boundaries
2026-07-12 18:33:47 +02:00
Vincent Koc
8d0d3ab59b
fix(watch): share style with detail scroll
2026-07-12 18:33:47 +02:00
Vincent Koc
19e650c231
fix(watch): include chat status in preview snapshot
2026-07-12 18:33:47 +02:00
Vincent Koc
a37e8bc396
test(ios): count every localized agent fallback
2026-07-12 18:33:47 +02:00