Commit Graph

65222 Commits

Author SHA1 Message Date
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
Jason (Json)
4e84981402 feat(crestodian): guide providerless model setup (#101887)
* feat(crestodian): guide providerless model setup

* fix(crestodian): avoid TUI message shadowing

* fix(crestodian): tighten provider setup handoff

* fix(crestodian): simplify model setup result

* fix(crestodian): audit committed config hash

* fix(crestodian): contain embedded wizard exits

* test(crestodian): auto-clean operation temp dirs
2026-07-07 19:24:54 -06:00
Vincent Koc
180ddf1ec5 refactor(gateway): localize terminal helper types (#101941) 2026-07-07 18:13:19 -07:00
Vincent Koc
ef91bb370b refactor(imessage): localize internal helper symbols (#101936) 2026-07-07 18:00:44 -07:00
Vincent Koc
81d0f3f372 refactor(memory-wiki): localize internal helper types (#101931) 2026-07-07 17:46:54 -07:00
zw-xysk
1aee742d23 fix(memory-core): guard supplement lookup in resolveMemoryReadFailureResult with try-catch (fixes #101809) (#101902)
* fix(memory-core): guard supplement lookup in resolveMemoryReadFailureResult with try-catch (fixes #101809)

* fix(memory-core): preserve primary read errors

---------

Co-authored-by: Vincent Koc <25068+vincentkoc@users.noreply.github.com>
2026-07-07 17:34:57 -07:00
Vincent Koc
c96c60d22d chore(plugin-sdk): refresh API baseline hash 2026-07-08 02:27:34 +02:00
Jason (Json)
2fbd4cdcba fix(installer): complete first-run onboarding (#101901)
* fix(installer): complete first-run onboarding

* docs(installer): document finalization paths

* fix(installer): honor verify without tty

* fix(installer): align config finalization
2026-07-07 18:23:56 -06:00
Vincent Koc
23cf16a7d5 refactor(oc-path): localize internal result types (#101925) 2026-07-07 17:23:18 -07:00
Vincent Koc
cc083e5f4f refactor(plugins): localize internal helper types (#101922) 2026-07-07 17:11:49 -07:00