Commit Graph

854 Commits

Author SHA1 Message Date
Peter Steinberger
802646e004 fix: catch Mintlify accordion parse hazards 2026-04-23 19:04:35 +01:00
Peter Steinberger
393a71991f fix: decouple approval startup from replay 2026-04-23 18:49:57 +01:00
Peter Steinberger
0397cad89b test: normalize safe-bin docs parity indentation 2026-04-23 18:27:56 +01:00
Peter Steinberger
b3d32a995d docs: align safe-bin denied flag list 2026-04-23 18:27:56 +01:00
Vincent Koc
4792a50710 docs(tools): exec-approvals — sentence-case title, restructure intro, dedup Related, progressive-disclose safe-bins nuances 2026-04-23 10:09:25 -07:00
Vincent Koc
167eee19af docs(tools): trim ACP agents reference, merge quick-start flows, accordion smoke test, dedupe command cookbook 2026-04-23 09:13:38 -07:00
Vincent Koc
f1662bff92 docs(tools): restructure browser reference with tabs/accordions and trim redundant prose 2026-04-23 08:34:16 -07:00
Peter Steinberger
d3dc890821 fix: allow installed plugins through allowlist 2026-04-23 14:31:18 +01:00
openclaw-docs-agent[bot]
70d41130ff docs: refresh documentation 2026-04-23 13:08:56 +00:00
Otto Deng
bc01cbb8a2 docs(providers/openai): document Azure OpenAI endpoint usage for image generation (#70501)
Verified:
- pnpm lint:docs
- Resolved bot review comments around Azure docs scope and accuracy
2026-04-23 07:48:54 -05:00
openclaw-docs-agent[bot]
0372f4d540 docs: refresh documentation 2026-04-23 12:39:50 +00:00
Peter Steinberger
8714badc0c fix: show fast mode in status 2026-04-23 08:04:24 +01:00
Vincent Koc
ea3970f138 docs: CLI + gateway + plugin harness coverage for 48h changes 2026-04-22 23:49:06 -07:00
Peter Steinberger
d8db122a23 docs: document trajectory bundles 2026-04-23 07:39:49 +01:00
Peter Steinberger
938af16289 docs: deep audit documentation against source 2026-04-23 07:32:58 +01:00
scoootscooob
a3d9c53db2 feat: add trajectory bundle export and default-on runtime capture (#70291)
* Trajectory: export session bundles by default

* Harden trajectory export diagnostics integration

* Address trajectory export review feedback

* Share diagnostics and trajectory bundle plumbing

* Harden trajectory recording and export

* Confine trajectory export outputs

* Document trajectory export command

* Harden trajectory export bundle privacy

* Redact trajectory sidecar paths

* Fix plugin install checks after rebase

* Keep queued writers working without O_NOFOLLOW

* Keep Codex trajectory writes without O_NOFOLLOW

* Harden trajectory export path handling

* Redact mixed trajectory export paths
2026-04-22 23:29:01 -07:00
Peter Steinberger
834fdc4832 docs: align documentation with current surfaces 2026-04-23 07:25:06 +01:00
Peter Steinberger
87c85c507a fix: align docs with cli and provider surfaces 2026-04-23 06:39:11 +01:00
Peter Steinberger
51ed22e608 feat(providers): add streaming stt providers 2026-04-23 03:05:53 +01:00
Peter Steinberger
4ff720a837 fix(openai): harden realtime stt 2026-04-23 02:22:17 +01:00
Peter Steinberger
67f09ea87a feat: add xai realtime transcription 2026-04-23 01:38:11 +01:00
Peter Steinberger
53f388fa83 docs(plugins): document npm update behavior 2026-04-23 01:29:32 +01:00
Peter Steinberger
012841816d feat: add xai speech-to-text support 2026-04-23 01:06:07 +01:00
Peter Steinberger
c4e5ca8625 fix(agents): expose configured MCP tools in Pi profiles 2026-04-23 00:47:37 +01:00
KateWilkins
f342da5fcc feat: add xai media providers
Add xAI image generation and text-to-speech provider support with docs, live tests, and guarded provider HTTP handling.\n\nThanks @KateWilkins.
2026-04-23 00:07:39 +01:00
Peter Steinberger
c2ac1e3ef4 feat: expose OpenClaw tools to ACPX 2026-04-22 23:19:20 +01:00
Peter Steinberger
ebe32e5cee feat(openai): enable native web search 2026-04-22 22:47:26 +01:00
Peter Steinberger
b648830632 fix: clarify browser playwright-core install guidance 2026-04-22 21:47:58 +01:00
Vincent Koc
22717878cc docs(tokenjuice): add bundled plugin guide (#70038)
* docs(tokenjuice): add bundled plugin guide

* docs(tokenjuice): sort nav entry
2026-04-22 00:14:32 -07:00
Peter Steinberger
540171ddbd docs: clarify ACP delivery model 2026-04-22 01:32:20 +01:00
Gustavo Madeira Santana
66add9fcd9 perf(cli): lazy-load doctor plugin paths (#69840)
Merged via squash.

Prepared head SHA: ebf93ad913
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com>
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com>
Reviewed-by: @gumadeiras
2026-04-21 18:17:19 -04:00
Peter Steinberger
aa94501f5f feat(openai): default images to gpt-image-2 2026-04-21 21:49:16 +01:00
Peter Steinberger
c742a706bf feat(plugins): add experimental skill workshop 2026-04-21 21:29:44 +01:00
Vincent Koc
78030d0d52 docs: plugin manifest precedence, QQBot engine/bot-approve/QR onboarding, web-search plugin-scoped SecretRefs 2026-04-21 13:26:25 -07:00
Vincent Koc
b4a59be9b6 docs: document stdio env filter, enforceOwnerForCommands, OPENCLAW_* .env blocking 2026-04-21 13:21:34 -07:00
Peter Steinberger
11efbf5a2e fix: prevent stale subagent failure announces 2026-04-21 19:59:12 +01:00
Peter Steinberger
bcfa781a1b fix: remap thinking levels on model switch 2026-04-21 18:53:49 +01:00
Tak Hoffman
714598774f feat: add soft reset command (#68635)
* feat: add soft reset command

* fix: harden soft reset follow-up behavior

* fix: accept whitespace-delimited soft reset tails

* test: cover newline soft reset normalization

* fix: preserve stale sessions for soft reset

* fix: gate soft reset stale bypass

* fix: align soft reset auth gating

* fix: normalize soft reset session detection

* test: cover multiline soft reset session state

* test: cover multiline soft reset parsing
2026-04-21 10:17:52 -05:00
Peter Steinberger
f1805ab54d fix: centralize provider thinking profiles 2026-04-21 09:13:35 +01:00
Peter Steinberger
047acaa176 fix: stage ACP and Codex runtime deps 2026-04-21 08:47:24 +01:00
Peter Steinberger
4a846dd129 fix(exec): honor yolo host exec semantics 2026-04-21 07:23:46 +01:00
Peter Steinberger
6ce17db11a fix: gate max thinking by model support 2026-04-21 07:02:43 +01:00
Peter Steinberger
e4adb0b0e3 fix: hide adaptive think option for GPT models 2026-04-21 06:19:29 +01:00
Peter Steinberger
2641b052dc fix: align OpenAI reasoning effort handling 2026-04-21 04:58:31 +01:00
aniaan
c8e5150fd4 feat(moonshot): default to Kimi K2.6 with K2.6-only thinking.keep support (#68816)
Merged via squash.

Prepared head SHA: ed54e02842
Co-authored-by: aniaan <40813941+aniaan@users.noreply.github.com>
Co-authored-by: odysseus0 <8635094+odysseus0@users.noreply.github.com>
Reviewed-by: @odysseus0
2026-04-20 18:04:49 -07:00
Peter Steinberger
a292cbf46f docs: clarify optional Docker sandboxing 2026-04-20 19:27:45 +01:00
Peter Steinberger
47d42606ac fix: repair bundled plugin runtime deps on startup 2026-04-20 17:47:55 +01:00
Mariano
8cb73844c8 browser: route existing-session user profile through browser nodes (#68891)
* browser: route user profile through browser nodes

* browser: align existing-session node docs

* browser: preserve host fallback on node discovery errors

* browser: preserve configured node pin errors

* browser: widen config mock in node pin test
2026-04-19 12:21:23 +02:00
Viz
4cfc8cd5be fix(browser): discover CDP websocket from bare ws:// URL before attach (#68715)
* fix(browser): discover CDP websocket from bare ws:// URL before attach

When browser.cdpUrl is set to a bare ws://host:port (no /devtools/ path), ensureBrowserAvailable would call isChromeReachable -> canOpenWebSocket against the URL verbatim. Chrome only accepts WebSocket upgrades at the specific path returned by /json/version, so the handshake failed immediately with HTTP 400. With attachOnly: true, that surfaced as:

  Browser attachOnly is enabled and profile "openclaw" is not running.

even though the CDP endpoint was reachable and the profile was healthy. Reproduced by the new tests in chrome.test.ts and cdp.test.ts (#68027).

Fix: introduce isDirectCdpWebSocketEndpoint(url) — true only when a ws/wss URL has a /devtools/<kind>/<id> handshake path. Route any other ws/wss cdpUrl (including the bare ws://host:port shape) through HTTP /json/version discovery by normalising the scheme via the existing normalizeCdpHttpBaseForJsonEndpoints helper. Apply this in isChromeReachable, getChromeWebSocketUrl, and createTargetViaCdp. Direct WS endpoints with a /devtools/ path are still opened without an extra discovery round-trip.

Fixes #68027

* test(browser): add seeded fuzz coverage for CDP URL helpers

Adds property-based / seeded-fuzz tests for the URL helpers the
attachOnly CDP fix depends on (#68027):

  - isWebSocketUrl
  - isDirectCdpWebSocketEndpoint
  - normalizeCdpHttpBaseForJsonEndpoints
  - parseBrowserHttpUrl
  - redactCdpUrl
  - appendCdpPath
  - getHeadersWithAuth

Follows the existing repo convention (see
src/gateway/http-common.fuzz.test.ts): no fast-check dep, small
mulberry32 PRNG + hand-rolled generators, deterministic per-describe
seeds so failures are reproducible.

Lifts cdp.helpers.ts coverage from 77.77% -> 89.54% statements,
67.9% -> 80.24% branches, 78% -> 90% lines. Remaining uncovered
lines are inside the WS sender internals (createCdpSender,
withCdpSocket, fetchCdpChecked rate-limit branch), which require
integration-style mocks and are unrelated to the attachOnly fix.

* test(browser): drive cdp.helpers/cdp/chrome to 100% coverage

Lifts the three files touched by the #68027 attachOnly fix to 100% statements/branches/functions/lines across the extensions test suite. Adds cdp.helpers.internal.test.ts, cdp.internal.test.ts, and chrome.internal.test.ts covering error paths, branch matrices, CDP session helpers, Chrome spawn/launch/stop flows, and canRunCdpHealthCommand. Defensively unreachable guards are annotated with c8 ignore + inline justifications.

* fix(browser): restore WS fallback for non-/devtools ws:// CDP URLs

When /json/version discovery is unavailable (or returns no
webSocketDebuggerUrl), fall back to treating the original bare ws/wss
URL as a direct WebSocket endpoint. This preserves the #68027 fix for
Chrome's debug port while restoring compatibility with Browserless/
Browserbase-style providers that expose a direct WebSocket root without
a /json/version endpoint.

Priority order for bare ws/wss cdpUrl inputs:
  1. /devtools/<kind>/<id> URL \u2192 direct handshake, no discovery (unchanged)
  2. bare ws/wss root \u2192 try HTTP discovery first; if discovery returns a
     webSocketDebuggerUrl use it; otherwise fall back to the original URL
     as a direct WS endpoint
  3. HTTP/HTTPS URL \u2192 HTTP discovery only, no fallback (unchanged)

Affected call sites: isChromeReachable, getChromeWebSocketUrl,
createTargetViaCdp.

Also renames a misleading test ('still enforces SSRF policy for direct
WebSocket URLs') to accurately describe what it tests: SSRF enforcement
on the navigation target URL, not on the CDP endpoint.

New tests added for all three fallback paths. Coverage remains 100% on
all three touched files (238 tests).

* fix: browser attachOnly bare ws CDP follow-ups (#68715) (thanks @visionik)
2026-04-19 05:43:39 -04:00
Peter Steinberger
a2753e2d9f fix: keep Opus 4.7 effort separate from adaptive thinking 2026-04-17 01:26:11 +01:00