Commit Graph

4869 Commits

Author SHA1 Message Date
openclaw-mantis[bot] d5668d83c0 chore(i18n): refresh native locales (#119669)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-08-06 20:08:30 +08:00
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
WhatsSkiLL 238c8bfc23 fix(android): show active session status in sidebar (#118624) 2026-08-05 11:55:10 -04:00
Peter Steinberger 4511c9b71f refactor(android): remove obsolete chat rendering paths (#119615) 2026-08-05 08:17:04 -07:00
Josh Avant 618fba92bf feat(audit): add execution identity inspection (#117034)
* feat(audit): add opt-in execution identity inspection

* fix(audit): gate recovery identity retention

* fix(audit): keep recovery identity type private

* test(audit): type internal recovery fixture

* test(audit): split recovery identity coverage

* docs(audit): define operator read trust boundary

* test(qa): register identity scenario child

* fix(audit): enforce shared identity retention bounds

* fix(audit): seal public ingress identity boundary

* fix(audit): keep ingress guard lint-clean

* fix(gateway): preserve advertised method order

* chore(protocol): sync advertised method order

* fix(protocol): encode audit selector invariants

* test(audit): prove exact execution guard

* fix(audit): keep identity storage lazy
2026-08-04 20:05:15 -05: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
Vincent Koc 03ba86544e fix(protocol): regenerate Swift wizard models 2026-08-04 09:51:56 +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
Vincent Koc 7741cbdaa7 test(gateway): cover published protocol artifacts (#118799)
* test(gateway): cover published protocol artifacts

* test(gateway): isolate Swift artifact proof

* test(gateway): compile Swift models portably

* test(gateway): align protocol metadata fixture

* test(gateway): install packed protocol as consumer
2026-08-04 03:26:29 +08: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
Jesse Merhi 68be0e3378 feat: enable rich setup controls in custodian chat (#114631)
* feat(protocol): carry the awaited wizard step on the chat result

* fix(system-agent): strip sensitive wizard prefill from chat results

* fix(wizard): keep setup secrets server-side

* test(wizard): preserve prompt mock typing

* fix(ui): add reveal toggle to wizard secrets

* refactor(ui): adopt Carapace sensitive input

* fix(ui): hide revealed sensitive input mask

* test(twitch): cover environment-only setup

* feat(custodian): render rich wizard steps

* fix(custodian): validate wizard text replies

* feat(custodian): submit typed wizard answers

* refactor(gateway): isolate custodian chat turns

* fix(gateway): accept session engine adapter

* fix(ui): narrow wizard control values

* refactor: simplify rich wizard answer flow

* fix(custodian): recover evicted wizard sessions

* docs: note custodian rich setup controls

* test(gateway): split wizard answer coverage
2026-08-03 22:18:27 +10:00
Peter Steinberger 21b3904e91 test(macos): deduplicate Claude session catalog fixtures (#118571) 2026-08-03 01:45:12 -07:00
joshavant 1f78c39bd8 fix: adapt completion delivery to current main 2026-08-03 02:48:34 -05:00
Peter Steinberger c49b68328e test(android): consolidate Wear bridge fixtures (#118559) 2026-08-03 00:42:43 -07:00
Peter Steinberger f96fc529c3 test(ios): consolidate talk config fixtures (#118533) 2026-08-02 23:42:06 -07:00
Peter Steinberger 4b3d0b37be test(android): consolidate connection TLS fixtures (#118532) 2026-08-02 23:29:37 -07:00
Peter Steinberger fd2fb643b8 test(macos): consolidate node runtime fixtures (#118521) 2026-08-02 23:15:55 -07:00
Peter Steinberger ffa9f74670 test(swift): consolidate device identity fixtures (#118510) 2026-08-02 23:02:19 -07:00
Peter Steinberger 0c9cc40c02 refactor(macos): consolidate endpoint publication (#118463) 2026-08-02 22:20:40 -07:00
Peter Steinberger 79568e2005 test(swift): dedupe gateway session connects (#118484) 2026-08-02 22:17:43 -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 d2ff210679 test(android): compact chat persistence fixtures (#118456) 2026-08-02 21:51:33 -07:00
Peter Steinberger 43d9ba493d refactor(ios): remove redundant node test seams (#118387)
* refactor(ios): remove redundant node test seams

* fix(ios): keep approval route context private

* fix(ios): preserve routing task assertion

* fix(ios): retain private talk permission test seam

* fix(ios): retain operator options boundary
2026-08-02 21:44:45 -07:00
Peter Steinberger 9f19e5e39e test(swift): dedupe gateway connect options (#118429) 2026-08-02 21:10:46 -07:00
Peter Steinberger c33e9ba05b refactor(macos): consolidate gateway lifecycle state (#118412) 2026-08-02 20:47:50 -07:00
Peter Steinberger 27ec985fe2 test(swift): dedupe chat view model fixtures (#118394) 2026-08-02 20:14:28 -07:00
Peter Steinberger 39c506bbf2 test(android): compact onboarding gateway fixtures (#118383) 2026-08-02 20:09:31 -07:00
Jason (Json) d3c5ac85ae fix(chat): preserve trace across history reloads (#118332) 2026-08-02 21:08:09 -06: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 22033d7836 test(swift): centralize transcript cache fixtures (#118322) 2026-08-02 19:28:36 -07:00
Peter Steinberger 1d2fc98bf4 test(android): reduce voice fixture duplication (#118270) 2026-08-02 19:27:55 -07:00
clawsweeper[bot] fa0e298d84 fix(ios): route forced realtime consults through Gateway relay (#117485)
* fix(ios): route forced realtime consults through Gateway relay

* fix(ios): route forced realtime consults through Gateway relay

* fix(ios): route forced realtime consults through Gateway relay

* fix(ios): route forced realtime consults through Gateway relay

* style(ios): drop redundant Self in requiresForcedAgentConsultRelay

* style(ios): use explicit self for firstString per swiftformat

---------

Co-authored-by: clawsweeper <274271284+clawsweeper[bot]@users.noreply.github.com>
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-08-02 18:06:19 -07:00
PollyBot13 d9669ce72c fix(ios): finish Calendar and Reminders grants without relaunch (#116504) 2026-08-02 18:01:41 -07:00
Peter Steinberger c43ba8e3fc fix(cli): speed up hook status reads through the Gateway (#118288)
* perf(cli): reuse gateway hook status (#118222)

* chore(protocol): register hooks.status schema module in generated surfaces
2026-08-02 17:21:28 -07:00
WhatsSkiLL 4c136a7dea fix-android-sidebar-search-results (#117981)
Co-authored-by: IWhatsskill <284122573+IWhatsskill@users.noreply.github.com>
2026-08-02 17:13:16 -07:00
Peter Steinberger d803843cfd test(macos): consolidate Codex catalog fixtures (#118233) 2026-08-02 16:35:01 -07:00
Peter Steinberger 3ebb0ca3b6 chore(lint): resolve the 40 reserved baseline findings to a zero-noise lint:all (#118256)
* fix(lint): resolve reserved runtime findings

* chore(lint): scope intentional contract findings

* fix(android): preserve WebMessageListener bridge contract
2026-08-02 16:08:57 -07:00
Peter Steinberger 840ed45b86 test(macos): consolidate onboarding probe fixtures (#118218) 2026-08-02 16:02:16 -07:00
Peter Steinberger a1c2009b91 chore(android): stabilize branch coordination unit tests (#118210)
* test(android): stabilize branch coordination tests

* test(android): await outbox drain boundary

* test(android): isolate reconciliation drain fixture
2026-08-02 15:25:19 -07:00
Peter Steinberger 7c70571683 chore(lint): clear 172 lint:all baseline violations in five batches (#118098)
* chore(lint): clean Android-Linux app assets batch

* chore(lint): clean setup-launcher-plugin batch

* chore(lint): clean changelog-updater batch

* chore(lint): clean QA-runtime-helper batch

* chore(lint): clean script-tests batch

* fix(mxc): await sandbox spawn before bridge selection

* fix(test): make fake plutil metacharacter escaping survive the template hop
2026-08-02 14:08:09 -07:00
Peter Steinberger 7214577cf1 test(macos): fix three races in the bounded process suites (#118196)
BoundedCommandTests and BoundedProcessTests failed nondeterministically:
4/20 runs idle, 7/8 under CPU saturation. Three separate causes.

1. #require inside a retry loop. waitForPID polled through readPID with
   `try?`, but #require records an issue even when its error is swallowed,
   so the first read of a created-but-not-yet-written pid file failed the
   test outright. Added a non-recording pollPID for the polling path and
   kept the recording read as the authoritative final attempt. The two
   single-read call sites now poll too - echo $$ > file creates and writes
   in two steps, so any single read can see a missing or empty file.

2. A 0.1s deadline racing process spawn. BoundedCommand starts its timeout
   concurrently with the spawn, so the deadline also bounded /bin/sh
   starting and publishing its pid; under load the child was killed before
   it ever wrote the file. Wait for the pid while the run is in flight and
   give the child a deadline well clear of spawn cost.

3. A 1s per-process budget on the concurrent fan-outs. Instrumenting the
   deadline showed a stalled run observed all 64 exits at ~3.1s, clustered
   within 100ms of each other - a global stall, not a straggler. Those
   tests assert that no exit is lost during monitor registration, not
   latency, so the timeout should not double as a performance assertion.
   A missed exit still fails: the 50ms pollUntilExit fallback would never
   complete.

Also widened waitUntilGone, since reaping is asynchronous.

No production code changed. Proof: 30/30 idle and 20/20 under full 32-core
saturation, against 16/20 and 1/8 before.
2026-08-02 14:03:57 -07:00
Peter Steinberger 860b4ee4a7 test(android): share Wear transport fixtures (#118177) 2026-08-02 14:01:28 -07:00
Peter Steinberger 1787cbb9de test(android): compact chat recovery fixtures (#118166) 2026-08-02 13:21:29 -07:00
Peter Steinberger 54c4ff3c06 refactor(swift): consolidate gateway problem mapping (#118107) 2026-08-02 13:17:22 -07:00
Peter Steinberger aae0342f7c test(android): consolidate gateway security fixtures (#118165) 2026-08-02 13:17:01 -07: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 5c2559e2d9 test(macos): deduplicate onboarding AI setup fixtures (#118092)
* test(macos): deduplicate onboarding AI setup fixtures

* test(macos): fix fixture handler binding
2026-08-02 11:52:04 -07:00