Vincent Koc
6e046daf82
fix(macos): reap timed-out shell process groups ( #115859 )
...
* fix(macos): reap timed-out shell process groups
* test(macos): cover shell timeout process cleanup
* fix(macos): finish timeout process-group escalation
* fix(macos): preserve inherited shell input
* chore(macos): keep release notes in the PR
2026-07-29 20:28:16 +08:00
Peter Steinberger
e8524a5839
feat: add Fish Audio S2.1 and local MLX speech ( #115790 )
...
* feat: add Fish Audio speech support
* chore: remove unused speech exports
* chore: keep Fish API constant private
* test: remove stale code mode import
* style: use bracket access for Fish voice ids
* test: restore QA evidence validator import
2026-07-29 05:15:33 -04:00
Peter Steinberger
138675aeeb
feat(apps): render collapsible details natively ( #115641 )
...
* feat(apps): render collapsible details natively in chat
* fix(apps): preserve reference definitions when folding disclosures
* fix(apps): keep authored details summaries unlocalized
* fix(apps): keep raw-HTML disclosure examples literal
* refactor(apps): isolate summaries and raw HTML contexts
* fix(apps): honor all CommonMark raw HTML contexts in disclosures
* chore(apps): refresh native i18n inventory for disclosure strings
2026-07-29 02:52:54 -04:00
Vincent Koc
5ecd5f45db
chore(i18n): refresh native locales ( #115608 )
2026-07-29 13:59:04 +08:00
Peter Steinberger
26bfa88bb2
fix: restore native Talk transcripts, fallback, and microphone access ( #115577 )
...
* fix(ios): decode frameless Talk events
* fix(android): keep browser-only Talk models native
* fix(macos): gate dashboard media capture
* docs(talk): clarify native platform fallbacks
* chore(i18n): refresh native source inventory
* fix(android): gate relay entry on provider-level browser-only models too
2026-07-29 01:55:47 -04:00
Vincent Koc
c0a472f0b2
chore(i18n): refresh native locales ( #115532 )
2026-07-29 13:11:40 +08:00
Peter Steinberger
1d57a4989b
fix(mac): stop repeated exec approvals migration retries ( #115502 )
...
* fix(mac): classify exec-approvals migration errors and stop retry storm
* fix(mac): refresh native i18n inventory
2026-07-29 01:09:22 -04:00
Peter Steinberger
5d1311c19e
test(macos): block real process fallthrough ( #113337 )
...
* test(macos): block real process fallthrough
* test(macos): cover SwiftPM helper executable paths
Co-authored-by: Peter Steinberger <steipete@gmail.com >
* test(macos): avoid process-age timing assumption
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-28 13:21:10 -04:00
Peter Steinberger
5c6bccff4a
feat(macos): enable Computer Control by default and diagnose stale Accessibility grants ( #115280 )
...
* feat(macos): enable and diagnose computer control
* docs(macos): explain computer control permissions
* chore: refresh macOS i18n and docs indexes
* test: update macOS computer control i18n fixture
2026-07-28 13:00:32 -04:00
Vincent Koc
289c8ff992
fix(apple): localize gateway discovery status
2026-07-28 23:48:57 +08:00
dongdong
84555934f6
fix: preserve OpenClaw profile env in macOS launch-at-login plist ( #99752 )
...
* fix(macos): preserve profile env in launch-at-login plist
* fix(macos): preserve login profile environment
Co-authored-by: Jasmine Zhang <jasminezhang@JasminedeMac-mini.local >
* test(macos): isolate launch agent PATH coverage
Co-authored-by: Jasmine Zhang <jasminezhang@JasminedeMac-mini.local >
---------
Co-authored-by: Jasmine Zhang <jasminezhang@JasminedeMac-mini.local >
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-28 11:32:42 -04:00
Bryan Tegomoh, MD, MPH
15866acef5
Refresh macOS skills after node reconnect ( #107660 )
...
* Refresh macOS skills after node reconnect
* fix(macos): queue skills refresh during reconnect
* chore(i18n): refresh native skills inventory
* fix(macos): refresh skills from gateway invalidations
Co-authored-by: Bryan Tegomoh <bryan.tegomoh@gmail.com >
* fix(android): update gateway event catalog
Co-authored-by: Bryan Tegomoh <bryan.tegomoh@gmail.com >
* refactor(skills): keep remote eligibility helper bounded
Co-authored-by: Bryan Tegomoh <bryan.tegomoh@gmail.com >
* ci(test): pin model shard worker budget
Co-authored-by: Bryan Tegomoh <bryan.tegomoh@gmail.com >
* ci(test): isolate network-sensitive agent suites
Co-authored-by: Bryan Tegomoh <bryan.tegomoh@gmail.com >
* test: align isolated prefix routing expectation
Co-authored-by: Bryan Tegomoh <bryan.tegomoh@gmail.com >
* test(macos): isolate gateway process test port
Co-authored-by: Bryan Tegomoh <bryan.tegomoh@gmail.com >
* fix(macos): recover skills after failed refresh
Co-authored-by: Bryan Tegomoh <bryan.tegomoh@gmail.com >
* fix(ci): avoid duplicate agent test routing
Co-authored-by: Bryan Tegomoh <bryan.tegomoh@gmail.com >
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-28 09:10:45 -04:00
Peter Steinberger
4b05d83035
fix: generated images do not appear in native chat ( #115042 )
...
* fix(chat): render managed images in native clients
Co-authored-by: Francesco Giannicola <francescogiannicola1@gmail.com >
* chore: keep release changelog owned
* refactor(macos): split managed image loading
* test(apple): prove managed image header policy
* test(native): stabilize managed image proof
* test(apple): satisfy strict concurrency checks
---------
Co-authored-by: Francesco Giannicola <francescogiannicola1@gmail.com >
2026-07-28 04:39:53 -04:00
Nick
5d4ff17d7d
fix: macOS reports CLI-only Tailscale as not installed ( #114179 )
...
* fix(macos): detect CLI-only Tailscale
* fix(macos): distinguish Tailscale app and CLI installs
Co-authored-by: Nick <18488428+nickxma@users.noreply.github.com >
* chore(macos): refresh native i18n inventory
* test(pr): provide rg in artifact fixture
* fix(macos): gate Tailscale interface evidence
* chore(pr): drop superseded fixture shim
* chore(macos): realign native i18n inventory
* refactor(macos): keep Tailscale status guidance generic
---------
Co-authored-by: Nick <18488428+nickxma@users.noreply.github.com >
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-28 04:00:18 -04:00
Peter Steinberger
86e92486aa
fix(macos): stop replacement handoff retry storms ( #114975 )
...
* fix(macos): bound app replacement handoffs
* chore: leave release notes to release flow
* chore(macos): refresh native i18n inventory
* chore(apps): sync native i18n inventory
* fix(macos): revalidate terminal replacement target
2026-07-28 03:21:25 -04:00
Peter Steinberger
2ed2e46763
fix(mac): cache gateway profile registry and isolate dev keychain items ( #114956 )
2026-07-28 02:36:25 -04:00
Peter Steinberger
4b59f06d27
fix(mac): bound node worker crash retries ( #114974 )
2026-07-28 02:22:27 -04:00
Peter Steinberger
01f6ad67d5
chore(i18n): refresh native locale catalogs ( #114915 )
...
* chore(i18n): refresh native locale catalogs
* chore(i18n): sync native translation artifacts
2026-07-28 00:42:59 -04:00
Yiğit ERDOĞAN
dae1817a17
fix: block CXXCPP host env override ( #112684 )
...
CPP was added to blockedEverywhereKeys in #112560 , but its Autoconf twin
CXXCPP was not. Autoconf defines the preprocessor selectors as a pair —
AC_PROG_CPP sets CPP, AC_PROG_CXXCPP sets CXXCPP — and this list already
carries the compiler pair CC/CXX for the same reason.
Measured on current main: CC, CXX and CPP all report dangerous, while
CXXCPP lands in no category at all (blockedPrefixes is only DYLD_, LD_
and BASH_FUNC_, so no prefix rule covers it either).
2026-07-27 23:58:41 -04:00
haruai
b168e4b5ed
fix: align macos remote url validation copy ( #98548 )
...
* fix: align macos remote url validation copy
* fix(macos): match remote URL guidance to policy
Co-authored-by: haruaiclone-droid <281899875+haruaiclone-droid@users.noreply.github.com >
* chore(i18n): refresh native source inventory
Co-authored-by: haruaiclone-droid <281899875+haruaiclone-droid@users.noreply.github.com >
---------
Co-authored-by: haruaiclone-droid <281899875+haruaiclone-droid@users.noreply.github.com >
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-27 23:18:41 -04:00
Peter Steinberger
981b4cc3fe
fix(mac): redesign onboarding remote-gateway detail section ( #114494 )
...
* fix(mac): redesign onboarding remote-gateway detail section
* chore(i18n): refresh native inventory for onboarding redesign
2026-07-27 06:36:02 -04:00
Peter Steinberger
5a8db91459
fix(macos): keep polling gateway-executed wizard steps ( #114383 )
...
* fix(macos): keep polling gateway-executed wizard steps
* docs(ui): note the prebuilt control-UI bundle in live verification
* test(macos): fail fast when gateway progress polling stalls
* chore(i18n): refresh native source inventory anchors
2026-07-27 04:33:09 -04:00
Peter Steinberger
9eae43bd37
refactor(infra): move exec approvals into the shared SQLite state DB ( #114063 )
...
* refactor(infra): move exec approvals into the shared SQLite state DB
Delete the file-runtime exec-approvals store (exec-approvals.json + .lock
sidecar machinery) on both runtimes and make the reserved
exec_approvals_config singleton row canonical. Doctor owns the one-time
import with claim/verify/receipt discipline; runtime fails closed with a
doctor instruction while un-migrated legacy state exists. The wire CAS
contract, socket semantics, and gateway auth-token derivations are
unchanged. Kills the #113929 lock-contention bug class structurally and
nets around -2.9k lines.
* fix(infra): green CI gates and retire file-era exec approvals tests
Break the migration-type import cycle with a leaf contract, regenerate the
plugin-SDK API and native i18n baselines for the intentional surface change,
drop unused exports, and replace the macOS file-era approvals test suite with
SQLite-backed behavior coverage per the obsolete-internals test policy.
* chore: green max-lines ratchet, native i18n baseline, and unused-export scan
2026-07-26 06:39:23 -04:00
Peter Steinberger
f0b7542a22
feat(mac): gateway menu-bar surfaces and Gateways main menu ( #114038 )
...
* feat(mac): add gateway menu surfaces
* docs(mac): document gateway menu surfaces
* test(mac): make dashboard frame assertions display-independent
2026-07-26 02:13:13 -04:00
Peter Steinberger
adfb59c19b
feat(mac): dashboard gateway picker with in-place switching ( #113965 )
...
* feat(mac): add dashboard gateway switching
* feat(ui): add dashboard gateway picker
* docs(mac): document dashboard gateway picker
* fix(mac): harden gateway switching after review
* fix(ui): refresh gateway picker snapshots
* fix(mac): carry TLS pins through promotion and serialize gateway switches
* style(ui): satisfy lint rules in gateway picker files
* fix(ui): tolerate absent context in gateway picker pane props
* chore(ci): refresh generated inventories
* style(mac): satisfy Swift CI checks
* refactor(mac): drop dead GatewayEndpointStore.requireConfig
* perf(ui): own gateway capability in the chat chunk
* chore(ui): keep gateway capability factory module-private
2026-07-25 20:57:28 -07:00
Peter Steinberger
af44cb1a72
feat(native): show Swarm progress in chat ( #113850 )
...
* feat(native): show swarm progress
* fix(native): align swarm progress lifecycle
* chore(native): shorten swarm progress source name
* style(macos): pad swarm progress surfaces
* chore(native): use compact swarm source name
* fix(native): harden swarm route ownership
* fix(native): preserve swarm render ownership
* chore(i18n): refresh native swarm inventory
* fix(native): bound swarm refresh ownership
* fix(native): remove unused swarm capability initializer
2026-07-25 15:11:19 -07:00
openclaw-mantis[bot]
92e404176b
chore(i18n): refresh native locales ( #113493 )
...
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-07-25 20:33:38 +08:00
Peter Steinberger
7e80f36723
fix(apps): restore live session updates after native reconnects ( #113634 )
...
* fix(apps): replay session visibility across native reconnects
* fix(apps): refresh shifted native i18n source lines
---------
Co-authored-by: Peter Steinberger <steipete@golden-gate.local >
2026-07-25 04:58:41 -07:00
Peter Steinberger
c30c07071f
feat(setup): download-model actions on web and macOS onboarding ( #113476 )
...
* feat: add local model download setup actions
* chore(i18n): refresh native source inventory
* fix(setup): satisfy model setup lint checks
2026-07-24 20:52:58 -07:00
Pavan Kumar Gondhi
1fc81c2054
fix: reusable exec approvals apply to approved arguments ( #112946 )
...
* fix: bind allow-always exec approvals to argv
* test: update exec approval persistence expectations
* fix: hash reusable exec approval arguments
* test: pin POSIX exec approval hash expectation
* fix: match hashed exec approvals in macOS
* fix: encode exec approval argv hashes unambiguously
* fix: bind native exec approval grants to argv
* test: expect hashed exec approval patterns
* fix: ignore legacy broad exec approval grants
* fix: hash shell script allow-always grants
* fix: require argv binding for package manager grants
* fix: bind positional carrier approval grants
* fix: address approval check failures
* fix: format approval policy test
* fix: reject context-changing package manager grants
* fix: keep build-enabled pnpm dlx grants one-shot
* fix: reject npm exec context grants
* fix: catch npm exec tail context options
* fix: block npm package context approvals
* fix: block leading pnpm dlx context grants
* fix: restrict durable positional carrier grants
* docs: clarify generated exec approvals
* fix: block post-dlx pnpm context grants
2026-07-24 15:38:38 +05:30
Pavan Kumar Gondhi
ab2ad22533
fix: block cpp host env overrides ( #112560 )
2026-07-22 19:54:24 +05:30
Peter Steinberger
9f501c77a6
fix(macos): migrate legacy Gateway profiles ( #112629 )
2026-07-22 05:08:45 -07:00
Peter Steinberger
62a6dfb082
fix(macos): direct Gateway TLS pins protect operator traffic ( #112353 )
...
* fix(macos): enforce direct Gateway TLS pins
* fix(macos): preserve existing TLS pin owner keys
* fix(macos): reuse localized TLS error labels
* test(macos): avoid nested Swift Testing require
* test(macos): isolate TLS Keychain tests
* test(macos): isolate TLS integration Keychain
* chore(i18n): update native source inventory
2026-07-22 03:38:10 -07:00
Peter Steinberger
88bf2d3350
test(macos): isolate flaky gateway and worker tests ( #112563 )
2026-07-22 00:37:58 -07:00
Peter Steinberger
9231bcb38f
fix(macos): keep permissions reachable on short screens ( #112507 )
...
* fix(macos): keep permissions reachable on short screens
* fix(macos): preserve onboarding i18n inventory
2026-07-21 21:53:07 -07:00
github-actions[bot]
a8537805bd
chore(i18n): refresh native locales
2026-07-22 10:22:42 +08:00
Peter Steinberger
c84921634d
fix(macos): require explicit consent for privacy-sensitive access ( #112321 )
...
* fix(macos): avoid passive Automation prompts
* fix(macos): keep Voice Wake recognition on device
* fix(macos): require consent for activity presence
* chore(apps): refresh native i18n inventory
* fix(macos): preserve presence clears across gateway versions
* fix(macos): prioritize activity privacy opt-out
* chore(apps): refresh native i18n inventory
* fix(macos): scrub legacy presence activity
* fix(macos): migrate permission status caller
* fix(macos): preserve unknown permission state
* fix(macos): refresh privacy change artifacts
* refactor(macos): remove stale presence helper
* fix(deps): patch URI and Jaeger advisories
* test(gateway): adopt pairing-bound node sessions
2026-07-21 15:28:13 -07:00
Jason (Json)
35e058711d
fix(macos): reuse gateway with path advisory ( #112381 )
2026-07-21 15:17:47 -06:00
Peter Steinberger
bd03b4d658
fix(i18n): regenerate native locale artifacts after Android inventory drift
2026-07-21 14:15:31 -07:00
Peter Steinberger
8f31892b55
feat(apps): native session branch switcher with branch-safe durable outbox ( #112056 )
...
Branch menu (list/switch) for macOS+iOS shared chat via sessions.branches.*;
rewind/fork/switch gated on run activity and pending outbox work through a
durable session-mutation lease; outbox rows carry branch-epoch ownership with
local-only flush checks, atomic confirm/park transitions, attempt-versioned
delivery callbacks, fresh retry identity for possibly-accepted rows, and
epoch-guarded branch evidence; 21-locale native translations for new strings.
2026-07-21 10:59:44 -07:00
Peter Steinberger
3a1351a303
fix(cron): show script automations across user clients ( #112195 )
...
* fix(cron): preserve script jobs across clients
* chore(i18n): refresh native cron strings
* chore(i18n): align rebased native catalogs
* chore(i18n): defer generated locale refresh
2026-07-21 08:02:59 -07:00
Papilionidae
3dfb4c9cd7
fix(anthropic): accept "cli" entrypoint in Claude session catalog discovery ( #105162 )
...
* fix(anthropic): accept "cli" entrypoint in Claude session catalog discovery
Claude Code v2.x writes entrypoint: "cli" in its JSONL session files.
Previously only "sdk-cli" was recognized, causing all v2.x sessions to
be silently skipped.
Extract CLI_ENTRYPOINTS set and isCliEntrypoint() helper, then apply
the same fix to both TypeScript catalog and macOS paired-node native
catalog. Add matching regression coverage on both platforms.
Closes #105164
* fix(anthropic): refresh Claude CLI session discovery
Apply the reviewed cli/sdk-cli allowlist, mirrored negative coverage, and fallback-scope documentation to current main.
Co-authored-by: 黄攀0668000858 <huang.pan@xydigit.com >
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-21 07:14:42 -07:00
liuhao1024
cd38cdef05
fix(macos): respect OPENCLAW_STATE_DIR in openclaw-mac CLI config resolution ( fixes #98591 ) ( #98631 )
...
* fix(macos): resolve OPENCLAW_STATE_DIR in openclaw-mac CLI config resolution
Add shared resolveOpenClawConfigURL() to GatewayConfig.swift with
precedence: OPENCLAW_CONFIG_PATH > OPENCLAW_STATE_DIR > default home.
Switch ConfigureRemoteCommand and loadGatewayConfig to use it.
Add focused tests for all three precedence paths.
* fix(macos): honor state directory in openclaw-mac
Use one normalized config resolver for connect, wizard, and configure-remote, with explicit config path precedence over the selected state directory.
Co-authored-by: liuhao1024 <sunsky.lau@gmail.com >
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-21 05:59:21 -07:00
Vincent Koc
d4021c351c
fix(macos): localize settings surfaces ( #112185 )
2026-07-21 16:15:40 +08:00
Vincent Koc
9e0c5f94b5
fix(macos): support background-only launches ( #112168 )
...
* fix(macos): support background-only launches
* fix(macos): refresh native i18n inventory
* fix(i18n): refresh native inventory after main sync
2026-07-21 15:41:49 +08:00
Peter Steinberger
6d1c215a78
fix(macos): reject public plaintext Gateway profiles ( #112161 )
...
* fix(macos): reject public ws gateway profiles
* fix(macos): normalize bracketed private IPv6 hosts
* test(macos): preserve bracketed localhost policy
2026-07-21 00:35:13 -07:00
Peter Steinberger
f06b6be182
feat(macos): manage Gateway profiles and multiple windows ( #111986 )
...
* feat(macos): manage gateway profiles and windows
* fix(macos): preserve gateway settings localization
* fix(deps): update axios past security advisory
2026-07-20 18:10:02 -07:00
Peter Steinberger
49ff6a4497
fix(protocol): classify system agents in rosters ( #111920 )
...
* fix(protocol): classify system agents in rosters
* fix(ci): align agent kind client gates
* fix(ci): keep roster filtering in startup bundle
* chore(ui): remove superseded roster module
* style(android): satisfy agent kind test formatting
* style(linux): format merged agent capability assertion
* fix(config): reject reserved system agent ids
* chore(i18n): refresh native source inventory
* style(android): format agent kind surfaces
* fix(gateway): preserve configured agent ownership
2026-07-20 16:57:04 -07:00
Peter Steinberger
a52eb2134b
feat(apps): connect multiple gateways simultaneously ( #111932 )
...
* feat(apps): support simultaneous gateways
* fix(apps): satisfy multi-gateway checks
* chore(apps): refresh multi-gateway baselines
* style(android): format gateway fleet code
2026-07-20 13:06:29 -07:00
Peter Steinberger
38df399ed8
fix(macos): show local ClickClack session discussions ( #111883 )
...
* fix(macos): show local ClickClack session discussions
* fix(macos): support loopback aliases in discussion embeds
* fix(macos): allow trusted hosted ClickClack embeds
* fix(macos): trust only dashboard-initiated discussion frames
2026-07-20 09:33:27 -07:00