Commit Graph

73704 Commits

Author SHA1 Message Date
Vincent Koc dcae280db6 Merge remote-tracking branch 'origin/audit/macos-accessibility-followup' into audit/macos-accessibility-land-116026
* origin/audit/macos-accessibility-followup:
  fix(ui): dismiss picker after focus leaves widget
  fix(ui): keep picker trigger inside focus boundary
  test(ui): split terminal accessibility coverage
  test(ui): cover terminal picker pointer paths
  chore: leave accessibility notes to release prep
  fix(ui): type terminal shadow focus checks
  fix(ui): make terminal session picker keyboard accessible
2026-07-30 04:16:32 +08:00
salvormallow 73b5e7aab4 fix(hooks): save memory on automatic session rollover (#61675)
* fix(hooks): persist memory on session rollover

Co-authored-by: salvormallow <15044561+salvormallow@users.noreply.github.com>

* fix(hooks): persist memory on automatic session reset

* fix(hooks): keep auto-reset reason internal

* fix(hooks): retain auto-reset memory admission

* fix(hooks): make session rollover return explicit

* test(hooks): track session memory temp dirs

* fix(hooks): satisfy session memory return contract

---------

Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
2026-07-30 04:13:26 +08:00
Vincent Koc b0a091644f fix(macos): prevent app stalls from stuck subprocess probes (#115938)
* refactor(macos): pin subprocess groups through cleanup

* refactor(macos): keep bounded process probes async

* test(macos): cover async process probe limits

* fix(macos): preserve local gateway version fallback

* test(macos): cover gateway version probe fallback

* fix(macos): handle subprocesses that exit before monitoring

* test(macos): stress instant bounded process exits

* fix(macos): close bounded process exit registration race

* fix(macos): preserve bounded probe output ordering

* fix(macos): propagate bounded process cancellation

* fix(macos): recover missed subprocess exit events

* chore(macos): refresh native i18n inventory

* fix(macos): reject invalid process argument bytes
2026-07-29 20:12:35 +00:00
Peter Steinberger 25d3c39130 fix(protocol): allow config hint documentation URLs (#116063) 2026-07-29 16:09:11 -04:00
Shakker 4849ec4982 fix: clear partial Talk startup state (#116067) 2026-07-29 21:08:21 +01:00
Shakker a7e881d14f docs: note Talk session isolation 2026-07-29 21:08:21 +01:00
Shakker cae9a61f6d refactor: keep Talk reset internal 2026-07-29 21:08:21 +01:00
Shakker c1438475eb test: cover realtime Talk teardown 2026-07-29 21:08:21 +01:00
Shakker 8671148999 fix: isolate realtime Talk sessions 2026-07-29 21:08:21 +01:00
Vincent Koc 702892e1c3 fix(ui): dismiss picker after focus leaves widget 2026-07-30 03:58:24 +08:00
Peter Steinberger 0021e51f22 feat(apple): media renditions, Now Playing, video upload (#116051)
* feat(apple): complete media playback and uploads

* fix(apple): preserve movie picker metadata

* fix(apple): harden rendition and picker routing

* style(apple): fix macOS media formatting
2026-07-29 15:50:18 -04:00
Peter Steinberger e1cc617f86 feat(android): media renditions, MediaSession, video upload (#116037)
* feat(android): add media rendition and video support

* chore(android): refresh native i18n inventory

* fix(android): opt in to Media3 command API

* chore(android): sync native i18n source locations
2026-07-29 15:44:04 -04:00
Peter Steinberger d6f9affe79 feat(cli): run agent exec against the ambient config, composed in memory (#116038)
* feat(cli): run agent exec against the ambient config, composed in memory

Exec previously ignored the operator's config entirely, so a one-shot turn
could not reach configured providers, credentials, or agentRuntime harness
selection. It now layers config the way other folder-scoped coding CLIs do.

The composed config is published as this process's runtime snapshot rather
than serialized to a temp file and re-read through OPENCLAW_CONFIG_PATH. The
snapshot is the only in-process config cache, so the file only ever fed it --
while writing env-substituted provider keys to disk where the run's own exec
tool could read them.

* fix(cli): resolve exec stored credentials from the configured agent dir

* chore(scripts): allow agent exec the file-scoped config loader at its process boundary

* test(cli): cover the exec credential default and pinned-config flags
2026-07-29 15:38:27 -04:00
mikasa d2f2123da5 fix #95351: [Feature]: Generic JSONL line-parsing hook for CliBackendPlugin (native tool-card support beyond claude-stream-json) (#95386)
* feat(plugin-sdk): add CLI backend JSONL parser hook

* fix(test): isolate non-git workspace fixtures

---------

Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
2026-07-30 03:37:39 +08:00
Stellar鱼 42e23c11e0 feat(plugins): allow per-turn tool narrowing in prompt hooks (#114151)
* feat(plugins): allow per-turn tool narrowing in prompt hooks

* fix(hooks): keep prompt tool policy baseline internal

* fix(test): track active tools in embedded session fixture

* test(agents): preserve active tool fixture state

---------

Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
2026-07-30 03:28:45 +08:00
Vincent Koc 8a4f891450 docs(hooks): mark pairing hook observation-only (#116055) 2026-07-30 03:27:36 +08:00
Vincent Koc 2ad7427e16 fix(ui): keep picker trigger inside focus boundary 2026-07-30 03:27:24 +08:00
Peter Steinberger 03a2c8208d docs(control-ui): document composer capability menu (#115858)
* docs(control-ui): document composer capability menu

* docs(control-ui): explain tool access discovery states

* docs(map): regenerate docs map
2026-07-29 15:26:56 -04:00
Jason (Json) 3f6f172873 fix(build): bound declaration memory use (#116021) 2026-07-29 13:25:47 -06:00
Kevin Lin ec32f181a1 fix: Slack replies recover after gateway startup replay (#115991)
* fix: diagnose prepared model owner config drift

* fix(gateway): bind replies to published model owner

* fix(gateway): bind durable replay to published owner

* test: preserve requested workspace in reply mock
2026-07-29 12:25:45 -07:00
sunlit-deng 066241a0d0 fix(azure-speech): keep valid voices from malformed catalogs (#115067)
Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
2026-07-30 03:20:22 +08:00
Jason (Json) 46ec7a43a8 fix(agents): prevent model runtime startup timeout (#116039) 2026-07-29 13:17:07 -06:00
Peter Steinberger e0ab154e5e fix(ui): explain unavailable MCP tool catalogs (#115994)
* fix(ui): explain undiscovered MCP tools

* fix(ui): scope MCP discovery notices to the viewed connector
2026-07-29 15:12:08 -04:00
Peter Steinberger 2366d354d9 fix(skills): run experience review outside released request roots (#116040) 2026-07-29 15:07:58 -04:00
Peter Steinberger ca07207649 docs(security): add safe Gmail reader setup (#116041)
* docs(security): add safe Gmail reader setup

* docs: leave release notes to release flow

* docs: refresh documentation map
2026-07-29 15:07:35 -04:00
Shakker 052212dc97 chore: refresh browser gateway runtime (#116043) 2026-07-29 20:05:56 +01:00
Shakker 2cdedd7eeb test: isolate gateway sequence lifecycle coverage 2026-07-29 20:05:56 +01:00
Shakker e7547d470c docs: note gateway reconnect sequence fix 2026-07-29 20:05:56 +01:00
Shakker 403a9b778b test: cover gateway sequence reset on restart 2026-07-29 20:05:56 +01:00
Shakker dbcd479007 test: cover gateway sequence reset on reconnect 2026-07-29 20:05:56 +01:00
Shakker ab3f52c367 fix: reset gateway event sequence on reconnect 2026-07-29 20:05:56 +01:00
Josh Lehman 6beaff450e fix(codex): avoid transcript mirror snapshot churn (#115070) 2026-07-29 11:59:14 -07:00
Peter Steinberger 5d02f42709 fix(test): stop cross-file state leaks in media suites (#116027) 2026-07-29 14:58:54 -04:00
Ryan Hughes 9560e17185 feat(hooks): add persistent hook session mode (#75918)
* feat(hooks): add explicit persistent sessions

* fix(hooks): validate persistent mapping session keys

* chore: leave persistent hooks note to release process

---------

Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
2026-07-30 02:57:28 +08:00
Vincent Koc 14e65ab6b3 test(ui): split terminal accessibility coverage 2026-07-30 02:54:10 +08:00
Vincent Koc 83aca8a59c fix(memory): return early for blank searches (#116034) 2026-07-30 02:48:50 +08:00
Nikolai Melekhin c709aa7787 fix(tool-search): long-lived gateways leak heap from finished embedded runs (#114767)
* fix(tool-search): long-lived gateways leak heap from finished embedded runs

applyToolCatalogCompaction remembered a reusable catalog snapshot for
hook-bound (run-scoped) catalogs even though their identity-pinned
fingerprint can never match a later run's rebuilt tools, so every
embedded run parked ~1.7 MB of finished run graph in the process-global
map until the 256-slot eviction. Skip the reusable-snapshot path when a
toolHookContext is present; hook-context-free callers keep the #86887
cross-run reuse unchanged.

* fix(tool-search): correct premise-assert types flagged by check-test-types

expectDefined takes a label argument in this repo and entry.tool is
CatalogTool; use the file's existing idioms (labelled expectDefined,
AnyAgentTool cast) so the tsgo test lane passes.

* fix(tool-search): cover hook-bound snapshot owners

Port the leak fix onto the current run-owned catalog boundary, derive cache eligibility from actual wrapped entries, cover prewrapped harness tools, and add the release note.

* chore(tool-search): keep release note in PR context

---------

Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
2026-07-30 02:48:31 +08:00
Vincent Koc 8d6dae1e81 test(ui): cover terminal picker pointer paths 2026-07-30 02:46:37 +08:00
Peter Steinberger 3f4d65a672 feat(harness): report copilot code-mode engagement on the attempt result (#115913)
* feat(harness): report copilot code-mode engagement on the attempt result

* test(copilot): prove code-mode engagement through the production tool bridge

* docs: describe the normalized codeModeEngaged value for native harnesses
2026-07-29 14:44:15 -04:00
Peter Steinberger b240703cfc fix(ui): compact the macOS gateway picker menu (#115977)
* fix(ui): compact native gateway menu

* chore: leave changelog to release automation

* test: stabilize UI and CLI process checks
2026-07-29 14:42:18 -04:00
Vincent Koc 6ef0beaa60 Merge pull request #115951 from openclaw/refactor/isrecord-cleanup-final-20260729
refactor: reuse canonical record guards
2026-07-30 02:36:19 +08:00
WhatsSkiLL d4436e9a17 perf(codex): stream large CLI session JSONL scans (#115997)
* fix(codex): stream CLI session JSONL scans

* perf(codex): scan JSONL in bounded chunks

* perf(codex): keep small JSONL reads fast

* perf(codex): avoid rescanning long rollout records

* test(codex): prove streamed rollout recovery

* refactor(codex): isolate JSONL line scanning

* fix(codex): avoid env ratchet token in relay constant

---------

Co-authored-by: IWhatsskill <284122573+IWhatsskill@users.noreply.github.com>
Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
2026-07-30 02:35:41 +08:00
RogueL90 499d48edbb cron: reject webhook URLs with embedded credentials (#51822)
* cron: reject webhook URLs with embedded credentials

* fix(cron): reject credential-bearing webhook URLs

* chore: leave cron webhook note to release process

---------

Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
2026-07-30 02:32:32 +08:00
Vincent Koc 925bea1fd0 chore: leave accessibility notes to release prep 2026-07-30 02:20:37 +08:00
Vincent Koc e677b8cbc8 fix(ui): type terminal shadow focus checks 2026-07-30 02:19:21 +08:00
Peter Steinberger 97d374b357 refactor(agents): remove retired Codex CLI parser (#116017) 2026-07-29 14:14:41 -04:00
Peter Steinberger 777cfed85a feat(mac): hand off gateway-owned settings panes to the dashboard (#115999)
* feat(mac): hand off gateway-owned settings panes to the dashboard

Gateway-config Settings tabs (Channels, Skills, Cron Jobs, Threads,
Instances) now default to a native handoff page with an Open in Dashboard
deep link; a Debug toggle re-enables the legacy native panes. Adds an
openclaw:native-navigate host->shell event with generation-guarded URL
fallback, and lifts the dashboard route map + same-app path validation
into OpenClawKit for future iOS reuse. Exec Approvals stays native: the
Dashboard's host-native policy editor is read-only by contract.

* fix(mac): satisfy native-i18n inventory and type budget

* fix(mac): refresh native i18n source locations
2026-07-29 14:12:42 -04:00
Vincent Koc 1294df882a fix(ui): make terminal session picker keyboard accessible 2026-07-30 02:06:44 +08:00
Peter Steinberger ff72f287c3 fix(gateway): declare viewer presence explicitly instead of deriving it from subscriptions (#116001)
* fix(gateway): declare viewer presence explicitly instead of deriving it from subscriptions

* refactor(ui): isolate viewer presence lifecycle ownership

* chore(protocol): register viewer presence schema owner

* fix(ui): keep viewer presence cleared after detach

* chore: drop changelog edits from this PR

CHANGELOG.md is release-owned; release generation derives entries from merged
PRs. Release-note context stays in the PR body.
2026-07-29 13:56:54 -04:00
Vincent Koc fa570d8ed3 test(plugins): include dreaming sidecar in startup expectation (#116018)
(cherry picked from commit cbb3c420db)

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-30 01:52:25 +08:00