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
Peter Steinberger
1e3a4a69b5
fix: preserve native trace heading typography ( #103436 )
...
* fix(ios): preserve native trace heading typography
* test(ios): attach trace heading visual proof
* test(ios): import shared chat UI for visual proof
2026-07-28 00:01:44 -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
dependabot[bot]
9fbbe2cc98
build(deps): bump the swift-deps group across 1 directory with 2 updates ( #114452 )
...
Bumps the swift-deps group with 2 updates in the /apps/macos directory: [github.com/steipete/peekaboo](https://github.com/steipete/Peekaboo ) and [github.com/pointfreeco/swift-concurrency-extras](https://github.com/pointfreeco/swift-concurrency-extras ).
Updates `github.com/steipete/peekaboo` from 3.9.6 to 3.9.8
- [Release notes](https://github.com/steipete/Peekaboo/releases )
- [Commits](https://github.com/steipete/Peekaboo/compare/v3.9.6...v3.9.8 )
Updates `github.com/pointfreeco/swift-concurrency-extras` from 1.4.0 to 1.4.1
- [Release notes](https://github.com/pointfreeco/swift-concurrency-extras/releases )
- [Commits](https://github.com/pointfreeco/swift-concurrency-extras/compare/1.4.0...1.4.1 )
---
updated-dependencies:
- dependency-name: github.com/steipete/peekaboo
dependency-version: 3.9.8
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: swift-deps
- dependency-name: github.com/pointfreeco/swift-concurrency-extras
dependency-version: 1.4.1
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: swift-deps
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-27 21:58:03 -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
64bf485ba2
fix(sessions): scope observer state by agent
2026-07-27 05:43:19 -04:00
Peter Steinberger
51f228f6fe
fix(ui): preserve agent-owned session navigation
...
Add agent ownership to observer digests, scope global observer delivery and reconciliation, and centralize application session selection across navigation and reconnects.
Co-authored-by: xbrxr03 <abrarhabib03@gmail.com >
2026-07-27 05:43:19 -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
Vincent Koc
d338b348c5
test(macos): await prepare wizard progress ( #113682 )
2026-07-25 21:31:21 +08: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
Vincent Koc
509a5f0373
fix(sqlite): reject schema data loss during upgrades ( #113473 )
...
* fix(sqlite): reject schema data loss during upgrades
* test(macos): align native state schema boundary
2026-07-25 12:22:02 +08: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
Peter Steinberger
acd92f6a3d
chore(deps): refresh repository dependencies ( #112453 )
...
* build(deps): update QA broker dependency
* build(deps): refresh repository dependencies
* build(deps): reconcile rebased shrinkwraps
* test(plugins): remove stale loader test state
* test(deps): stabilize updated dependency coverage
* fix(swift): use caller-isolated TaskLocal overload
* build(deps): regenerate rebased shrinkwraps
* test(msteams): preserve DNS validation in fetch helper
* fix(deps): avoid vulnerable optional image stack
* test(deps): validate generated LRU override
* refactor(ui): extract chat resizable divider
* test(ui): update divider ownership path
* fix(matrix): retain restart-compatible SDK
* style(cron): format update test
2026-07-23 16:17:13 +00:00
Peter Steinberger
692310de0b
test(macos): stabilize parallel Swift tests ( #112651 )
...
* test(macos): stabilize parallel Swift tests
* test(macos): use async catalog start barrier
* test(macos): expose identity test seam
2026-07-22 09:04:25 -07:00
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
0b080b9c2e
feat(apps): native session-list observer digests on iOS, Android, and macOS ( #112597 )
...
* feat(apps): native session-list observer digests on iOS, Android, and macOS
* fix(apps): satisfy swift, periphery, and lint gates for native digests
2026-07-22 01:53:29 -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