Commit Graph

66940 Commits

Author SHA1 Message Date
Sally O'Malley
b81666ca6a Fix container image upgrade migrations before gateway readiness (#101881)
* run all 'openclaw upgrade' migrations with container image upgrades

Signed-off-by: sallyom <somalley@redhat.com>

* fix: block gateway startup on plugin repair warnings

Signed-off-by: sallyom <somalley@redhat.com>

---------

Signed-off-by: sallyom <somalley@redhat.com>
2026-07-08 14:19:05 -04:00
Gio Della-Libera
aa27ae9d9f policy: preview review-required gateway repairs (#99776)
* policy: preview review-required gateway repairs

* docs(policy): document gateway review previews

* docs(policy): document gateway review previews

* docs(policy): document gateway review previews

* docs(policy): document gateway review previews

---------

Co-authored-by: Gio Della-Libera <giodl@microsoft.com>
2026-07-08 10:44:56 -07:00
Vincent Koc
0d86f64e60 fix(ci): stabilize Go and TUI PTY shards 2026-07-08 10:28:06 -07:00
Dallin Romney
f093c0f2e3 ci: temporarily disable QA smoke again (#102256) 2026-07-08 11:21:38 -06:00
Dallin Romney
8fa83d2742 refactor(gateway): consolidate client contracts (#101012) 2026-07-08 10:56:31 -06:00
Pavan Kumar Gondhi
534ace4d8a fix: bind package-manager exec approvals to inner commands [AI] (#102035)
* fix: bind package-manager exec approvals to inner commands

* fix: fail closed package manager exec approval gaps

* chore: refresh pr branch metadata

* fix: cover npm exec alias approvals

* fix: fail closed hidden package manager exec aliases

* fix: unwrap chained package manager approvals

* fix: cover yarn package manager approvals

* fix: preserve yarn run approval compatibility

* fix: bind package manager script argv checks

* test: fix package manager script argv type check

* fix: fail closed pnpm shorthand approvals

* fix: preserve pnpm built-in approvals

* fix: preserve pnpm script shortcuts

* fix: preserve npm cwd exec unwrapping

* fix: fail closed cwd and yarn package shorthands
2026-07-08 21:29:02 +05:30
(Not) Stephen Benjamin
c69724ef3b fix(skills): correct invalid install kinds in xurl and github [AI] (#102158)
* fix(xurl): use install kind "node" instead of invalid "npm" [AI]

The xurl skill's second installer declares kind "npm", which is not a
valid install kind. The installer switches on spec.kind with cases for
brew/node/go/uv/download and a default of "unsupported installer", so the
entry is dropped -- `openclaw skills info xurl` only offers the brew
option, leaving no install path on machines without Homebrew.

npm-backed installs use kind "node" (which honors
skills.install.nodeManager, default npm). Only kind is changed;
id/package/bins are left as-is.

Verified against openclaw 2026.6.11 in a container:

  before (kind: npm):  Install options: → Install xurl (brew)
  after  (kind: node): Install options: → Install @xdevplatform/xurl (npm)

* fix(github): drop non-functional "apt" install entry [AI]

The github skill's second installer declares kind "apt", which is not a
supported install kind (installer switch handles brew/node/go/uv/download
+ default "unsupported installer"). openclaw silently drops it -- `skills
info github` only ever surfaces the brew option -- so the entry is dead,
misleading metadata rather than a working Linux path.

The remaining brew installer is cross-platform (Homebrew runs on Linux),
so removing the dead entry loses no working path. Improving install paths
for Linux users without Homebrew is tracked separately in #57555
(needs-product-decision).
2026-07-08 11:07:09 -04:00
Kevin Lin
9eeebf7cb1 feat(release): preflight all extended-stable npm packages (#101757)
* feat(release): preflight all extended-stable npm packages

* fix(release): install packed ai runtime in smoke

* fix(release): install sibling tarballs before core

* fix(release): verify unpublished tarballs locally

* fix(release): declare local preflight dependencies

* fix(release): pack workspace dependencies for smoke

* fix(release): accept pnpm pack artifact path

* fix(release): seed ai in sdk smoke

* fix(release): preserve prepublish verifier compatibility
2026-07-08 08:01:00 -07:00
Shakker
9d7a6b5da6 fix: focus composer when typing (#102210) 2026-07-08 15:50:40 +01:00
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