Peter Steinberger
a914fcd1f7
fix(mac): hide duplicate Gateway in dashboard picker over SSH ( #115963 )
...
* fix(mac): dedupe active SSH gateway profile
* fix(mac): dedupe gateway before tunnel readiness
* chore(mac): defer release note to release process
2026-07-29 12:27:32 -04:00
Vincent Koc
e94693aa52
fix(macos): enable keyboard navigation in web views
2026-07-29 22:59:39 +08:00
Peter Steinberger
afae681085
feat(apple): add inline media players ( #115903 )
2026-07-29 10:36:38 -04:00
Vincent Koc
0686676ebd
perf(macos): reduce onboarding mascot redraw cadence ( #115896 )
2026-07-29 21:50:05 +08:00
Vincent Koc
592f81ca33
fix(macos): eliminate subprocess polling for SSH tunnel readiness ( #115846 )
...
* fix(macos): inspect tunnel listener sockets in process
* test(macos): cover exact process listener inspection
* fix(macos): scan listeners to the child fd limit
* refactor(macos): normalize libproc byte counts
* chore(macos): keep release notes in the PR
2026-07-29 21:48:52 +08:00
Vincent Koc
1c3e669f30
fix(macos): bound SSH tunnel teardown ( #115861 )
...
* fix(macos): bound SSH tunnel teardown
* test(macos): cover resistant tunnel process groups
* fix(macos): escalate surviving tunnel process groups
* chore(i18n): refresh macOS tunnel source offsets
* chore(macos): keep release notes in the PR
* refactor(macos): own SSH tunnel process lifecycle
* test(macos): stress tunnel teardown lifecycle
* fix(macos): unpublish tunnels before async teardown
* chore(i18n): refresh macOS tunnel source offsets
* test(macos): remove unused tunnel process accessor
* fix(macos): preserve tunnel launch diagnostics
* test(macos): cover tunnel launch failures
* chore(i18n): refresh tunnel diagnostic offsets
2026-07-29 21:47:25 +08:00
Vincent Koc
7d00787e20
fix(macos): skip unchanged config forensics ( #115886 )
...
* perf(macos): skip unchanged config forensics
* test(macos): cover config forensic read caching
* test(macos): make config metadata changes deterministic
2026-07-29 21:42:36 +08:00
Vincent Koc
cba59e4674
fix(macos): prevent remote discovery hangs during Tailscale checks ( #115852 )
...
* fix(macos): bound discovery subprocess execution
* refactor(macos): migrate tailscale discovery runner
* refactor(macos): make wide-area discovery asynchronous
* test(macos): prove discovery subprocess cleanup
* chore(macos): keep release notes in the PR
2026-07-29 21:38:57 +08:00
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