65222 Commits

Author SHA1 Message Date
Shakker
fc05a8103b fix: restore translated docs tooltip (#101017) 2026-07-08 14:51:26 +01:00
Shakker
d9e44714e6 fix: preserve theme mode cycling 2026-07-08 14:51:26 +01:00
Shakker
43bcd9ab3e fix: normalize terminal availability 2026-07-08 14:51:26 +01:00
Shakker
8190b3bd16 fix: align sidebar branding controls 2026-07-08 14:51:26 +01:00
Shakker
dc6550d6e5 fix: restore Control UI topbar and breadcrumbs 2026-07-08 14:51:26 +01:00
vyctorbrzezowski
8295a12a83 improve(ui): move shell controls into side rails 2026-07-08 14:51:26 +01:00
Pavan Kumar Gondhi
64015e71dd fix: harden web fetch HTML conversion [AI] (#102033)
* fix: harden web fetch html conversion

* fix: consume malformed html tag tails

* fix: consume invalid html tag spans

* fix: preserve html scanner edge cases

* fix: preserve title-only html fallback

* fix: harden html scanner malformed tokens

* fix: close html scanner review gaps

* fix: keep malformed html raw text hidden

* fix: keep html scanner comment content hidden

* fix: skip unsupported html attribute values

* fix: skip raw text from opener end

* fix: drop malformed html tag tails

* fix: preserve trailing slash href links

* fix: close html scanner review gaps

* fix: preserve literal less-than text

* fix: bound html render context nesting

* fix: drop bogus html closing tags

* fix: handle abrupt html comments

* fix: remove dead html scanner branches

* fix: close quoted self-closing html tags

* fix: track anchor text incrementally

* fix: ignore quoted raw text markers

* fix: close title contexts through literal markup

* fix: close anchors through nested contexts

* fix: close nested HTML contexts consistently
2026-07-08 18:58:38 +05:30
Pavan Kumar Gondhi
e25fa79c5d fix: gate Gateway message action requester provenance [AI] (#102031)
* fix: gate message action requester provenance

* fix: preserve trusted gateway action context

* fix: preserve message action effective scopes

* chore: refresh gateway protocol swift model

* fix: keep swift message action init additive

* fix: avoid message action wire shape change

* fix: downscope non-owner message action bridge

* fix: keep cli message actions least privileged

* fix: downscope message action runtime scope

* fix: normalize message action bridge provenance
2026-07-08 18:28:25 +05:30
Pavan Kumar Gondhi
3101aa31ca fix: restrict non-owner gateway tool inventory [AI] (#102030)
* fix: restrict non-owner gateway tool inventory

* fix: clarify non-owner gateway tool policy
2026-07-08 18:21:38 +05:30
Peter Steinberger
4bf70be01a feat(secrets): egress-time credential injection with process-local sentinels (#102009)
* feat(secrets): resolve SecretRef model credentials at egress via process-local sentinels

SecretRef-managed model-provider credentials now travel as opaque
oc-sent-v1 sentinels through auth storage, stream options, and SDK
config; the guarded model fetch injects real values into headers and
URLs immediately before the SSRF-guarded send and fails closed on
unknown sentinels. packages/ai adapters converge on the host guarded
fetch where the SDK supports custom fetch and unwrap at construction
where it does not. Resolved values (and their percent-encoded forms)
register for exact-value log redaction. Kill switch:
OPENCLAW_SECRET_SENTINELS=off. Also fixes a pre-existing unhandled
rejection race in capNonOkResponseBodyLazily (pipeThrough writer leak).

* test(plugin-sdk): update public surface budget
2026-07-08 12:56:41 +01:00
Peter Steinberger
83ebbcb3ac fix(crabbox): retry cold metadata probes so a slow run --help does not block validation (#102159)
The wrapper probes `crabbox --version` and `crabbox run --help` once each with a
snappy 5s timeout to enumerate providers before delegating. A cold Crabbox — the
first call right after a version bump, or one on a loaded machine — can exceed
that timeout while rendering `run --help` (52KB, emitted on stderr in 0.36) or
doing first-run init, and can emit nothing on that first call. When that happens
both guards fire and hard-exit the wrapper ("selected binary failed basic
--version/--help sanity checks" or "could not parse provider list from --help;
refusing to run"), which blocks ALL remote validation (`pnpm check:changed`,
remote `pnpm test` lanes) even though the binary is fine.

Retry each metadata probe once with a generous 20s timeout when the first attempt
is killed or returns empty. The warm path is unchanged (one ~instant probe); only
a slow/empty first probe pays for the retry, after which the sanity/provider-list
guards judge the recovered result. Add a regression test: a fake Crabbox whose
`run --help` is slower than the default probe timeout (and, like 0.36, writes help
to stderr) is now recovered by the retry instead of hard-failing.
2026-07-08 12:53:48 +01:00
Alex Knight
bd4d4c0d31 fix(state): close agent-db and proxy-capture SQLite handles on exit; rebind stale proxy stores after shared-state close (#100827)
* fix(state): close cached SQLite state and agent databases on process exit

* refactor(state): pair SQLite exit-close with cache lifecycle and rebind stale proxy-capture stores

* fix(cli): register debug-proxy finalize before the state DB exit hook

* refactor(state): narrow to agent-db and proxy-capture exit lifecycle after #100691 landed shared-state close

---------

Co-authored-by: Alex Knight <15041791+amknight@users.noreply.github.com>
2026-07-08 21:48:18 +10:00
Pavan Kumar Gondhi
58891c85b6 fix: detect joined inline eval flags [AI] (#101353)
* fix: detect joined inline eval flags

* fix: avoid joined eval flag false positives

* fix: detect clustered inline eval flags

* fix: avoid cluster matcher string spread

* fix: cover common eval flag clusters

* fix: cover ruby perl eval clusters

* fix: detect python x inline eval cluster

* fix: detect numeric eval clusters

* fix: cover ruby perl eval clusters
2026-07-08 15:49:54 +05:30
Pavan Kumar Gondhi
5f04dc97e6 Harden jq safe-bin semantics (#102032) 2026-07-08 15:43:37 +05:30
joshavant
4ae8d735bf chore(ios): prepare 2026.7.1 release notes 2026-07-08 02:51:58 -05:00
joshavant
89c42e58fb fix(ios): satisfy SwiftFormat in session filter 2026-07-08 02:48:42 -05:00
joshavant
17fafcc901 chore(android): prepare 2026.7.1 Play release 2026-07-08 02:47:55 -05:00
Vincent Koc
7e0324263b fix(text): keep reachable truncation boundaries UTF-16 safe
Consolidates #102007, #101818, and #101782.

Co-authored-by: 杨浩宇0668001029 <yang.haoyu@xydigit.com>
Co-authored-by: NIO <nocodet@mail.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-07 23:37:52 -07:00
Vincent Koc
fc4626c122 refactor(zalo): localize internal declarations (#102065) 2026-07-07 23:31:03 -07:00
Vincent Koc
c46e76cff7 refactor(voice-call): localize internal declarations (#102059) 2026-07-07 23:19:59 -07:00
Tran Quang
19f7b72a74 fix(voice-call): preserve per-call agent routing (#77763)
* fix(voice-call): preserve per-call agent routing

Co-authored-by: Tran Quang <randytran8800@gmail.com>

* chore: keep release notes in PR metadata

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
Co-authored-by: Peter Steinberger <peter@steipete.me>
2026-07-08 07:06:35 +01:00
LiLan0125
8cb9263692 fix(lobster): keep ordinary run/resume on default flow fields (#102036)
* fix(lobster): keep default flow fields on runner path

* fix(lobster): reject incomplete managed resume revisions

* fix(lobster): preserve explicit empty managed flow state

* fix(lobster): preserve cross-mode validation

---------

Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
2026-07-07 23:04:01 -07:00
Vincent Koc
6f6c3e2602 refactor(qqbot): localize internal declarations (#102048) 2026-07-07 23:01:33 -07:00
Peter Steinberger
8cbcc41ccb fix(ui): sync native approvals i18n baseline (#101771) 2026-07-08 06:48:26 +01:00
Vincent Koc
5a5b4c5b10 refactor(slack): localize internal declarations (#102044) 2026-07-07 22:39:20 -07:00
Vincent Koc
ee6c576e8f refactor(signal): localize internal declarations (#102042) 2026-07-07 22:28:42 -07:00
Vincent Koc
eb5d8f85c4 refactor(mattermost): localize internal declarations (#102040) 2026-07-07 22:18:19 -07:00
Vincent Koc
6319275232 refactor(line): localize internal declarations (#102037) 2026-07-07 22:05:30 -07:00
Alix-007
35d5ea069a fix(matrix): handle stdout/stderr stream errors in dependency commands (#101597)
* fix(matrix): handle stdout/stderr stream errors in dependency commands

* fix(matrix): type stream-error test process kill

* fix(matrix): harden dependency stream errors

* test(matrix): fix dependency stream test typings
2026-07-07 21:53:22 -07:00
Vincent Koc
039f8fb16d refactor(googlechat): localize internal declarations (#102029) 2026-07-07 21:46:39 -07:00
Vincent Koc
bdc1ce8ded refactor(plugins): localize internal declarations (#102021) 2026-07-07 21:32:59 -07:00
kasangyong
22376d80e1 fix(doctor): honor per-agent bootstrap profile in size check (#84424)
* fix(doctor): honor per-agent bootstrap profile in size check

* fix(doctor): thread defaultAgentId through structured bootstrap-size health check

The noteBootstrapFileSize note path was fixed in the previous commit.
This commit applies the same defaultAgentId threading to the registered
core/doctor/bootstrap-size health check in doctor-core-checks.ts, which
is used by doctor --lint and repair flows.  Adds an integration regression
test that places a 15 000-char AGENTS.md between the per-agent budget
(10 000) and the defaults budget (20 000) and asserts that a truncation
warning is emitted -- the test fails on main (defaults budget wins, no
warning) and passes after this patch (per-agent budget wins, warning).
Also updates three fixHint strings in the health check to name the
per-agent knob before the defaults fallback, matching the note-path tip
text from the previous commit.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix(doctor): preserve total-budget remediation guidance

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
2026-07-07 21:19:27 -07:00
Vincent Koc
827f2c4422 refactor(google-meet): localize internal declarations (#102010) 2026-07-07 21:02:55 -07:00
Vincent Koc
757d7a0de3 refactor(qa-lab): localize orchestration declarations (#102005) 2026-07-07 20:50:07 -07:00
Yzx
bf31035538 fix(gateway): log websocket handshake phase (#93402)
* fix(gateway): log websocket handshake phase

* fix(gateway): clarify websocket handshake phases
2026-07-07 20:31:51 -07:00
Vincent Koc
082bd45130 refactor(qa-lab): localize utility types (#101990) 2026-07-07 20:20:53 -07:00
Vincent Koc
a24f15dc4d refactor(qa-lab): localize evidence summary schemas (#101987) 2026-07-07 20:09:00 -07:00
mushuiyu886
5bdea31c94 fix(browser): keep Playwright truncation UTF-16 safe (#101761)
* fix(browser): keep Playwright truncation UTF-16 safe

* fix(browser): cover Chrome MCP snapshot truncation
2026-07-07 19:55:52 -07:00
Vincent Koc
7498c4dd6c refactor(qa-lab): localize confidence report types (#101980) 2026-07-07 19:54:03 -07:00
Vincent Koc
4bdf224442 refactor(qa-matrix): localize internal declarations (#101974) 2026-07-07 19:43:42 -07:00
Vincent Koc
6765eb0166 refactor(memory-core): localize internal declarations (#101969) 2026-07-07 19:31:25 -07:00
Momo
fdc98242a1 fix(ui): keep Workboard detail drawer actions in parity (#101658)
* Fix Workboard detail action parity

* test(ui): cover Workboard detail drawer actions

* fix(ui): satisfy Workboard action lint
2026-07-08 10:25:42 +08:00
Vincent Koc
d5e4ed93fa refactor(policy): localize internal declarations (#101963) 2026-07-07 19:17:22 -07:00
Zhiling Chen
11a0e54ddd improve(diagnostics-otel): make agent-duration histograms usable beyond 10s (#96592)
* improve(diagnostics-otel): tune duration/context histogram bucket boundaries

The openclaw.run.duration_ms, openclaw.harness.duration_ms, and
openclaw.context.tokens histograms used the SDK default bucket
boundaries. The default duration buckets top out at 10s, so agent runs —
which routinely take minutes — all collapse into the +Inf overflow
bucket, making p95/p99 latency meaningless without collector-side
reconfiguration.

Add explicit_bucket_boundaries advice via named constants, matching the
existing GEN_AI_*_BUCKETS convention in this file:
- AGENT_DURATION_MS_BUCKETS (1s … 1h) for the run and harness duration
  histograms, which share the same range.
- CONTEXT_TOKENS_BUCKETS on a token scale (1k … 2M). openclaw.context.tokens
  records context-window limit/used token counts (e.g. 128000), so the
  boundaries must cover real context sizes rather than small integers.

Adds a test asserting the three histograms advertise the expected
boundaries and that run/harness share the same set.

* fix(diagnostics-otel): preserve prior histogram buckets

---------

Co-authored-by: Harry Chen <zhiling.chen@binance.com>
Co-authored-by: Vincent Koc <25068+vincentkoc@users.noreply.github.com>
2026-07-07 19:13:05 -07:00
Vincent Koc
94da0a9813 refactor(whatsapp): localize internal types (#101959) 2026-07-07 19:05:16 -07:00
Vincent Koc
22ae651e9a fix(channels): keep native think menus responsive (#101926) 2026-07-07 18:58:39 -07:00
Vincent Koc
4115e832d8 refactor(matrix): localize internal types (#101954) 2026-07-07 18:54:32 -07:00
Vincent Koc
eb721b0b30 refactor(feishu): localize internal declarations (#101949) 2026-07-07 18:41:30 -07:00
Alix-007
5fd5bf2aee fix(google-meet): handle stdout/stderr stream errors in local audio bridge (#101596)
* fix(google-meet): handle stdout/stderr stream errors in local audio bridge

* test(google-meet): prove command bridge stream errors
2026-07-07 18:36:20 -07:00
Vincent Koc
99b24e7416 refactor(discord): localize internal declarations (#101945) 2026-07-07 18:28:35 -07:00