Peter Steinberger
592f192bf0
chore: remove unused tracked assets
2026-05-26 02:21:58 +01:00
Peter Steinberger
d00d0a21c2
chore: bump OpenClaw to 2026.5.26
2026-05-26 01:26:00 +01:00
Peter Steinberger
77d9ac30bb
refactor: reuse shared coercion helpers ( #86419 )
...
* refactor: share talk event metric extraction
* refactor: reuse shared coercion helpers
* refactor: reuse shared primitive guards
* refactor: reuse shared record guard
* refactor: reuse shared primitive helpers
* refactor: reuse shared string guards
* refactor: reuse shared non-empty string guard
* refactor: share plugin primitive coercion helpers
* refactor: reuse plugin coercion helpers
* refactor: reuse plugin coercion helpers in more plugins
* refactor: reuse channel coercion helpers
* refactor: reuse monitor coercion helpers
* refactor: reuse provider coercion helpers
* refactor: reuse core coercion helpers
* refactor: reuse runtime coercion helpers
* refactor: reuse helper coercion in codex paths
* refactor: reuse helper coercion in runtime paths
* refactor: reuse codex app-server coercion helpers
* refactor: reuse codex record helpers
* refactor: reuse migration and qa record helpers
* refactor: reuse feishu and core helper guards
* refactor: reuse browser and policy coercion helpers
* refactor: reuse memory wiki record helper
* refactor: share boolean coercion helpers
* refactor: reuse finite number coercion
* refactor: reuse trimmed string list helpers
* refactor: reuse string list normalization
* refactor: reuse remaining string list helpers
* refactor: reuse string entry normalizer
* refactor: share sorted string helpers
* refactor: share string list normalization
* test: preserve command registry browser imports
* refactor: reuse trimmed list helpers
* refactor: reuse string dedupe helpers
* refactor: reuse local dedupe helpers
* refactor: reuse more string dedupe helpers
* refactor: reuse command string dedupe helpers
* refactor: dedupe memory path lists with helper
* refactor: expose string dedupe helpers to plugins
* refactor: reuse core string dedupe helpers
* refactor: reuse shared unique value helpers
* refactor: reuse unique helpers in agent utilities
* refactor: reuse unique helpers in config plumbing
* refactor: reuse unique helpers in extensions
* refactor: reuse unique helpers in core utilities
* refactor: reuse unique helpers in qa plugins
* refactor: reuse unique helpers in memory plugins
* refactor: reuse unique helpers in channel plugins
* refactor: reuse unique helpers in core tails
* refactor: reuse unique helper in comfy workflow
* refactor: reuse unique helpers in test utilities
* refactor: expose unique value helper to plugins
* refactor: reuse unique helpers for numeric lists
* refactor: replace index dedupe filters
* refactor: reuse string entry normalization
* refactor: reuse string normalization in plugin helpers
* refactor: reuse string normalization in extension helpers
* refactor: reuse string normalization in channel parsers
* refactor: reuse string normalization in memory search
* refactor: reuse string normalization in provider parsers
* refactor: reuse string normalization in qa helpers
* refactor: reuse string normalization in infra parsers
* refactor: reuse string normalization in messaging parsers
* refactor: reuse string normalization in core parsers
* refactor: reuse string normalization in extension parsers
* refactor: reuse string normalization in remaining parsers
* refactor: reuse string normalization in final parser spots
* refactor: reuse string normalization in qa media helpers
* refactor: reuse normalization in provider and media lists
* refactor: reuse normalization for remaining set filters
* refactor: reuse normalization in policy allowlists
* refactor: reuse normalization in session and owner lists
* refactor: centralize primitive string lists
* refactor: reuse lowercase entry helpers
* refactor: reuse sorted string helpers
* refactor: reuse unique trimmed helpers
* refactor: reuse string normalization helpers
* refactor: reuse catalog string helpers
* refactor: reuse remaining string helpers
* refactor: simplify remaining list normalization
* refactor: reuse codex auth order normalization
* chore: refresh plugin sdk api baseline
* fix: make shared string sorting deterministic
* chore: refresh plugin sdk api baseline
* fix: align host env security ordering
2026-05-25 21:20:41 +01:00
Nimrod Gutman
9ca52ce3d9
[codex] improve iOS realtime talk mode ( #86355 )
...
Merged via squash.
Prepared head SHA: 3f5aedb265
Co-authored-by: ngutman <1540134+ngutman@users.noreply.github.com >
Co-authored-by: ngutman <1540134+ngutman@users.noreply.github.com >
Reviewed-by: @ngutman
2026-05-25 13:27:37 +03:00
Ayaan Zaidi
deb54b5dab
fix(android): harden play media permission removal
2026-05-25 09:43:15 +05:30
Ayaan Zaidi
ffb02a5919
fix(android): stabilize realtime talk connection state
2026-05-25 09:01:07 +05:30
Ayaan Zaidi
70614f88cc
fix(android): keep talk mode on realtime relay
2026-05-25 09:01:07 +05:30
Ayaan Zaidi
d7aa1f31de
test(android): add gateway connect adb probe
2026-05-25 09:01:07 +05:30
Ayaan Zaidi
e52a3b31e4
test(android): add voice mode adb e2e harness
2026-05-25 09:01:06 +05:30
Peter Steinberger
c422e7240f
chore: release 2026.5.25
2026-05-25 00:46:47 +01:00
Ayaan Zaidi
c4525104e9
style(android): sharpen voice mode surfaces
2026-05-24 22:06:36 +05:30
Ayaan Zaidi
955909c988
style(android): refine list surface spacing
2026-05-24 22:06:36 +05:30
Ayaan Zaidi
63a2f69601
fix(android): prevent stale chat during session switches
2026-05-24 22:06:36 +05:30
Ayaan Zaidi
d86ed21f3d
fix(android): hide internal chat content blocks
2026-05-24 22:06:36 +05:30
Ayaan Zaidi
cc5eb972e6
feat(android): add pair new gateway action
2026-05-24 22:06:36 +05:30
Ayaan Zaidi
94bc18ad75
fix(android): keep permission setup action visible
2026-05-24 22:06:36 +05:30
Ayaan Zaidi
be9bb775a5
fix(android): complete qr setup operator handoff
2026-05-24 20:38:57 +05:30
Ayaan Zaidi
0b55a6363e
fix(android): align setup pairing scopes
2026-05-24 20:38:57 +05:30
Ayaan Zaidi
400d90a4da
style(android): sharpen v2 screen rhythm
2026-05-24 18:37:31 +05:30
Ayaan Zaidi
24ddd18ae1
fix(android): simplify gateway status copy
2026-05-24 18:24:51 +05:30
Ayaan Zaidi
cec52bd279
fix(android): route offline voice to gateway setup
2026-05-24 18:22:28 +05:30
Ayaan Zaidi
5c15859759
fix(android): stop operator chat subscription
2026-05-24 18:16:01 +05:30
Ayaan Zaidi
60e6ccdb8c
fix(android): smooth gateway pairing recovery
2026-05-24 18:05:40 +05:30
Ayaan Zaidi
01b284cac0
style(android): fix talk mode ktlint formatting
2026-05-24 17:51:53 +05:30
Peter Steinberger
0cba872e38
chore: bump version to 2026.5.24
2026-05-24 02:40:16 +01:00
Peter Steinberger
bbf9c45ba7
feat(talk): add realtime active-run control
...
Co-authored-by: Colin <colin@solvely.net >
2026-05-24 02:35:04 +01:00
njuboy
a1eb765f0a
fix(session-lock): enforce maxHoldMs in shouldReclaim during lock acquisition ( #85764 )
...
* fix(session-lock): enforce maxHoldMs in shouldReclaim during lock acquisition
- Adds optional maxHoldMs parameter to inspectLockPayload
- Inspect now marks locks as stale when held longer than maxHoldMs
- Passes maxHoldMs through inspectLockPayloadForSession
- acquireSessionWriteLock's shouldReclaim callback now passes maxHoldMs
This ensures that when a live process holds a lock for longer than
maxHoldMs (default 5min), other processes can reclaim it during
acquisition — matching the watchdog's existing enforcement.
Previously shouldReclaim only used staleMs (30min default), meaning
a lock held for 10+ minutes by a live PID would never be reclaimable,
causing 60s timeout failures and gateway freezes.
Closes #85762
* fix(session-lock): add dead-PID fast-path before retry loop
Adds a fast-path check at the top of acquireSessionWriteLock:
if the lock file's owner PID is dead, remove it immediately
before entering the retry loop. This saves up to timeoutMs (60s)
of futile waiting when the previous lock holder has died.
The shouldReclaim callback already handles this case, but only
iteratively through the retry loop. The fast-path eliminates
that unnecessary delay.
* fix(session-lock): enforce max hold during acquisition
* fix(session-lock): revalidate max hold safely
* fix(session-lock): honor holder max-hold policy
* fix(session-lock): keep cleanup from reclaiming live holders
* fix(session-lock): remove stale locks only when unchanged
* fix(session-lock): skip self-held max-hold reclaim
* fix(ci): refresh gateway protocol checks
---------
Co-authored-by: njuboy11 <njuboy11@users.noreply.github.com >
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-05-24 00:38:01 +01:00
brokemac79
f4b92f5e6c
fix(agents): simplify subagent completion handoff
...
Simplify native subagent completion handoff and remove manual subagent control surfaces.
Co-authored-by: brokemac79 <martin_cleary@yahoo.co.uk >
2026-05-23 13:50:08 +01:00
Peter Steinberger
0556958d82
fix: use native mac settings sidebar
2026-05-22 22:53:32 +01:00
Peter Steinberger
bb5010b89a
docs: absorb docs sweep
...
Co-authored-by: Kai <kai@itskai.dev >
Co-authored-by: Weihang <gwh7078@163.com >
Co-authored-by: Scott Long <longstoryscott@gmail.com >
Co-authored-by: moejaberr <mjaber@uoguelph.ca >
Co-authored-by: huihui0822 <109355071+huihui0822@users.noreply.github.com >
2026-05-22 21:52:01 +01:00
Peter Steinberger
4df34cb790
chore(release): bump version to 2026.5.22
2026-05-22 21:25:16 +01:00
Peter Steinberger
c94c513714
refactor(ios): centralize setup auth parsing
...
Centralizes iOS setup-code auth parsing so token/bootstrap/password trimming and the bootstrap-clears-stale-credentials rule live in one parsed value.
Verification:
- `git diff --check`
- `swiftformat --lint --config config/swiftformat --unexclude apps/ios/Sources apps/ios/Sources/Gateway/GatewayConnectionController.swift apps/ios/Sources/Onboarding/GatewayOnboardingView.swift apps/ios/Sources/Onboarding/OnboardingWizardView.swift apps/ios/Sources/Settings/SettingsTab.swift`
- `swiftlint lint --config apps/ios/.swiftlint.yml apps/ios/Sources/Gateway/GatewayConnectionController.swift apps/ios/Sources/Onboarding/GatewayOnboardingView.swift apps/ios/Sources/Onboarding/OnboardingWizardView.swift apps/ios/Sources/Settings/SettingsTab.swift`
- `AUTOREVIEW_AUTO_TESTS=0 .agents/skills/autoreview/scripts/autoreview --mode branch --base origin/main`
- GitHub merge state clean for `fc35f31e95e73850a153149edaf471c10379dff2`
2026-05-22 17:54:53 +01:00
Peter Steinberger
d93c59732b
refactor(ios): consolidate manual auth override inputs
...
Consolidates repeated iOS manual-auth override assembly into `ManualAuthOverride.currentManualInput` and reuses the existing `normalized` constructor directly for setup-code pending auth state.
Verification:
- `git diff --check`
- `swiftformat --lint --config config/swiftformat --unexclude apps/ios/Sources apps/ios/Sources/Gateway/GatewayConnectionController.swift apps/ios/Sources/Onboarding/GatewayOnboardingView.swift apps/ios/Sources/Onboarding/OnboardingWizardView.swift apps/ios/Sources/Settings/SettingsTab.swift`
- `swiftlint lint --config apps/ios/.swiftlint.yml apps/ios/Sources/Gateway/GatewayConnectionController.swift apps/ios/Sources/Onboarding/GatewayOnboardingView.swift apps/ios/Sources/Onboarding/OnboardingWizardView.swift apps/ios/Sources/Settings/SettingsTab.swift`
- `AUTOREVIEW_AUTO_TESTS=0 .agents/skills/autoreview/scripts/autoreview --mode branch --base origin/main`
- GitHub merge state clean for `cb6f3bcf8f121b570e22dcb8eed6dc9aaa89fc55`
2026-05-22 17:43:23 +01:00
Colin Johnson
e730e9bd0b
feat(ios): add realtime talk relay mode
...
Adds realtime Gateway Talk relay support for iOS, including OpenAI realtime provider selection and voice selection controls.
Maintainer fixups preserved provider auth fallback resolution, kept setup-code/manual auth through TLS trust prompts, recomputed pairing auth from current form fields, fixed the realtime voice label Swift compile issue, added provider auth regression coverage, and refreshed shrinkwrap metadata for the current CI merge base.
Verification:
- `fnm exec --using 24.15.0 pnpm deps:shrinkwrap:check`
- `git diff --check`
- `swiftformat --lint --config config/swiftformat --unexclude apps/ios/Sources apps/ios/Sources/Gateway/GatewayConnectionController.swift apps/ios/Sources/Onboarding/GatewayOnboardingView.swift apps/ios/Sources/Onboarding/OnboardingWizardView.swift apps/ios/Sources/Settings/SettingsTab.swift apps/ios/Sources/Voice/TalkModeGatewayConfig.swift`
- `swiftlint lint --config apps/ios/.swiftlint.yml apps/ios/Sources/Gateway/GatewayConnectionController.swift apps/ios/Sources/Onboarding/GatewayOnboardingView.swift apps/ios/Sources/Onboarding/OnboardingWizardView.swift apps/ios/Sources/Settings/SettingsTab.swift apps/ios/Sources/Voice/TalkModeGatewayConfig.swift`
- `AUTOREVIEW_AUTO_TESTS=0 .agents/skills/autoreview/scripts/autoreview --mode branch --base origin/main`
- GitHub CI clean for `8a76c829611c0eb70d4c3b5328f1868aaf3516e1` (cancelled `auto-response` ignored)
Co-authored-by: Colin Johnson <colin@solvely.net >
2026-05-22 17:34:06 +01:00
VACInc
683ad75b31
fix(talk): stabilize realtime voice consults
...
Stabilize realtime Talk playback, transcript ordering, and consult routing across Android, Web, and the gateway relay.
- serialize Android realtime playback and transcript updates
- add opt-in forced consult routing for Talk realtime sessions
- keep web/gateway consult turns behind OpenClaw results with ordered transcript bubbles
- document the new `talk.realtime.consultRouting` config and keep prompt wording generic
Co-authored-by: VACInc <3279061+VACInc@users.noreply.github.com >
2026-05-22 15:12:39 +01:00
Alex Knight
5d01be1070
Add chat picker search and pagination
2026-05-22 19:07:21 +10:00
Josh Avant
cbe68ba1a1
Fix inherited XDG env for exec subprocesses ( #85139 )
...
* fix exec xdg env inheritance
* chore changelog xdg env fix
2026-05-21 18:01:38 -07:00
Peter Steinberger
e2c92be90b
chore(release): bump version to 2026.5.21
2026-05-22 00:09:45 +01:00
Peter Steinberger
f43e83c937
fix: align remaining copyright notice
2026-05-21 10:47:54 +01:00
Peter Steinberger
3260da003d
fix: update mac copyright owner
2026-05-21 10:33:49 +01:00
clawsweeper[bot]
5c4c6a4207
[codex] Fix macOS app copyright year ( #84729 )
...
Summary:
- The PR updates the macOS About settings copyright text to 2026, adds a changelog entry, and adjusts changed-check planning so non-macOS hosts without SwiftLint emit an explicit app-lint skip with matching test coverage.
- Reproducibility: yes. from source inspection: current main still renders the 2025 copyright literal in the m ... launch the app locally, but the source path and source PR proof make the observable issue high-confidence.
Automerge notes:
- PR branch already contained follow-up commit before automerge: fix(clawsweeper): address review for automerge-openclaw-openclaw-8438…
Validation:
- ClawSweeper review passed for head 26816c18d6 .
- Required merge gates passed before the squash merge.
Prepared head SHA: 26816c18d6
Review: https://github.com/openclaw/openclaw/pull/84729#issuecomment-4503529931
Co-authored-by: clawsweeper <274271284+clawsweeper[bot]@users.noreply.github.com>
Co-authored-by: clawsweeper[bot] <274271284+clawsweeper[bot]@users.noreply.github.com>
Approved-by: takhoffman
Co-authored-by: takhoffman <781889+takhoffman@users.noreply.github.com >
2026-05-20 23:45:47 +00:00
Peter Steinberger
7b9066120a
chore(release): bump version to 2026.5.20
2026-05-20 21:58:56 +01:00
Peter Steinberger
99c88629c3
fix(macos): update embedded Peekaboo bridge
2026-05-20 12:58:56 +01:00
Ayaan Zaidi
989e53c20d
fix(android): address overhaul review findings
2026-05-20 10:54:08 +05:30
Ayaan Zaidi
bbcac0019b
refactor(android): make overhaul UI canonical
2026-05-20 10:54:08 +05:30
Ayaan Zaidi
64b6cafcaa
test(android): update gateway hello callback fixtures
2026-05-20 10:54:08 +05:30
Ayaan Zaidi
98f2e568b3
refactor(android): centralize v2 separated list rows
2026-05-20 10:54:08 +05:30
Ayaan Zaidi
c289e3ea87
fix(android): expand v2 settings toggle hit areas
2026-05-20 10:54:08 +05:30
Ayaan Zaidi
c0ac4564f7
fix(android): clarify v2 voice settings action
2026-05-20 10:54:08 +05:30
Ayaan Zaidi
07b28a6dd6
fix(android): gate v2 cron job save action
2026-05-20 10:54:08 +05:30